pidgin-otr-4.0.0/0000755000175000017500000000000012021370261010562 500000000000000pidgin-otr-4.0.0/po/0000755000175000017500000000000012021370261011200 500000000000000pidgin-otr-4.0.0/po/nl.po0000644000175000017500000006030312020421670012073 00000000000000# Off-the-Record Messaging plugin for pidgin. # Copyright (C) 2004-2012 Ian Goldberg, Rob Smits, Chris Alexander, Willy Lew, # Lisa Du, Nikita Borisov # This file is distributed under the same license as the pidgin-otr package. # Ian Goldberg , 2012 # msgid "" msgstr "" "Project-Id-Version: pidgin-otr 4.0.0.nl\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-06-14 09:45-0400\n" "PO-Revision-Date: 2012-06-28 00:00+EDT\n" "Last-Translator: Paul Wouters \n" "Language-Team: Paul Wouters \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../gtk-dialog.c:332 ../gtk-dialog.c:1141 ../gtk-dialog.c:1145 #: ../gtk-dialog.c:1547 ../gtk-dialog.c:1584 ../gtk-dialog.c:1673 #: ../gtk-dialog.c:1748 ../gtk-dialog.c:2749 msgid "?lang=en" msgstr "?lang=nl" #: ../gtk-dialog.c:480 msgid "" "Your buddy is attempting to determine if he or she is really talking to you, " "or if it's someone pretending to be you. Your buddy has asked a question, " "indicated below. To authenticate to your buddy, enter the answer and click " "OK." msgstr "" "Jouw vriend probeert te detecteren of ze echt met jou aan het praten is, of " "met iemand die zicht probeert voor te doen als jou. Je vriend heeft je de " "onderstaande vraag gesteld . Beantwoord deze vraag en selecteer OK om je te " "authenticiteren aan je vriend." #: ../gtk-dialog.c:487 msgid "" "To authenticate using a question, pick a question whose answer is known only " "to you and your buddy. Enter this question and this answer, then wait for " "your buddy to enter the answer too. If the answers don't match, then you " "may be talking to an imposter." msgstr "" "Om je te authenticiteren via een vraag moet je een vraag stellen die alleen " "door je vriend beantwoord kan worden. Vul de vraag en het antwoord in, en " "wacht op je vriend's antwoord. Als zijn of haar antwoord niet klopt, dan " "kan het zijn dat iemand anders zich als jouw vriend voordoet." #: ../gtk-dialog.c:505 #, c-format msgid "This is the question asked by your buddy:" msgstr "Dit is de vraag die door jouw vriend gesteld werd" #: ../gtk-dialog.c:508 #, c-format msgid "Enter question here:" msgstr "Vul de vraag hier in" #: ../gtk-dialog.c:540 ../gtk-dialog.c:624 msgid "This buddy is already authenticated." msgstr "Deze vriend is al geauthenticiteerd" #: ../gtk-dialog.c:552 #, c-format msgid "Enter secret answer here (case sensitive):" msgstr "Vul het geheime antwoord hier in (hoofdletters zijn verschillend van kleine letters):" #: ../gtk-dialog.c:593 msgid "" "To authenticate, pick a secret known only to you and your buddy. Enter this " "secret, then wait for your buddy to enter it too. If the secrets don't " "match, then you may be talking to an imposter." msgstr "" "Om te autenticiteren moet je een geheim kiezen dat alleen jij en jouw vriend kennen. " "Vul dit geheime antwoord in, en wacht tot je vriend de vraag ook beantwoordt heeft. " "Als de antwoorden niet overeen komen, kan het zijn dat iemand anders zich als jouw " "vriend voordoet." #: ../gtk-dialog.c:607 #, c-format msgid "Enter secret here:" msgstr "vul het geheime antwoord hier in:" #: ../gtk-dialog.c:657 ../gtk-dialog.c:1408 msgid "" "To verify the fingerprint, contact your buddy via some other " "authenticated channel, such as the telephone or GPG-signed email. Each of " "you should tell your fingerprint to the other." msgstr "" "Om de vingerafdruk te controleren moet je contact opnemen met je vriend, via " "een andere vertrouwde manier, zoals een telefoon of via een GPG ondertekende " "email. Jullie moeten dan elkaar je eigen vingerafdruk vertellen." #: ../gtk-dialog.c:661 msgid "" "If everything matches up, you should chose I have in the menu below." msgstr "" "Als alles klopt, dan kun je nu Ik heb in het onderstaande menu selecteren." #: ../gtk-dialog.c:672 ../gtk-dialog.c:1397 msgid "[none]" msgstr "[geen]" #: ../gtk-dialog.c:679 ../gtk-dialog.c:1051 ../gtk-dialog.c:1404 #: ../gtk-dialog.c:1453 ../gtk-ui.c:212 ../otr-plugin.c:127 #: ../otr-plugin.c:300 ../ui.c:112 msgid "Unknown" msgstr "Onbekend" #: ../gtk-dialog.c:680 #, c-format msgid "" "Fingerprint for you, %s (%s):\n" "%s\n" "\n" "Purported fingerprint for %s:\n" "%s\n" msgstr "" "Jouw vingerafdruk, %s (%s):\n" "%s\n" "\n" "Vermeende vingerafdruk van %s:\n" "%s\n" #: ../gtk-dialog.c:736 msgid "How would you like to authenticate your buddy?" msgstr "Hoe wil je jouw vriend authenticeren" #: ../gtk-dialog.c:745 msgid "Question and answer" msgstr "Vraag en antwoord" #: ../gtk-dialog.c:748 msgid "Shared secret" msgstr "Gedeeld geheim" #: ../gtk-dialog.c:751 msgid "Manual fingerprint verification" msgstr "Handmatige vingerafdruk verificatie" #: ../gtk-dialog.c:802 msgid "_Authenticate" msgstr "_Authenticeer" #: ../gtk-dialog.c:836 msgid "" "Authenticating a buddy helps ensure that the person you are talking to is " "who he or she claims to be." msgstr "" "Authenticeren van een vriend garandeert dat de persoon waarmee je aan het " "praten bent, daadwerkelijk de vriend is waarmee je denkt te praten." #. Translators: you are asked to authenticate yourself #: ../gtk-dialog.c:946 msgid "Authenticating to Buddy" msgstr "Authenticeer jezelf aan je vriend" #. Translators: you asked your buddy to authenticate him/herself #: ../gtk-dialog.c:948 msgid "Authenticating Buddy" msgstr "Authenticeren van vriend" #: ../gtk-dialog.c:975 #, c-format msgid "Authenticating to %s" msgstr "Authenticeren aan %s" #: ../gtk-dialog.c:976 #, c-format msgid "Authenticating %s" msgstr "Authenticeren %s" #: ../gtk-dialog.c:1009 msgid "Waiting for buddy..." msgstr "We wachten op de vriend..." #: ../gtk-dialog.c:1042 msgid "Generating private key" msgstr "Genereer geheime sleutel" #: ../gtk-dialog.c:1043 msgid "Please wait" msgstr "Een moment A.U.B." #. Create the Please Wait... dialog #: ../gtk-dialog.c:1054 #, c-format msgid "Generating private key for %s (%s)..." msgstr "Genereren van geheime sleutel voor %s (%s)..." #: ../gtk-dialog.c:1099 #, c-format msgid "%s Done." msgstr "%s Klaar." #: ../gtk-dialog.c:1139 #, c-format msgid "" "%s is contacting you from an unrecognized computer. You should authenticate this buddy." msgstr "" "%s benadert je vanaf een onbekende computer. Je kunt het beste je vriend opnieuw authenticeren." #: ../gtk-dialog.c:1143 #, c-format msgid "" "%s has not been authenticated yet. You should authenticate this buddy." msgstr "" "%s is nog niet ge-authenticeerd. Je kunt het beste je vriend nu authenticeren." #: ../gtk-dialog.c:1195 ../gtk-dialog.c:1969 ../gtk-dialog.c:2745 #: ../gtk-ui.c:83 msgid "Finished" msgstr "Klaar" #: ../gtk-dialog.c:1196 ../gtk-dialog.c:1966 ../gtk-dialog.c:2742 #: ../gtk-ui.c:82 msgid "Private" msgstr "Prive" #: ../gtk-dialog.c:1197 ../gtk-dialog.c:1963 ../gtk-dialog.c:2739 #: ../gtk-ui.c:81 msgid "Unverified" msgstr "Onbekend" #: ../gtk-dialog.c:1198 ../gtk-ui.c:80 msgid "Not private" msgstr "Niet prive" #: ../gtk-dialog.c:1201 msgid "OTR" msgstr "OTR" #. Translators: the following four messages should give alternative #. * sentences. The user selects the first or second message in a combo box; #. * the third message, a new line, a fingerprint, a new line, and #. * the fourth message will follow it. #: ../gtk-dialog.c:1351 msgid "I have not" msgstr "Ik heb niet" #. 2nd message #: ../gtk-dialog.c:1353 msgid "I have" msgstr "Ik heb" #. 3rd message #: ../gtk-dialog.c:1356 msgid " verified that this is in fact the correct" msgstr "geverificeerd dat dit inderdaad de correcte" #. 4th message #: ../gtk-dialog.c:1366 #, c-format msgid "fingerprint for %s." msgstr "vingerafdruk van %s" #: ../gtk-dialog.c:1393 #, c-format msgid "Verify fingerprint for %s" msgstr "Controleer vingerafdruk voor %s" #: ../gtk-dialog.c:1405 #, c-format msgid "" "%s %s\n" "\n" "Fingerprint for you, %s (%s):\n" "%s\n" "\n" "Purported fingerprint for %s:\n" "%s\n" msgstr "" "%s %s\n" "\n" "Vingerafdruk van you, %s (%s):\n" "%s\n" "\n" "Vermeende vingerafdruk van %s:\n" "%s\n" #: ../gtk-dialog.c:1412 msgid "" "If everything matches up, you should indicate in the above dialog that you " "have verified the fingerprint." msgstr "" "Als alles klopt, kun je in het bovenstaande dialoogvenster " "aangeven dat je de vingerafdruk hebt geverificeerd." #: ../gtk-dialog.c:1418 ../gtk-ui.c:844 msgid "Verify fingerprint" msgstr "Controleer vingerafdruk" #: ../gtk-dialog.c:1445 #, c-format msgid "Authentication from %s" msgstr "Authenticatie van %s" #: ../gtk-dialog.c:1448 #, c-format msgid "Authenticate %s" msgstr "Authenticeer %s" #: ../gtk-dialog.c:1456 msgid "Authenticate Buddy" msgstr "Authenticeer vriend" #: ../gtk-dialog.c:1487 msgid "An error occurred during authentication." msgstr "Er is een fout opgetreden tijdens de authenticatie." #: ../gtk-dialog.c:1502 msgid "Authentication successful." msgstr "Authenticatie successvol." #: ../gtk-dialog.c:1505 msgid "" "Your buddy has successfully authenticated you. You may want to authenticate " "your buddy as well by asking your own question." msgstr "" "Jouw vriend heeft jou geauthenticiteerd. Wellicht wil je nu jouw vriend " "authenticeren door middel van jouw eigen vraag voor je vriend." #: ../gtk-dialog.c:1511 msgid "Authentication failed." msgstr "Authenticatie mislukt" #: ../gtk-dialog.c:1541 #, c-format msgid "Private conversation with %s started.%s%s" msgstr "Prive gesprek met %s gestart.%s%s" #: ../gtk-dialog.c:1545 #, c-format msgid "Unverified conversation with %%s started.%%s%%s" msgstr "Ongeverifieerd gesprek gestart met %%s.%%s%%s" #. This last case should never happen, since we know #. * we're in ENCRYPTED. #: ../gtk-dialog.c:1553 #, c-format msgid "Not private conversation with %s started.%s%s" msgstr "Onbeveiligd gesprek gestart met %s.%s%s" #: ../gtk-dialog.c:1559 ../gtk-dialog.c:1686 msgid " Warning: using old protocol version 1." msgstr " Waarschuwing: het oude versie 1 protocol wordt gebruikt" #: ../gtk-dialog.c:1561 msgid " Your client is logging this conversation." msgstr " Jouw programma slaat dit gesprek op." #: ../gtk-dialog.c:1562 msgid " Your client is not logging this conversation." msgstr " Jouw programma slaat dit gesprek niet op." #: ../gtk-dialog.c:1581 #, c-format msgid "" "Your buddy is logged in multiple times and OTR has established multiple sessions. Use the icon menu above if you wish to select the " "outgoing session." msgstr "" "Jouw vriend is meerdere keren ingelogd en OTR heeft meerdere sessies tot stand gebracht. Gebruik het OTR ikoon menu hierboven als " "je wilt selecteren welk uitgaand gesprek je wilt gebruiken." #: ../gtk-dialog.c:1601 #, c-format msgid "Private conversation with %s lost." msgstr "Prive gesprek met %s verloren." #: ../gtk-dialog.c:1638 #, c-format msgid "" "%s has ended his/her private conversation with you; you should do the same." msgstr "" "%s heeft het prive gesprek afgesloten; jij kunt dat het beste nu ook doen." #: ../gtk-dialog.c:1665 #, c-format msgid "Successfully refreshed the private conversation with %s.%s" msgstr "Prive gesprek met %s opnieuw tot stand gebracht.%s" #: ../gtk-dialog.c:1670 #, c-format msgid "" "Successfully refreshed the unverified conversation with " "%%s.%%s" msgstr "" "Ongeverifieerdgesprek met %%s opnieuw tot stand gebracht.%%s" #. This last case should never happen, since we know #. * we're in ENCRYPTED. #: ../gtk-dialog.c:1679 #, c-format msgid "Successfully refreshed the not private conversation with %s.%s" msgstr "Niet-prive gesprek met %s opnieuw tot stand gebracht.%s" #: ../gtk-dialog.c:1712 #, c-format msgid "Attempting to refresh the private conversation with %s..." msgstr "Poging prive gesprek met %s opnieuw tot stand te brengen..." #: ../gtk-dialog.c:1714 #, c-format msgid "Attempting to start a private conversation with %s..." msgstr "Poging een prive gesprek te starten met %s..." #: ../gtk-dialog.c:1899 ../gtk-dialog.c:2026 msgid "Start _private conversation" msgstr "Start _prive gesprek" #: ../gtk-dialog.c:1900 msgid "Refresh _private conversation" msgstr "Herstart _prive gesprek" #: ../gtk-dialog.c:1905 msgid "Re_authenticate buddy" msgstr "_Authenticiteer vriend opnieuw" #: ../gtk-dialog.c:1906 ../gtk-dialog.c:2030 msgid "_Authenticate buddy" msgstr "_Authenticiteer vriend" #: ../gtk-dialog.c:1960 ../gtk-dialog.c:2736 msgid "Not Private" msgstr "Niet prive" #: ../gtk-dialog.c:1982 msgid "_What's this?" msgstr "_Wat is dit?" #: ../gtk-dialog.c:2028 msgid "_End private conversation" msgstr "_Stop prive gesprek" #: ../gtk-dialog.c:2207 ../gtk-dialog.c:2255 #, c-format msgid "" "Warning: The selected outgoing OTR session (%u) is not the most recently " "active one (%u). Your buddy may not receive your messages. Use the icon menu " "above to select a different outgoing session." msgstr "" "Waarschuwing: De gekozen uitgaande OTR sessie (%u) is niet de meest recente " "actieve sessie (%u). Je vriend kan je berichten wellicht nu niet zien. Gebruik " #: ../gtk-dialog.c:2271 msgid "Send to most secure" msgstr "Stuur naar de best beveiligde" #: ../gtk-dialog.c:2273 msgid "Send to most recent" msgstr "Stuur naar de meest recente" #: ../gtk-dialog.c:2377 #, c-format msgid "Session %u" msgstr "Sessie %u" #: ../gtk-dialog.c:2395 ../gtk-dialog.c:2506 msgid "Select" msgstr "Selecteer" #: ../gtk-dialog.c:2410 msgid "Selected" msgstr "Geselecteerd" #: ../gtk-dialog.c:2731 #, c-format msgid "" "The privacy status of the current conversation is now: %s" msgstr "" "De privacy status van het huidige gesprek is nu: %s" #: ../gtk-dialog.c:2956 msgid "OTR Messaging" msgstr "OTR Messaging" #: ../gtk-ui.c:103 #, c-format msgid "Fingerprint: %.80s" msgstr "Vingerafdruk: %.80s" #: ../gtk-ui.c:107 #, c-format msgid "No key present" msgstr "Geen sleutel gevonden" #: ../gtk-ui.c:112 #, c-format msgid "No account available" msgstr "Geen account beschikbaar" #: ../gtk-ui.c:179 msgid "Unused" msgstr "Ongebruikt" #: ../gtk-ui.c:208 msgid "Yes" msgstr "Ja" #: ../gtk-ui.c:208 msgid "No" msgstr "Nee" #: ../gtk-ui.c:473 msgid "Enable private messaging" msgstr "Prive gesprekken aanzetten" #: ../gtk-ui.c:475 msgid "Automatically initiate private messaging" msgstr "Automatisch prive gesprekken beginnen" #. Paul: Not sure why sometimes you say "privage messaging" and sometimes "OTR conversations" #: ../gtk-ui.c:477 msgid "Require private messaging" msgstr "Prive gesprekken verplicht stellen" #: ../gtk-ui.c:480 msgid "Don't log OTR conversations" msgstr "Bewaar geen log bestanden van prive gesprekken." #: ../gtk-ui.c:524 msgid "Show OTR button in toolbar" msgstr "Laat OTR knop in de toolbar zien" #: ../gtk-ui.c:663 msgid "My private keys" msgstr "Mijn prive sleutels" #: ../gtk-ui.c:672 msgid "Key for account:" msgstr "Sleutel voor account:" #: ../gtk-ui.c:697 msgid "Generate" msgstr "Genereer" #: ../gtk-ui.c:738 msgid "Default OTR Settings" msgstr "Standaard OTR instellingen" #: ../gtk-ui.c:765 msgid "OTR UI Options" msgstr "OTR UI opties" #: ../gtk-ui.c:788 msgid "Screenname" msgstr "IM naam" #: ../gtk-ui.c:789 msgid "Status" msgstr "Status" #: ../gtk-ui.c:790 msgid "Verified" msgstr "Gecontroleerd" #: ../gtk-ui.c:791 msgid "Fingerprint" msgstr "Vingerafdruk" #: ../gtk-ui.c:792 msgid "Account" msgstr "Account" #: ../gtk-ui.c:828 msgid "Start private connection" msgstr "Start prive gesprek" #: ../gtk-ui.c:836 msgid "End private connection" msgstr "Stop prive gesprek" #: ../gtk-ui.c:852 msgid "Forget fingerprint" msgstr "Vergeet deze vingerafdruk" #: ../gtk-ui.c:903 msgid "Config" msgstr "Configuratie" #: ../gtk-ui.c:905 msgid "Known fingerprints" msgstr "Bekende vingerafdrukken" #: ../gtk-ui.c:1003 ../otr-plugin.c:964 msgid "OTR Settings" msgstr "OTR Instellingen" #. Set the title #: ../gtk-ui.c:1021 #, c-format msgid "OTR Settings for %s" msgstr "OTR Instellingen voor %s" #. Make the cascaded checkboxes #: ../gtk-ui.c:1038 msgid "Use default OTR settings for this buddy" msgstr "Gebruik de standaard OTR instellingen voor deze vriend" #: ../otr-plugin.c:125 #, c-format msgid "You are not currently connected to account %s (%s)." msgstr "Je bent niet online met het account %s (%s)." #: ../otr-plugin.c:129 msgid "Not connected" msgstr "Niet online" #: ../otr-plugin.c:212 ../otr-plugin.c:254 #, c-format msgid "Out of memory building filenames!\n" msgstr "Geen geheugen meer om bestandsnamen op te bouwen!\n" #: ../otr-plugin.c:224 ../otr-plugin.c:260 #, c-format msgid "Could not write private key file\n" msgstr "Kon prive sleutel niet schrijven!\n" #: ../otr-plugin.c:298 #, c-format msgid "Unknown account %s (%s)." msgstr "Onbekend account %s (%s)." #: ../otr-plugin.c:302 msgid "Unknown account" msgstr "Onbekend account" #: ../otr-plugin.c:364 msgid "Error occurred encrypting message." msgstr "Fout opgetreden tijdens het versleutelen van een bericht" #: ../otr-plugin.c:368 #, c-format msgid "You sent encrypted data to %s, who wasn't expecting it." msgstr "Je stuurde een versleuteld bericht aan %s, maar die verwachtte dat niet." #: ../otr-plugin.c:374 msgid "You transmitted an unreadable encrypted message." msgstr "Je verstuurde een onleesbaar versleuteld bericht" #: ../otr-plugin.c:377 msgid "You transmitted a malformed data message." msgstr "Je verstuurde een misvormt bericht" #: ../otr-plugin.c:390 msgid "[resent]" msgstr "[opnieuw verzonden]" #: ../otr-plugin.c:459 #, c-format msgid "You attempted to send an unencrypted message to %s" msgstr "Je probeerde een niet-versleuteld bericht te sturen naar %s" #: ../otr-plugin.c:462 msgid "Attempting to start a private conversation..." msgstr "Probeer een prive gesprek te starten..." #: ../otr-plugin.c:464 msgid "OTR Policy Violation" msgstr "OTR Policy Violation" #. PAUL: I think "retransmitted" is the wrong word here, as it was never transmitted before! #: ../otr-plugin.c:465 msgid "" "Unencrypted messages to this recipient are not allowed. Attempting to start " "a private conversation.\n" "\n" "Your message will be retransmitted when the private conversation starts." msgstr "" "Niet-versleutelde berichten naar deze ontvanger zijn niet toegestaan. Er wordt " "nu geprobeerd een prive gesprek te beginnen.\n" "\n" "Je bericht zal verzonden worden nadat een prive gesprek is gestart." #: ../otr-plugin.c:474 msgid "" "An error occurred when encrypting your message. The message was not sent." msgstr "Er is een fout opgetreden tijdens het versleutelen van je bericht. Dit " "bericht kon niet verstuurd worden" #: ../otr-plugin.c:476 msgid "Error encrypting message" msgstr "Fout bij besleutelen bericht" #: ../otr-plugin.c:477 msgid "An error occurred when encrypting your message" msgstr "Er is een fout opgetreden tijdens het versleutelen van je bericht" #: ../otr-plugin.c:478 msgid "The message was not sent." msgstr "Dit bericht kon niet vestuurd worden" #: ../otr-plugin.c:481 #, c-format msgid "%s has already closed his/her private connection to you" msgstr "%s heeft het prive gesprek met jou gestopt." #: ../otr-plugin.c:484 msgid "" "Your message was not sent. Either end your private conversation, or restart " "it." msgstr "" "Je bericht is niet verstuurd. Je moet je prive gesprek herstarten of stoppen." #: ../otr-plugin.c:487 msgid "Private connection closed" msgstr "Prive gesprek afgesloten" #: ../otr-plugin.c:488 msgid "" "Your message was not sent. Either close your private connection to him, or " "refresh it." msgstr "" "Je bericht is niet verstuurd. Je moet je prive gesprek herstarten of stoppen." #: ../otr-plugin.c:498 msgid "Error setting up private conversation: Malformed message received" msgstr "Fout bij opzetten prive gesprek. Misvormd bericht ontvangen" #: ../otr-plugin.c:502 #, c-format msgid "Error setting up private conversation: %s" msgstr "Fout bij opzetten prive gesprek: %s" #: ../otr-plugin.c:509 ../otr-plugin.c:520 ../otr-plugin.c:547 #: ../otr-plugin.c:555 ../otr-plugin.c:573 msgid "OTR Error" msgstr "OTR Fout" #: ../otr-plugin.c:516 msgid "" "We are receiving our own OTR messages. You are either trying to talk to " "yourself, or someone is reflecting your messages back at you." msgstr "We ontvangen onze eigen OTR berichten. Je bent of met jezelf aan het " "praten, of iemand stuurt jouw versleutelde berichten terug naar jou." #: ../otr-plugin.c:520 msgid "We are receiving our own OTR messages." msgstr "We ontvangen onze eigen OTR berichten" #: ../otr-plugin.c:521 msgid "" "You are either trying to talk to yourself, or someone is reflecting your " "messages back at you." msgstr "" "Je bent of met jezelf aan het praten, of iemand stuurt jouw versleutelde " "berichten terug naar jou." #: ../otr-plugin.c:526 #, c-format msgid "The last message to %s was resent." msgstr "Het laatste bericht aan %s is opnieuw verzonden." #: ../otr-plugin.c:530 msgid "Message resent" msgstr "Bericht opnieuw gestuurd" #: ../otr-plugin.c:534 #, c-format msgid "" "The encrypted message received from %s is unreadable, as you are not " "currently communicating privately." msgstr "Het versleutelde bericht dat je van %s ontvangen hebt is onleesbaar, " "omdat je op dit moment geen aktief prive gesprek hebt." #: ../otr-plugin.c:539 msgid "Unreadable message" msgstr "Onleesbaar bericht" #: ../otr-plugin.c:543 #, c-format msgid "We received an unreadable encrypted message from %s." msgstr "We ontvingen een onleesbaar versleuteld bericht van %s." #: ../otr-plugin.c:551 #, c-format msgid "We received a malformed data message from %s." msgstr "We ontvingen een misvormd data bericht van %s." #: ../otr-plugin.c:559 #, c-format msgid "Heartbeat received from %s.\n" msgstr "Hartslag ontvangen van %s.\n" #: ../otr-plugin.c:565 #, c-format msgid "Heartbeat sent to %s.\n" msgstr "Hartslag gestuurd naar %s.\n" #: ../otr-plugin.c:576 #, c-format msgid "" "The following message received from %s was not encrypted: [%" "s]" msgstr "" #: ../otr-plugin.c:581 msgid "Received unencrypted message" msgstr "Ontving een niet-versleuteld bericht" #: ../otr-plugin.c:587 #, c-format msgid "Unrecognized OTR message received from %s.\n" msgstr "Onbekend OTR bericht onvangen van %s.\n" #: ../otr-plugin.c:596 #, c-format msgid "" "%s has sent a message intended for a different session. If you are logged in " "multiple times, another session may have received the message." msgstr "" "%s heeft een bericht gestuurd dat bedoeld was voor een andere sessie. A;s je " "meerdere keren ingelogd bent, heeft een andere sessie waarschijnlijk het bericht " "ontvangen." #: ../otr-plugin.c:602 msgid "Received message for a different session" msgstr "Bericht ontvangen voor een andere sessie" #. 2013-01-01 #: ../otr-plugin.c:1193 ../otr-plugin.c:1220 #, c-format msgid "OTR PLUGIN v%s" msgstr "OTR PLUGIN v%s" #: ../otr-plugin.c:1202 #, c-format msgid "" "This beta copy of the Off-the-Record Messaging v%s Pidgin plugin has expired " "as of 2013-01-01. Please look for an updated release at http://otr." "cypherpunks.ca/" msgstr "" "Deze test versie van Off-the-Record Messaging v%s Pidgin plugin is vanaf " "2013 niet meer geldig. Kijk op http://otr.cypherpunks.ca/ voor een nieuwere " "versie." #: ../otr-plugin.c:1229 #, c-format msgid "" "You have enabled a beta version of the Off-the-Record Messaging v%s Pidgin " "plugin. This version is intended for testing purposes only and is not for " "general purpose use." msgstr "" "Je hebt een beta versie van Off-the-Record Messaging v%s Pidgin plugin. " "Deze versie is alleen bedoeld voor ontwikkelaars om te testen. Stuur " "vertaal fouten naar paul@cypherpunks.ca." #: ../otr-plugin.c:1414 msgid "Off-the-Record Messaging" msgstr "Off-the-Record Messaging" #: ../otr-plugin.c:1415 msgid "Provides private and secure conversations" msgstr "Ondersteuning voor veilige prive gesprekken" #: ../otr-plugin.c:1416 msgid "" "Preserves the privacy of IM communications by providing encryption, " "authentication, deniability, and perfect forward secrecy." msgstr "" "Waarborgt de privacy van IM communicatie door gebruik van encryptie, " "authenticatie, het kunnen ontkennen van berichten en sessie sleutels." #: ../ui.c:110 #, c-format msgid "Account %s (%s) could not be found" msgstr "Account %s (%s) kon niet gevonden worden" #: ../ui.c:114 msgid "Account not found" msgstr "Account niet gevonden" pidgin-otr-4.0.0/po/ar.po0000644000175000017500000003614511767120042012101 00000000000000# translation of pidgin-otr.po to Arabic # Arabic translations for pidgin-otr package. # Copyright (C) 2007 THE pidgin-otr'S COPYRIGHT HOLDER # This file is distributed under the same license as the pidgin-otr package. # # Automatically generated, 2007. # Khaled Hosny , 2007. # Ahmad Gharbeia , 2008. msgid "" msgstr "" "Project-Id-Version: pidgin-otr\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-11-18 16:56+0200\n" "PO-Revision-Date: 2008-02-13 18:14+0200\n" "Last-Translator: Ahmad Gharbeia أحمد غربية \n" "Language-Team: Arabic \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" #: ../gtk-dialog.c:916 #: ../gtk-dialog.c:2103 msgid "_What's this?" msgstr "_ما هذا؟" #: ../gtk-dialog.c:927 msgid "_More..." msgstr "_المزيد..." #. Create the Advanced... button, and left-justify it. This #. * involves adding the button, and a blank label as a spacer, and #. * reordering them so that they're at the beginning. #: ../gtk-dialog.c:984 msgid "Advanced..." msgstr "متقدم..." #: ../gtk-dialog.c:1029 msgid "Enter secret here" msgstr "أدخل السر هنا" #: ../gtk-dialog.c:1034 msgid "This buddy is already authenticated." msgstr "هذا الصديق مُستوثَق بالفعل." #: ../gtk-dialog.c:1053 msgid "To authenticate, pick a secret known only to you and your buddy. Enter this secret, then wait for your buddy to enter it too. If the secrets don't match, then you may be talking to an imposter." msgstr "لأجل الاستيثاق اختر سرا لا يعرفه إلاك و صديقك. أدخل هذا السر ثم انتظر أن يُدخله الصديق كذلك. إذا لم يتطابق السران فلربما كنت تحادث مُنتحلا." #: ../gtk-dialog.c:1057 msgid "If your buddy uses multiple IM accounts or multiple computers, you may have to authenticate multiple times. However, as long as they use an account and computer that you've seen before, you don't need to authenticate each individual conversation." msgstr "إن كان صديقك يستخدم حسابات تراسل فوري متعددة أو حواسيب مختلفة فربما تحتاجان للاستيثاق أكثر من مرّة. لكن إن كان صديقك يستخدم حاسوبا و حسابا سبق تعرُّفهما فلن تحتاج لاستيثاق كل محادثة على حدة." #: ../gtk-dialog.c:1062 #: ../gtk-dialog.c:1330 #: ../gtk-dialog.c:1334 #: ../gtk-dialog.c:1431 #: ../gtk-dialog.c:1598 #: ../gtk-dialog.c:1758 #: ../gtk-dialog.c:1858 #: ../gtk-dialog.c:1943 msgid "?lang=en" msgstr "?lang=ar" #: ../gtk-dialog.c:1063 msgid "Click here for more information about authentication in OTR." msgstr "انقر هنا لمزيد من المعلومات عن الاستيثاق في OTR." #: ../gtk-dialog.c:1067 msgid "Authenticating a buddy helps ensure that the person you are talking to is who they claim to be." msgstr "الاستيثاق من الصديق يُساعد على التأكد من أن الشخص الذي تُحدثه هو من يزعم أن يكونه." #: ../gtk-dialog.c:1119 msgid "Authenticating Buddy" msgstr "يجري الاستيثاق من الصديق" #: ../gtk-dialog.c:1146 msgid "Authenticating" msgstr "يجري الاستيثاق" #: ../gtk-dialog.c:1209 msgid "Generating private key" msgstr "يجري توليد المفتاح السري" #: ../gtk-dialog.c:1210 msgid "Please wait" msgstr "من فضلك انتظر" #: ../gtk-dialog.c:1218 #: ../gtk-dialog.c:1635 #: ../gtk-dialog.c:1672 #: ../gtk-ui.c:175 #: ../otr-plugin.c:115 #: ../otr-plugin.c:212 #: ../ui.c:110 msgid "Unknown" msgstr "مجهول" #. Create the Please Wait... dialog #: ../gtk-dialog.c:1221 #, c-format msgid "Generating private key for %s (%s)..." msgstr "يجري توليد مفتاح سري لأجل %s (%s)..." #: ../gtk-dialog.c:1266 #, c-format msgid "%s Done." msgstr "%s تم." #: ../gtk-dialog.c:1328 #, c-format msgid "%s is contacting you from an unrecognized computer. You should authenticate this buddy." msgstr "يتصل بك %s من حاسوب لم يُتعرّف عليه. ينبغي لك الاستيثاق من هذا الصديق." #: ../gtk-dialog.c:1332 #, c-format msgid "%s has not been authenticated yet. You should authenticate this buddy." msgstr "لم يُستوثق من %s بعد. يجب عليك الاستيثاق من هذا الصديق." #: ../gtk-dialog.c:1373 #: ../gtk-ui.c:76 msgid "Finished" msgstr "تم" #: ../gtk-dialog.c:1374 #: ../gtk-ui.c:75 msgid "Private" msgstr "خاصة" #: ../gtk-dialog.c:1375 #: ../gtk-ui.c:74 msgid "Unverified" msgstr "غير محقّق" #: ../gtk-dialog.c:1376 #: ../gtk-ui.c:73 msgid "Not private" msgstr "ليست خاصة" #: ../gtk-dialog.c:1378 msgid "Start a private conversation" msgstr "ابدأ محادثة خاصة" #: ../gtk-dialog.c:1379 msgid "Refresh the private conversation" msgstr "أنعش المحادثة الخاصة" #: ../gtk-dialog.c:1383 msgid "Start _private conversation" msgstr "ابدأ محادثة _خاصة" #: ../gtk-dialog.c:1384 msgid "Refresh _private conversation" msgstr "أنعش المحادثة ال_خاصة" #: ../gtk-dialog.c:1563 msgid "I have not" msgstr "لم أتحقق" #: ../gtk-dialog.c:1564 msgid "I have" msgstr "تحققتُ" #: ../gtk-dialog.c:1566 msgid " verified that this is in fact the correct" msgstr "من أن هذا صحيح حقا" #: ../gtk-dialog.c:1575 #, c-format msgid "fingerprint for %s." msgstr "بصمة %s." #: ../gtk-dialog.c:1587 msgid "To verify the fingerprint, contact your buddy via some other authenticated channel, such as the telephone or GPG-signed email. Each of you should tell your fingerprint to the other." msgstr "لتتحقق من البصمة اتصل بصديقك عبر قناة أخرى مستوثقة، كالهاتف أو بريد موقع رقميا، بحيث يُخبر كل منكما الآخر ببصمته." #: ../gtk-dialog.c:1591 msgid "If everything matches up, you should indicate in the above dialog that you have verified the fingerprint." msgstr "إذا تطابق كل شيء عليك أن توضح في الحوار السابق أنك تحققت من البصمة." #: ../gtk-dialog.c:1593 msgid "If your buddy has more than one IM account, or uses more than one computer, he may have multiple fingerprints." msgstr "إن كان لصديقك أكثر من حساب تراسل فوري أو يستخدم أكثر من حاسوب فقد تكون له أكثر من بصمة." #: ../gtk-dialog.c:1595 msgid "However, the only way an imposter could duplicate one of your buddy's fingerprints is by stealing information from her/his computer." msgstr "مع هذا فالطريقة الوحيدة التي يمكن بها لمنتحل تزييف بصمة أحد أصدقائك هي السطو على معلومات معينة من حاسوبه." #: ../gtk-dialog.c:1599 msgid "Click here for more information about fingerprints." msgstr "انقر هنا لمزيد من المعلومات عن البصمات." #: ../gtk-dialog.c:1602 msgid "A fingerprint is a unique identifier that you should use to authenticate your buddy." msgstr "البصمة هي مُعرف فريد يتعين عليك استخدامه للاستيثاق من أصدقائك." #: ../gtk-dialog.c:1624 #, c-format msgid "Verify fingerprint for %s" msgstr "تحقق من بصمة %s" #: ../gtk-dialog.c:1628 msgid "[none]" msgstr "[لاشيء]" #: ../gtk-dialog.c:1636 #, c-format msgid "" "Fingerprint for you, %s (%s):\n" "%s\n" "\n" "Purported fingerprint for %s:\n" "%s\n" msgstr "" "بصمتك، %s (%s):\n" "%s\n" "\n" "بصمة %s المزعومة:\n" "%s\n" #: ../gtk-dialog.c:1641 #: ../gtk-ui.c:681 msgid "Verify fingerprint" msgstr "تحقق من البصمة" #: ../gtk-dialog.c:1668 #, c-format msgid "Authenticate %s" msgstr "استوثق من %s" #: ../gtk-dialog.c:1673 #, c-format msgid "Enter a secret known only to %s and yourself.\n" msgstr "أدخل سرا لا يعرفه سواك و %s.\n" #: ../gtk-dialog.c:1676 msgid "Authenticate buddy" msgstr "استوثق من الصديق" #: ../gtk-dialog.c:1708 msgid "An error occurred during authentication." msgstr "حدث عطل أثناء الاستيثاق." #: ../gtk-dialog.c:1724 msgid "Authentication successful." msgstr "نجح الاستيثاق." #: ../gtk-dialog.c:1727 msgid "Authentication failed." msgstr "فشل الاستيثاق." #: ../gtk-dialog.c:1752 #, c-format msgid "Private conversation with %s started.%s" msgstr "بدأت محادثة خاصة مع %s. %s " #: ../gtk-dialog.c:1756 #, c-format msgid "Unverified conversation with %%s started.%%s" msgstr "بدأت محادثة غير مستوثقة مع %%s .%%s" #. This last case should never happen, since we know #. * we're in ENCRYPTED. #: ../gtk-dialog.c:1764 #, c-format msgid "Not private conversation with %s started.%s" msgstr "بدأت محادثة غير خاصة مع %s. %s " #: ../gtk-dialog.c:1770 #: ../gtk-dialog.c:1871 msgid " Warning: using old protocol version 1." msgstr " تحذير: تستخدم بروتوكولا قديما من الإصدارة 1." #: ../gtk-dialog.c:1790 #, c-format msgid "Private conversation with %s lost." msgstr "انقطعت المحادثة الخاصة مع %s." #: ../gtk-dialog.c:1825 #, c-format msgid "%s has ended his/her private conversation with you; you should do the same." msgstr "أنهى %s من طرفه المحادثة الخاصة معك. عليك فعل الشيء ذاته." #: ../gtk-dialog.c:1850 #, c-format msgid "Successfully refreshed the private conversation with %s.%s" msgstr "تم إنعاش المحادثة الخاصة مع %s بنجاح.%s" #: ../gtk-dialog.c:1855 #, c-format msgid "Successfully refreshed the unverified conversation with %%s.%%s" msgstr "تم إنعاش المحادثة غير المستوثقة مع %%s بنجاح.%%s" #. This last case should never happen, since we know #. * we're in ENCRYPTED. #: ../gtk-dialog.c:1864 #, c-format msgid "Successfully refreshed the not private conversation with %s.%s" msgstr "تم إنعاش المحادثة غير الخاصة مع %s بنجاح.%s" #: ../gtk-dialog.c:1891 #, c-format msgid "Attempting to refresh the private conversation with %s..." msgstr "تجري محاولة تنشيط المحادثة الخاصة مع %s..." #: ../gtk-dialog.c:1893 #, c-format msgid "Attempting to start a private conversation with %s..." msgstr "تجري محاولة بدء محادثة خاصة مع %s..." #: ../gtk-dialog.c:2053 msgid "OTR:" msgstr "OTR:" #: ../gtk-dialog.c:2062 msgid "OTR Messaging" msgstr "تراسل OTR" #: ../gtk-dialog.c:2068 msgid "_End private conversation" msgstr "ا_نهِ المحادثة الخاصة" #. #. * Don't show the Verify fingerprint menu option any more. You can #. * still get to the dialog through Authenticate connection -> #. * Advanced... #. * #. menuverf = gtk_menu_item_new_with_mnemonic(_("_Verify fingerprint")); #. gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuverf); #. gtk_widget_show(menuverf); #. #: ../gtk-dialog.c:2086 msgid "_Authenticate buddy" msgstr "ا_ستوثق من الصديق" #: ../gtk-ui.c:96 #, c-format msgid "Fingerprint: %.80s" msgstr "البصمة: %.80s " #: ../gtk-ui.c:100 #, c-format msgid "No key present" msgstr "لا توجد مفاتيح" #: ../gtk-ui.c:105 #, c-format msgid "No account available" msgstr "لا توجد حسابات" #: ../gtk-ui.c:165 msgid "Unused" msgstr "غير مستخدم" #: ../gtk-ui.c:171 msgid "Yes" msgstr "نعم" #: ../gtk-ui.c:171 msgid "No" msgstr "لا" #: ../gtk-ui.c:396 msgid "Enable private messaging" msgstr "فعِّل التراسل الخاص" #: ../gtk-ui.c:398 msgid "Automatically initiate private messaging" msgstr "ابدأ التراسل الخاص تلقائيا" #: ../gtk-ui.c:400 msgid "Require private messaging" msgstr "اشترط التراسل الخاص" #: ../gtk-ui.c:403 msgid "Don't log OTR conversations" msgstr "لا تُسجِّل محادثات OTR" #: ../gtk-ui.c:531 msgid "My private keys" msgstr "مفاتيحي السريّة" #: ../gtk-ui.c:540 msgid "Key for account:" msgstr "مفتاح الحساب:" #: ../gtk-ui.c:565 msgid "Generate" msgstr "ولِّد" #: ../gtk-ui.c:596 msgid "Default OTR Settings" msgstr "اعدادات OTR المبدئية" #: ../gtk-ui.c:625 msgid "Screenname" msgstr "اسم الشاشة" #: ../gtk-ui.c:626 msgid "Status" msgstr "الحالة" #: ../gtk-ui.c:627 msgid "Verified" msgstr "محققة" #: ../gtk-ui.c:628 msgid "Fingerprint" msgstr "البصمة" #: ../gtk-ui.c:629 msgid "Account" msgstr "الحساب" #: ../gtk-ui.c:665 msgid "Start private connection" msgstr "ابدأ محادثة خاصة" #: ../gtk-ui.c:673 msgid "End private connection" msgstr "انهِ المحادثة الخاصة" #: ../gtk-ui.c:689 msgid "Forget fingerprint" msgstr "انس البصمة" #: ../gtk-ui.c:738 msgid "Config" msgstr "اضبط" #: ../gtk-ui.c:740 msgid "Known fingerprints" msgstr "البصمات المعروفة" #: ../gtk-ui.c:838 #: ../otr-plugin.c:584 msgid "OTR Settings" msgstr "تضبيطات OTR" #. Set the title #: ../gtk-ui.c:856 #, c-format msgid "OTR Settings for %s" msgstr "تضبيطات OTR لأجل %s" #. Make the cascaded checkboxes #: ../gtk-ui.c:873 msgid "Use default OTR settings for this buddy" msgstr "استخدم تضبيطات OTR المبدئية لهذا الصديق" #: ../otr-plugin.c:113 #, c-format msgid "You are not currently connected to account %s (%s)." msgstr "لست حاليا متصلا بالحساب %s (%s)." #: ../otr-plugin.c:117 msgid "Not connected" msgstr "غير متّصل" #: ../otr-plugin.c:161 #, c-format msgid "Out of memory building filenames!\n" msgstr "نفدت الذاكرة أثناء بناء أسماء الملفات!\n" #: ../otr-plugin.c:167 #, c-format msgid "Could not write private key file\n" msgstr "تعذّرت كتابة ملف المفتاح السري\n" #: ../otr-plugin.c:210 #, c-format msgid "Unknown account %s (%s)." msgstr "حساب مجهول %s (%s)." #: ../otr-plugin.c:214 msgid "Unknown account" msgstr "حساب مجهول" #: ../otr-plugin.c:960 msgid "Off-the-Record Messaging" msgstr "التراسل الخاص Off-the-record Messaging" #: ../otr-plugin.c:961 msgid "Provides private and secure conversations" msgstr "يتيح إقامة محادثات خاصة و مؤمَّنة" #: ../otr-plugin.c:962 msgid "Preserves the privacy of IM communications by providing encryption, authentication, deniability, and perfect forward secrecy." msgstr "يحفظ خصوصية اتصالات التراسل الفوري باستخدام التعمية و الاستيثاق و الإنكار و الأمن اللاحق." #: ../ui.c:108 #, c-format msgid "Account %s (%s) could not be found" msgstr "لم يُعثر على الحساب %s (%s)" #: ../ui.c:112 msgid "Account not found" msgstr "لم يُعثر على الحساب" pidgin-otr-4.0.0/po/Makefile.mingw0000644000175000017500000000075511754224345013724 00000000000000# Makefile.mingw # # Description: Makefile to generate mo files # # based on Gaim's po/Makefile.mingw # # Name of the gettext domain GETTEXT_PACKAGE = pidgin-otr # msgfmt command GMSGFMT ?= /usr/bin/msgfmt .SUFFIXES: .SUFFIXES: .po .gmo ## ## SOURCES, OBJECTS ## CATALOGS = $(patsubst %.po,%.gmo,$(wildcard *.po)) ## ## RULES ## .po.gmo: rm -f $@ && $(GMSGFMT) --statistics -o $@ $< ## ## TARGETS ## .PHONY: all install clean all: $(CATALOGS) clean: rm -f *.gmo distclean: clean pidgin-otr-4.0.0/po/sv.po0000644000175000017500000003776311771350203012135 00000000000000# Swedish translation for pidgin-otr. # Copyright (C) 2009 Free Software Foundation, Inc. # This file is distributed under the same license as the pidgin-otr package. # Daniel Nylander , 2009. # msgid "" msgstr "" "Project-Id-Version: pidgin-otr\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-03-02 16:34+0100\n" "PO-Revision-Date: 2009-03-02 18:07+0100\n" "Last-Translator: Daniel Nylander \n" "Language-Team: Swedish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../gtk-dialog.c:291 #: ../gtk-dialog.c:1085 #: ../gtk-dialog.c:1089 #: ../gtk-dialog.c:1518 #: ../gtk-dialog.c:1621 #: ../gtk-dialog.c:1686 #: ../gtk-dialog.c:2130 msgid "?lang=en" msgstr "?lang=sv" #: ../gtk-dialog.c:439 msgid "Your buddy is attempting to determine if he or she is really talking to you, or if it's someone pretending to be you. Your buddy has asked a question, indicated below. To authenticate to your buddy, enter the answer and click OK." msgstr "Din kompis försöker att fastställa om han eller hon verkligen pratar med dig, eller om det är någon som utger sig för att vara dig. Din kompis har ställt en fråga, som indikeras nedan. Ange svaret och klicka på OK för att autentisera din kompis." #: ../gtk-dialog.c:446 msgid "To authenticate using a question, pick a question whose answer is known only to you and your buddy. Enter this question and this answer, then wait for your buddy to enter the answer too. If the answers don't match, then you may be talking to an imposter." msgstr "Välj en fråga vars svar endast är känt för dig och din kompis för att autentisera med en fråga. Ange denna fråga och detta svar, vänta sedan på att din kompis också ska ange svaret. Om svaren inte matchar varandra så kanske du pratar med en bedragare." #: ../gtk-dialog.c:464 #, c-format msgid "This is the question asked by your buddy:" msgstr "Detta är frågan som ställs av din kompis:" #: ../gtk-dialog.c:467 #, c-format msgid "Enter question here:" msgstr "Ange frågan här:" #: ../gtk-dialog.c:498 #: ../gtk-dialog.c:582 msgid "This buddy is already authenticated." msgstr "Denna kompis är redan autentiserad." #: ../gtk-dialog.c:510 #, c-format msgid "Enter secret answer here (case sensitive):" msgstr "Ange hemligt svar här (skiftlägeskänsligt):" #: ../gtk-dialog.c:551 msgid "To authenticate, pick a secret known only to you and your buddy. Enter this secret, then wait for your buddy to enter it too. If the secrets don't match, then you may be talking to an imposter." msgstr "Välj en hemlighet som endast du och din kompis känner till för att autentisera. Ange denna hemlighet, vänta sedan på att din kompis också ska ange den. Om hemligheterna inte stämmer med varandra så kanske du pratar med en bedragare." #: ../gtk-dialog.c:565 #, c-format msgid "Enter secret here:" msgstr "Ange hemligheten här:" #: ../gtk-dialog.c:616 #: ../gtk-dialog.c:1379 msgid "To verify the fingerprint, contact your buddy via some other authenticated channel, such as the telephone or GPG-signed email. Each of you should tell your fingerprint to the other." msgstr "Kontakta din kompis via någon annan autentiserad kanal, såsom telefon eller GPG-signerad e-post, för att verifiera fingeravtrycket. Var och en av er ska läsa upp varandras fingeravtryck." #: ../gtk-dialog.c:620 #: ../gtk-dialog.c:1383 msgid "If everything matches up, you should indicate in the above dialog that you have verified the fingerprint." msgstr "Om allting stämmer så bör du indikera, i ovanstående dialogruta, att du har verifierat fingeravtrycket." #: ../gtk-dialog.c:631 #: ../gtk-dialog.c:1368 msgid "[none]" msgstr "[ingen]" #: ../gtk-dialog.c:638 #: ../gtk-dialog.c:996 #: ../gtk-dialog.c:1375 #: ../gtk-dialog.c:1426 #: ../gtk-ui.c:181 #: ../otr-plugin.c:116 #: ../otr-plugin.c:213 #: ../ui.c:111 msgid "Unknown" msgstr "Okänd" #: ../gtk-dialog.c:639 #, c-format msgid "" "Fingerprint for you, %s (%s):\n" "%s\n" "\n" "Purported fingerprint for %s:\n" "%s\n" msgstr "" "Fingeravtryck för dig, %s (%s):\n" "%s\n" "\n" "Påstått fingeravtryck för %s:\n" "%s\n" #: ../gtk-dialog.c:691 msgid "How would you like to authenticate your buddy?" msgstr "Hur vill du autentisera din kompis?" #: ../gtk-dialog.c:700 msgid "Question and answer" msgstr "Fråga och svar" #: ../gtk-dialog.c:703 msgid "Shared secret" msgstr "Delad hemlighet" #: ../gtk-dialog.c:706 msgid "Manual fingerprint verification" msgstr "Manuell verifiering av fingeravtryck" #: ../gtk-dialog.c:749 msgid "_Authenticate" msgstr "_Autentisera" #: ../gtk-dialog.c:782 msgid "Authenticating a buddy helps ensure that the person you are talking to is who he or she claims to be." msgstr "Autentisering av en kompis försäkrar att personen som du pratar med verkligen är den person som han eller hon utger sig för att vara." #. Translators: you are asked to authenticate yourself #: ../gtk-dialog.c:891 msgid "Authenticating to Buddy" msgstr "Autentiserar mot kompis" #. Translators: you asked your buddy to authenticate him/herself #: ../gtk-dialog.c:893 msgid "Authenticating Buddy" msgstr "Autentiserar kompis" #: ../gtk-dialog.c:920 #, c-format msgid "Authenticating to %s" msgstr "Autentiserar mot %s" #: ../gtk-dialog.c:921 #, c-format msgid "Authenticating %s" msgstr "Autentiserar %s" #: ../gtk-dialog.c:954 msgid "Waiting for buddy..." msgstr "Väntar på kompisen..." #: ../gtk-dialog.c:987 msgid "Generating private key" msgstr "Genererar privat nyckel" #: ../gtk-dialog.c:988 msgid "Please wait" msgstr "Vänta" #. Create the Please Wait... dialog #: ../gtk-dialog.c:999 #, c-format msgid "Generating private key for %s (%s)..." msgstr "Genererar privat nyckel för %s (%s)..." #: ../gtk-dialog.c:1044 #, c-format msgid "%s Done." msgstr "%s färdigt." #: ../gtk-dialog.c:1083 #, c-format msgid "%s is contacting you from an unrecognized computer. You should authenticate this buddy." msgstr "%s kontaktar dig från en okänd dator. Du bör autentisera denna kompis." #: ../gtk-dialog.c:1087 #, c-format msgid "%s has not been authenticated yet. You should authenticate this buddy." msgstr "%s har ännu inte autentiserats. Du bör autentisera denna kompis." #: ../gtk-dialog.c:1150 #: ../gtk-dialog.c:1181 #: ../gtk-dialog.c:1853 #: ../gtk-dialog.c:2126 #: ../gtk-ui.c:82 msgid "Finished" msgstr "Färdig" #: ../gtk-dialog.c:1151 #: ../gtk-dialog.c:1182 #: ../gtk-dialog.c:1850 #: ../gtk-dialog.c:2123 #: ../gtk-ui.c:81 msgid "Private" msgstr "Privat" #: ../gtk-dialog.c:1152 #: ../gtk-dialog.c:1183 #: ../gtk-dialog.c:1847 #: ../gtk-dialog.c:2120 #: ../gtk-ui.c:80 msgid "Unverified" msgstr "Inte verifierad" #: ../gtk-dialog.c:1153 #: ../gtk-dialog.c:1184 #: ../gtk-ui.c:79 msgid "Not private" msgstr "Icke-privat" #: ../gtk-dialog.c:1156 msgid "Start a private conversation" msgstr "Starta en privat konversation" #: ../gtk-dialog.c:1157 msgid "Refresh the private conversation" msgstr "Uppdatera privat konversation" #: ../gtk-dialog.c:1162 #: ../gtk-dialog.c:1802 #: ../gtk-dialog.c:1897 msgid "Start _private conversation" msgstr "Starta _privat konversation" #: ../gtk-dialog.c:1163 #: ../gtk-dialog.c:1803 msgid "Refresh _private conversation" msgstr "Uppdatera _privat konversation" #: ../gtk-dialog.c:1187 msgid "OTR" msgstr "OTR" #. Translators: the following four messages should give alternative sentences. #. The user selects the first or second message in a combo box; #. the third message, a new line, a fingerprint, a new line, and #. the fourth message will follow it. #: ../gtk-dialog.c:1322 msgid "I have not" msgstr "Jag har inte" #. 2nd message #: ../gtk-dialog.c:1324 msgid "I have" msgstr "Jag har" #. 3rd message #: ../gtk-dialog.c:1327 msgid " verified that this is in fact the correct" msgstr " verifierat att detta är det korrekta" #. 4th message #: ../gtk-dialog.c:1337 #, c-format msgid "fingerprint for %s." msgstr "fingeravtrycket för %s." #: ../gtk-dialog.c:1364 #, c-format msgid "Verify fingerprint for %s" msgstr "Verifiera fingeravtryck för %s" #: ../gtk-dialog.c:1376 #, c-format msgid "" "%s %s\n" "\n" "Fingerprint for you, %s (%s):\n" "%s\n" "\n" "Purported fingerprint for %s:\n" "%s\n" msgstr "" "%s %s\n" "\n" "Fingeravtryck för dig, %s (%s):\n" "%s\n" "\n" "Påstått fingeravtryck för %s:\n" "%s\n" #: ../gtk-dialog.c:1389 #: ../gtk-ui.c:782 msgid "Verify fingerprint" msgstr "Verifiera fingeravtryck" #: ../gtk-dialog.c:1416 #, c-format msgid "Authentication from %s" msgstr "Autentisering från %s" #: ../gtk-dialog.c:1419 #, c-format msgid "Authenticate %s" msgstr "Autentisera %s" #: ../gtk-dialog.c:1429 msgid "Authenticate Buddy" msgstr "Autentisera kompis" #: ../gtk-dialog.c:1460 msgid "An error occurred during authentication." msgstr "Ett fel inträffade under autentisering." #: ../gtk-dialog.c:1475 msgid "Authentication successful." msgstr "Autentiseringen lyckades." #: ../gtk-dialog.c:1478 msgid "Your buddy has successfully authenticated you. You may want to authenticate your buddy as well by asking your own question." msgstr "Din kompis har autentiserat dig. Du kanske också vill autentisera din kompis genom att ställa en egen fråga." #: ../gtk-dialog.c:1484 msgid "Authentication failed." msgstr "Autentisering misslyckades." #: ../gtk-dialog.c:1512 #, c-format msgid "Private conversation with %s started.%s" msgstr "Privat konversation med %s har startat.%s" #: ../gtk-dialog.c:1516 #, c-format msgid "Unverified conversation with %%s started.%%s" msgstr "Ej verifierad konversation med %%s har startat.%%s" #. This last case should never happen, since we know #. * we're in ENCRYPTED. #: ../gtk-dialog.c:1524 #, c-format msgid "Not private conversation with %s started.%s" msgstr "Icke-privat konversation med %s har startat.%s" #: ../gtk-dialog.c:1530 #: ../gtk-dialog.c:1634 msgid " Warning: using old protocol version 1." msgstr " Varning: använder gammalt protokoll version 1." #: ../gtk-dialog.c:1550 #, c-format msgid "Private conversation with %s lost." msgstr "Privata konversationen med %s kopplades från." #: ../gtk-dialog.c:1587 #, c-format msgid "%s has ended his/her private conversation with you; you should do the same." msgstr "%s har avslutat sin privata konversation med dig. Du bör göra det samma." #: ../gtk-dialog.c:1613 #, c-format msgid "Successfully refreshed the private conversation with %s.%s" msgstr "Uppdaterade privat konversation med %s.%s" #: ../gtk-dialog.c:1618 #, c-format msgid "Successfully refreshed the unverified conversation with %%s.%%s" msgstr "Uppdaterade ej verifierad konversation med %%s.%%s" #. This last case should never happen, since we know #. * we're in ENCRYPTED. #: ../gtk-dialog.c:1627 #, c-format msgid "Successfully refreshed the not private conversation with %s.%s" msgstr "Uppdaterade icke-privat konversation med %s.%s" #: ../gtk-dialog.c:1659 #, c-format msgid "Attempting to refresh the private conversation with %s..." msgstr "Försöker att uppdatera privat konversation med %s..." #: ../gtk-dialog.c:1661 #, c-format msgid "Attempting to start a private conversation with %s..." msgstr "Försöker att starta en privat konversation med %s..." #: ../gtk-dialog.c:1844 #: ../gtk-dialog.c:2117 msgid "Not Private" msgstr "Icke-privat" #: ../gtk-dialog.c:1866 #: ../gtk-dialog.c:2338 msgid "_What's this?" msgstr "_Vad är detta?" #: ../gtk-dialog.c:1898 #: ../gtk-dialog.c:2303 msgid "_End private conversation" msgstr "A_vsluta privat konversation" #. #. * Don't show the Verify fingerprint menu option any more. You can #. * still get to the dialog through Authenticate connection -> #. * Advanced... #. * #. menuverf = gtk_menu_item_new_with_mnemonic(_("_Verify fingerprint")); #. gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuverf); #. gtk_widget_show(menuverf); #. #: ../gtk-dialog.c:1899 #: ../gtk-dialog.c:2321 msgid "_Authenticate buddy" msgstr "_Autentisera kompis" #: ../gtk-dialog.c:2113 #, c-format msgid "The privacy status of the current conversation is now: %s" msgstr "Integritetsstatus för aktuell konversation är nu: %s" #: ../gtk-dialog.c:2276 msgid "OTR:" msgstr "OTR:" #: ../gtk-dialog.c:2296 msgid "OTR Messaging" msgstr "OTR-meddelanden" #: ../gtk-ui.c:102 #, c-format msgid "Fingerprint: %.80s" msgstr "Fingeravtryck: %.80s" #: ../gtk-ui.c:106 #, c-format msgid "No key present" msgstr "Ingen nyckel finns" #: ../gtk-ui.c:111 #, c-format msgid "No account available" msgstr "Inget konto tillgängligt" #: ../gtk-ui.c:171 msgid "Unused" msgstr "Oanvänd" #: ../gtk-ui.c:177 msgid "Yes" msgstr "Ja" #: ../gtk-ui.c:177 msgid "No" msgstr "Nej" #: ../gtk-ui.c:403 msgid "Enable private messaging" msgstr "Aktivera privata meddelanden" #: ../gtk-ui.c:405 msgid "Automatically initiate private messaging" msgstr "Initiera automatiskt privata meddelanden" #: ../gtk-ui.c:407 msgid "Require private messaging" msgstr "Kräv privata meddelanden" #: ../gtk-ui.c:410 msgid "Don't log OTR conversations" msgstr "Logga inte OTR-konversationer" #: ../gtk-ui.c:454 msgid "Show OTR button" msgstr "Visa OTR-knapp" #: ../gtk-ui.c:457 msgid "Show OTR button in toolbar" msgstr "Visa OTR-knapp i verktygsrad" #: ../gtk-ui.c:601 msgid "My private keys" msgstr "Mina privata nycklar" #: ../gtk-ui.c:610 msgid "Key for account:" msgstr "Nyckel för konto:" #: ../gtk-ui.c:635 msgid "Generate" msgstr "Generera" #: ../gtk-ui.c:676 msgid "Default OTR Settings" msgstr "Standardinställningar för OTR" #: ../gtk-ui.c:703 msgid "OTR UI Options" msgstr "Gränssnittsalternativ för OTR" #: ../gtk-ui.c:726 msgid "Screenname" msgstr "Skärmnamn" #: ../gtk-ui.c:727 msgid "Status" msgstr "Status" #: ../gtk-ui.c:728 msgid "Verified" msgstr "Verifierad" #: ../gtk-ui.c:729 msgid "Fingerprint" msgstr "Fingeravtryck" #: ../gtk-ui.c:730 msgid "Account" msgstr "Konto" #: ../gtk-ui.c:766 msgid "Start private connection" msgstr "Starta privat anslutning" #: ../gtk-ui.c:774 msgid "End private connection" msgstr "Avsluta privat anslutning" #: ../gtk-ui.c:790 msgid "Forget fingerprint" msgstr "Glöm fingeravtryck" #: ../gtk-ui.c:841 msgid "Config" msgstr "Konfiguration" #: ../gtk-ui.c:843 msgid "Known fingerprints" msgstr "Kända fingeravtryck" #: ../gtk-ui.c:941 #: ../otr-plugin.c:606 msgid "OTR Settings" msgstr "OTR-inställningar" #. Set the title #: ../gtk-ui.c:959 #, c-format msgid "OTR Settings for %s" msgstr "OTR-inställningar för %s" #. Make the cascaded checkboxes #: ../gtk-ui.c:976 msgid "Use default OTR settings for this buddy" msgstr "Använd standardinställningar för OTR för denna kompis" #: ../otr-plugin.c:114 #, c-format msgid "You are not currently connected to account %s (%s)." msgstr "Du är för närvarande inte ansluten till kontot %s (%s)." #: ../otr-plugin.c:118 msgid "Not connected" msgstr "Inte ansluten" #: ../otr-plugin.c:162 #, c-format msgid "Out of memory building filenames!\n" msgstr "Slut på minne när filnamn byggdes!\n" #: ../otr-plugin.c:168 #, c-format msgid "Could not write private key file\n" msgstr "Kunde inte skriva privat nyckel-fil\n" #: ../otr-plugin.c:211 #, c-format msgid "Unknown account %s (%s)." msgstr "Okänt konto %s (%s)." #: ../otr-plugin.c:215 msgid "Unknown account" msgstr "Okänt konto" #: ../otr-plugin.c:983 msgid "Off-the-Record Messaging" msgstr "Off-the-Record-meddelanden" #: ../otr-plugin.c:984 msgid "Provides private and secure conversations" msgstr "Tillhandahåller privata och säkra konversationer" #: ../otr-plugin.c:985 msgid "Preserves the privacy of IM communications by providing encryption, authentication, deniability, and perfect forward secrecy." msgstr "Bibehåller integriteten för snabbmeddelanden genom att tillhandahålla kryptering, autentisering, förnekande och perfekt sekretess för vidarebefordring." #: ../ui.c:109 #, c-format msgid "Account %s (%s) could not be found" msgstr "Kontot %s (%s) kunde inte hittas" #: ../ui.c:113 msgid "Account not found" msgstr "Kontot hittades inte" pidgin-otr-4.0.0/po/my_MM.po0000644000175000017500000011420212020421670012476 00000000000000# Copyright (C) 2004-2012 Ian Goldberg, Rob Smits, Chris Alexander, Willy Lew, # Lisa Du, Nikita Borisov # This file is distributed under the same license as the pidgin-otr package. # Ian Goldberg , 2012 # msgid "" msgstr "" "Project-Id-Version: pidgin-otr 4.0.0.my_MM\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-06-14 09:45-0400\n" "PO-Revision-Date: 2012-07-01 22:01+0530\n" "Last-Translator: Russell Kyaw \n" "Language-Team: MM L10N Team \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../gtk-dialog.c:332 #: ../gtk-dialog.c:1141 #: ../gtk-dialog.c:1145 #: ../gtk-dialog.c:1547 #: ../gtk-dialog.c:1584 #: ../gtk-dialog.c:1673 #: ../gtk-dialog.c:1748 #: ../gtk-dialog.c:2749 msgid "?lang=en" msgstr "?lang=my_MM" #: ../gtk-dialog.c:480 msgid "Your buddy is attempting to determine if he or she is really talking to you, or if it's someone pretending to be you. Your buddy has asked a question, indicated below. To authenticate to your buddy, enter the answer and click OK." msgstr "သင့်မိတ်ဆွေသည် သူခေါ်နေသော သူသည် သင်တကယ် ဟုတ်မဟုတ်၊ (သို့) တစ်စုံတစ်ယောက်သည် သင့်အယောင်ကို ဆောင်မဆောင် စစ်ဆေးရန် ကြိုးစားနေသည်။ သင့်မိတ်ဆွေသည် အောက်ပါအတိုင်း သင့်ကို မေးခွန်း တစ်ပုဒ်​ မေးနေသည်။ သင့်​မိတ်ဆွေကို အတည်ပြုရန်၊ အဖြေကို ရေးထည့်ပြီး ကောင်းပြီ ကို နှိပ်ပါ။" #: ../gtk-dialog.c:487 msgid "To authenticate using a question, pick a question whose answer is known only to you and your buddy. Enter this question and this answer, then wait for your buddy to enter the answer too. If the answers don't match, then you may be talking to an imposter." msgstr "​မေးခွန်း တစ်ပုဒ်ကို အသုံးပြုပြီး အတည်ပြုရန်၊ သင်နှင့် သင့်မိတ်ဆွေတို့ကသာ အဖြေ သိရှိသော မေးခွန်း တစ်ပုဒ်ကို ရွေးပါ။ ဤမေးခွန်းနှင့် အဖြေကို ရေးထည့်ပြီး၊ သင့်မိတ်ဆွေက အဖြေကို ရေးထည့်ရန် စောင့်ဆိုင်းပါ။ အကယ်၍ အဖြေ ကိုက်ညီမှု မရှိပါက၊ သူ့ကို ​အယောင်ဆောင်သူ တစ်ဦးအဖြစ် သတ်မှတ်နိုင်သည်။" #: ../gtk-dialog.c:505 #, c-format msgid "This is the question asked by your buddy:" msgstr "ဤမေးခွန်းသည် သင့်မိတ်ဆွေ မေးသော မေးခွန်း ဖြစ်သည် -" #: ../gtk-dialog.c:508 #, c-format msgid "Enter question here:" msgstr "ဤနေရာ၌ မေးခွန်း ရေးပါ -" #: ../gtk-dialog.c:540 #: ../gtk-dialog.c:624 msgid "This buddy is already authenticated." msgstr "သင့် မိတ်ဆွေကို စစ်ဆေး အတည်ပြုလိုက်ပြီ။" #: ../gtk-dialog.c:552 #, c-format msgid "Enter secret answer here (case sensitive):" msgstr "လျှို့ဝှက် အဖြေကို ဤနေရာ၌ ရေးထည့်ပါ (အမှားမခံ) -" #: ../gtk-dialog.c:593 msgid "To authenticate, pick a secret known only to you and your buddy. Enter this secret, then wait for your buddy to enter it too. If the secrets don't match, then you may be talking to an imposter." msgstr "အတည်ပြုနိုင်ရန်၊ သင်နှင့် သင့်မိတ်ဆွေတို့ကသာ သိရှိသော လျှို့ဝှက်ချက် တစ်ခုကို ရွေးပါ။ ဤလျှို့ဝှက်ချက်ကို ရေးပြီးနောက်၊ သင့် မိတ်ဆွေလည်း ၄င်းကို ရေးသည့်အထိ စောင့်ဆိုင်းပါ။ အကယ်၍ လျှို့ဝှက် မကိုက်ညီပါက၊ သူ့အယောင်ဆောင်သော သူကို စကားပြောနေခြင်း ဖြစ်နိုင်သည်။" #: ../gtk-dialog.c:607 #, c-format msgid "Enter secret here:" msgstr "ဤနေရာ၌ လျှို့ဝှက်ချက် ရေးထည့်ရန် -" #: ../gtk-dialog.c:657 #: ../gtk-dialog.c:1408 msgid "To verify the fingerprint, contact your buddy via some other authenticated channel, such as the telephone or GPG-signed email. Each of you should tell your fingerprint to the other." msgstr "လက်ဗွေကို စစ်ဆေး အတည်ပြုရန်၊ သင့် မိတ်ဆွေကို တယ်လီဖုန်း (သို့) GPG-လက်မှတ်ထိုးထား​သော အီးမေးလ် စသည်ဖြင့် စစ်ဆေး အတည်ပြုသော အခြား လမ်းကြောင်း မှတစ်ဆင့် ဆက်သွယ်ပါ။ သင်တို့ တစ်ဦးကို တစ်ဦး မိမိတို့၏ လက်ဗွေကို ပြောပြရမည် ဖြစ်သည်။" #: ../gtk-dialog.c:661 msgid "If everything matches up, you should chose I have in the menu below." msgstr "အကယ်၍ အားလုံး ကိုက်ညီပါက၊ အောက် မီနူးရှိ ကျွန်တော့်ဆီ ရှိသည် ကို ရွေးပါ။" #: ../gtk-dialog.c:672 #: ../gtk-dialog.c:1397 msgid "[none]" msgstr "[ဘာမှမရှိ]" #: ../gtk-dialog.c:679 #: ../gtk-dialog.c:1051 #: ../gtk-dialog.c:1404 #: ../gtk-dialog.c:1453 #: ../gtk-ui.c:212 #: ../otr-plugin.c:127 #: ../otr-plugin.c:300 #: ../ui.c:112 msgid "Unknown" msgstr "အမည်မသိ" #: ../gtk-dialog.c:680 #, c-format msgid "" "Fingerprint for you, %s (%s):\n" "%s\n" "\n" "Purported fingerprint for %s:\n" "%s\n" msgstr "" "သင့်အတွက် လက်ဗွေ၊ %s (%s):\n" "%s\n" "\n" "​​အယောင်ဆောင် လက်​ဗွေ ပိုင်ရှင် %s:\n" "%s\n" #: ../gtk-dialog.c:736 msgid "How would you like to authenticate your buddy?" msgstr "သင့်မိတ်ဆွေကို မည်ကဲ့သို့ စစ်ဆေး အတည်ပြုမည်နည်း?" #: ../gtk-dialog.c:745 msgid "Question and answer" msgstr "မေးခွန်းနှင့် အ​ဖြေ" #: ../gtk-dialog.c:748 msgid "Shared secret" msgstr "မျှဝေထားသော လျှို့ဝှက်ချက်" #: ../gtk-dialog.c:751 msgid "Manual fingerprint verification" msgstr "လက်ဗွေကို ကိုယ်တိုင် အတည်ပြုခြင်း" #: ../gtk-dialog.c:802 msgid "_Authenticate" msgstr "အတည်ပြုခြင်း (_A)" #: ../gtk-dialog.c:836 msgid "Authenticating a buddy helps ensure that the person you are talking to is who he or she claims to be." msgstr "မိတ်ဆွေ တစ်ဦးကို စစ်​ဆေး အတည်ပြုခြင်းဖြင့် သင်နှစ် စကားပြောနေသူသည် သင်ရည်ရွယ်ထားသော ပုဂ္ဂိုလ် အမှန် ဖြစ်ကြောင်း သေချာစေသည်။" #. Translators: you are asked to authenticate yourself #: ../gtk-dialog.c:946 msgid "Authenticating to Buddy" msgstr "မိတ်ဆွေကို စစ်ဆေး အတည်ပြုရန်" #. Translators: you asked your buddy to authenticate him/herself #: ../gtk-dialog.c:948 msgid "Authenticating Buddy" msgstr "မိတ်ဆွေကို အတည်ပြုနေသည်" #: ../gtk-dialog.c:975 #, c-format msgid "Authenticating to %s" msgstr "%s ကို အတည်ပြုနေသည်" #: ../gtk-dialog.c:976 #, c-format msgid "Authenticating %s" msgstr "%s ကို အတည်ပြုနေသည်" #: ../gtk-dialog.c:1009 msgid "Waiting for buddy..." msgstr "မိတ်ဆွေကို စောင့်ဆိုင်းနေသည်..." #: ../gtk-dialog.c:1042 msgid "Generating private key" msgstr "Private key ကို ထုတ်လုပ်နေသည်" #: ../gtk-dialog.c:1043 msgid "Please wait" msgstr "ခေတ္တ စောင့်ဆိုင်းပါ" #. Create the Please Wait... dialog #: ../gtk-dialog.c:1054 #, c-format msgid "Generating private key for %s (%s)..." msgstr "%s (%s) အတွက် private key ထုတ်လုပ်နေသည်..." #: ../gtk-dialog.c:1099 #, c-format msgid "%s Done." msgstr "%s ကို ပြီးသွားပြီ။" #: ../gtk-dialog.c:1139 #, c-format msgid "%s is contacting you from an unrecognized computer. You should authenticate this buddy." msgstr "%s သည် အမည်မသိသော ကွန်ပျူတာမှ သင့်ကို ဆက်သွယ်နေသည်။ ဤမိတ်ဆွေကို စစ်ဆေး အတည်ပြုပါ။" #: ../gtk-dialog.c:1143 #, c-format msgid "%s has not been authenticated yet. You should authenticate this buddy." msgstr "%s ကို စစ်ဆေး အတည်ပြုခြင်း မလုပ်သေးပါ။ ဤမိတ်ဆွေကို စစ်ဆေး အတည်ပြု ပါ။" #: ../gtk-dialog.c:1195 #: ../gtk-dialog.c:1969 #: ../gtk-dialog.c:2745 #: ../gtk-ui.c:83 msgid "Finished" msgstr "အပြီးသတ်ပြီ" #: ../gtk-dialog.c:1196 #: ../gtk-dialog.c:1966 #: ../gtk-dialog.c:2742 #: ../gtk-ui.c:82 msgid "Private" msgstr "သီးသန့်" #: ../gtk-dialog.c:1197 #: ../gtk-dialog.c:1963 #: ../gtk-dialog.c:2739 #: ../gtk-ui.c:81 msgid "Unverified" msgstr "အတည်မပြုသေး" #: ../gtk-dialog.c:1198 #: ../gtk-ui.c:80 msgid "Not private" msgstr "သီးသန့်မဟုတ်" #: ../gtk-dialog.c:1201 msgid "OTR" msgstr "OTR" #. Translators: the following four messages should give alternative #. * sentences. The user selects the first or second message in a combo box; #. * the third message, a new line, a fingerprint, a new line, and #. * the fourth message will follow it. #: ../gtk-dialog.c:1351 msgid "I have not" msgstr "ကျွန်တော့်ဆီ မရှိပါ" #. 2nd message #: ../gtk-dialog.c:1353 msgid "I have" msgstr "ကျွန်တော့်ဆီ ရှိသည်" #. 3rd message #: ../gtk-dialog.c:1356 msgid " verified that this is in fact the correct" msgstr "ဤအ​ရာသည် မှန်ကန်ကြောင်း အတည်ပြုသည်" #. 4th message #: ../gtk-dialog.c:1366 #, c-format msgid "fingerprint for %s." msgstr "%s အတွက် လက်ဗွေ။" #: ../gtk-dialog.c:1393 #, c-format msgid "Verify fingerprint for %s" msgstr "%s အတွက် လက်ဗွေကို အတည်ပြုပါ" #: ../gtk-dialog.c:1405 #, c-format msgid "" "%s %s\n" "\n" "Fingerprint for you, %s (%s):\n" "%s\n" "\n" "Purported fingerprint for %s:\n" "%s\n" msgstr "" "%s %s\n" "\n" "သင့်အတွက် လက်ဗွေ၊ %s (%s):\n" "%s\n" "\n" "​အယောင်ဆောင် လက်ဗွေပိုင်ရှင် %s:\n" "%s\n" #: ../gtk-dialog.c:1412 msgid "If everything matches up, you should indicate in the above dialog that you have verified the fingerprint." msgstr "အကယ်၍ အရာအားလုံး ကိုက်ညီပါက၊ အထက်ပါ အညွှန်း စာမျက်နှာရှိ လက်ဗွေကို သင် အတည်ပြုလိုက်ပြီ၌ အမှတ်အသား ပြုလိုက်ပါ။" #: ../gtk-dialog.c:1418 #: ../gtk-ui.c:844 msgid "Verify fingerprint" msgstr "လက်ဗွေ အတည်ပြုပါ" #: ../gtk-dialog.c:1445 #, c-format msgid "Authentication from %s" msgstr "%s မှ အတည်ပြုချက်" #: ../gtk-dialog.c:1448 #, c-format msgid "Authenticate %s" msgstr "%s ကို အတည်ပြုရန်" #: ../gtk-dialog.c:1456 msgid "Authenticate Buddy" msgstr "မိတ်ဆွေကို အတည်ပြုရန်" #: ../gtk-dialog.c:1487 msgid "An error occurred during authentication." msgstr "စစ်ဆေး အတည်ပြုနေစဉ် ချို့ယွင်းချက် တစ်ခု ဖြစ်ပွားခဲ့သည်။" #: ../gtk-dialog.c:1502 msgid "Authentication successful." msgstr "အတည်ပြုခြင်း အောင်မြင်သည်။" #: ../gtk-dialog.c:1505 msgid "Your buddy has successfully authenticated you. You may want to authenticate your buddy as well by asking your own question." msgstr "သင့်မိတ်ဆွေသည် သင့်ကို အောင်မြင်စွာ အတည်ပြုလိုက်ပြီ။ သင့်ကိုယ်တိုင် မေးခွန်းဖြင့်လည်း သင့်မိတ်ဆွေကို စစ်ဆေး အတည်ပြုနိုင်သည်။" #: ../gtk-dialog.c:1511 msgid "Authentication failed." msgstr "အတည်ပြခြင်း မအောင်မြင်ပါ။" #: ../gtk-dialog.c:1541 #, c-format msgid "Private conversation with %s started.%s%s" msgstr "%s နှင့် သီးသန့် စကားပြောဆိုမှု စတင်သည်။%s%s" #: ../gtk-dialog.c:1545 #, c-format msgid "Unverified conversation with %%s started.%%s%%s" msgstr "%%s နှင့် အတည်မပြုရသေးသော စကားပြောဆိုမှု စတင်သည်။%%s%%s" #. This last case should never happen, since we know #. * we're in ENCRYPTED. #: ../gtk-dialog.c:1553 #, c-format msgid "Not private conversation with %s started.%s%s" msgstr "%s နှင့် သီးသန့်မဟုတ်သော စကားပြောဆိုမှု စတင်သည်။%s%s" #: ../gtk-dialog.c:1559 #: ../gtk-dialog.c:1686 msgid " Warning: using old protocol version 1." msgstr "သတိပေးချက် - ပရိုတိုကော ဗားရှင်း အဟောင်း ၁ ကို သုံးစွဲနေသည်။" #: ../gtk-dialog.c:1561 msgid " Your client is logging this conversation." msgstr "သင့်မိတ်ဆွေသည် ဤစကားပြောဆိုမှုထဲ ၀င်ရောက်လာ်သည်။" #: ../gtk-dialog.c:1562 msgid " Your client is not logging this conversation." msgstr "သင့်မိတ်ဆွေသည် ဤစကားပြောဆိုမှုထဲ ၀င်မ​လာပါ။" #: ../gtk-dialog.c:1581 #, c-format msgid "Your buddy is logged in multiple times and OTR has established multiple sessions. Use the icon menu above if you wish to select the outgoing session." msgstr "သင့်မိတ်ဆွေသည် အကြိမ်ကြမ် ၀င်ရောက်လာပြီး OTR စကား​ပြောမှု အများ ဖန်တီးနေသည်။ စကားပြောဆိုမှု အထွက်ကို ရွေးချယ်လိုပါက အထက်မှ အိုင်ကွန် ​မီနူးကို သုံးစွဲပါ။" #: ../gtk-dialog.c:1601 #, c-format msgid "Private conversation with %s lost." msgstr "%s နှင့် သီးသန့် စကားပြောဆိုမှု ပျက်သွားသည်။" #: ../gtk-dialog.c:1638 #, c-format msgid "%s has ended his/her private conversation with you; you should do the same." msgstr "%s သည် သင်နှင့် သီးသန့် စကားပြောဆိုမှုကို အဆုံးသတ်လိုက်သည်။ အလားတူ သင် ပြုလုပ်ပါ။" #: ../gtk-dialog.c:1665 #, c-format msgid "Successfully refreshed the private conversation with %s.%s" msgstr "%s နှင့် သီးသန့် စ​ကား​ပြောဆိုမှုကို အောင်မြင်စွာ ပြန်ခေါ်လိုက်ပြီ။%s" #: ../gtk-dialog.c:1670 #, c-format msgid "Successfully refreshed the unverified conversation with %%s.%%s" msgstr "အတည်မပြုသေးသော %%s နှင့် စကားပြောဆိုမှုကို အောင်မြင်စွာ ပြန်ခေါ်လိုက်ပြီ။%%s" #. This last case should never happen, since we know #. * we're in ENCRYPTED. #: ../gtk-dialog.c:1679 #, c-format msgid "Successfully refreshed the not private conversation with %s.%s" msgstr "%s နှင့် သီးခြား မဟုတ်သော စကားပြောဆိုမှုကို အောင်မြင်စွာ ပြန်ခေါ်လိုက်ပြီ။%s" #: ../gtk-dialog.c:1712 #, c-format msgid "Attempting to refresh the private conversation with %s..." msgstr "%s သီးသန့် စကားပြောဆိုမှုကို ပြန်ခေါ်ရန် ကြိုးစားနေသည်..." #: ../gtk-dialog.c:1714 #, c-format msgid "Attempting to start a private conversation with %s..." msgstr "%s နှင့် သီးသန့် စကားပြောဆိုမှု စတင်ရန် ကြိုးစားနေသည်..." #: ../gtk-dialog.c:1899 #: ../gtk-dialog.c:2026 msgid "Start _private conversation" msgstr "သီးသန့် စ​ကားပြောဆိုမှု စတင်ရန် (_p)" #: ../gtk-dialog.c:1900 msgid "Refresh _private conversation" msgstr "သီးသန့် ​စ​ကားပြောဆိုမှု ပြန်ခေါ်ရန် (_p)" #: ../gtk-dialog.c:1905 msgid "Re_authenticate buddy" msgstr "မိတ်ဆွေကို ပြန်လည် အတည်ပြုရန် (_a)" #: ../gtk-dialog.c:1906 #: ../gtk-dialog.c:2030 msgid "_Authenticate buddy" msgstr "မိတ်ဆွေကို အတည်ပြုရန် (_A)" #: ../gtk-dialog.c:1960 #: ../gtk-dialog.c:2736 msgid "Not Private" msgstr "သီးသန့်မဟုတ်" #: ../gtk-dialog.c:1982 msgid "_What's this?" msgstr "ဒါဘာလဲ? (_W)" #: ../gtk-dialog.c:2028 msgid "_End private conversation" msgstr "သီးသန့် စကားပြောဆိုမှု အဆုံးသတ်ရန် (_E)" #: ../gtk-dialog.c:2207 #: ../gtk-dialog.c:2255 #, c-format msgid "Warning: The selected outgoing OTR session (%u) is not the most recently active one (%u). Your buddy may not receive your messages. Use the icon menu above to select a different outgoing session." msgstr "သတိပေးချက် - ရွေးထားသော OTR လိုင်းအထွက် (%u) သည် လက်ရှိ သက်၀င်မှု အရှိဆုံး (%u) မဟုတ်ပါ။ သင့် မိတ်ဆွေသည် သင့် စာတိုပေးပို့ချက်များကို မရရှိပဲ နေနိုင်သည်။ အခြား လိုင်းအထွက်များကို ရွေးရန် အထက်မှ အိုင်ကွန် ​မီနူးကို ​သုံးစွဲပါ။" #: ../gtk-dialog.c:2271 msgid "Send to most secure" msgstr "လုံခြုံမှု အရှိဆုံးစနစ်ဖြင့် ပေးပို့ရန်" #: ../gtk-dialog.c:2273 msgid "Send to most recent" msgstr "လက်ငင်း ပေးပို့ပါ" #: ../gtk-dialog.c:2377 #, c-format msgid "Session %u" msgstr "%u လုပ်ဆောင်မှု" #: ../gtk-dialog.c:2395 #: ../gtk-dialog.c:2506 msgid "Select" msgstr "ရွေးချယ်ရန်" #: ../gtk-dialog.c:2410 msgid "Selected" msgstr "ရွေးထားချက်" #: ../gtk-dialog.c:2731 #, c-format msgid "The privacy status of the current conversation is now: %s" msgstr "လက်ရှိ စကားပြောဆိုချက်၏ သီးသန့်ရပ်တည်မှု အနေအထား - %s" #: ../gtk-dialog.c:2956 msgid "OTR Messaging" msgstr "OTR စာတိုပေးပို့ခြင်း" #: ../gtk-ui.c:103 #, c-format msgid "Fingerprint: %.80s" msgstr "လက်ဗွေ - %.80s" #: ../gtk-ui.c:107 #, c-format msgid "No key present" msgstr "ကီး မရှိပါ" #: ../gtk-ui.c:112 #, c-format msgid "No account available" msgstr "အကောင့် မရှိပါ" #: ../gtk-ui.c:179 msgid "Unused" msgstr "သုံးစွဲခြင်း မပြုပါ" #: ../gtk-ui.c:208 msgid "Yes" msgstr "ဟုတ်ကဲ့" #: ../gtk-ui.c:208 msgid "No" msgstr "မဟုတ်ပါ" #: ../gtk-ui.c:473 msgid "Enable private messaging" msgstr "သီးသန့် စာပိုပေးပို့ခြင်း စတင်ရန်" #: ../gtk-ui.c:475 msgid "Automatically initiate private messaging" msgstr "သီးသန့် စာတိုပေးပို့ခြင်းကို အလိုအလျောက် အစပြုရန်" #: ../gtk-ui.c:477 msgid "Require private messaging" msgstr "သီးသန့် စာတိုပေးပို့ရန် လိုအပ်သည်" #: ../gtk-ui.c:480 msgid "Don't log OTR conversations" msgstr "OTR စကားပြောဆိုချက်ကို မှတ်တမ်း မတင်ရန်" #: ../gtk-ui.c:524 msgid "Show OTR button in toolbar" msgstr "OTR ခလုတ်ကို တူးဘား၌ ဖေါ်ပြရန်" #: ../gtk-ui.c:663 msgid "My private keys" msgstr "ကျွန်တော့် private keys များ" #: ../gtk-ui.c:672 msgid "Key for account:" msgstr "အကောင့်၌ သုံးသော ကီး -" #: ../gtk-ui.c:697 msgid "Generate" msgstr "ထုတ်လုပ်ရန်" #: ../gtk-ui.c:738 msgid "Default OTR Settings" msgstr "ပုံမှန် OTR ချိန်ညှိချက်များ" #: ../gtk-ui.c:765 msgid "OTR UI Options" msgstr "OTR UI ရွေးစရာများ" #: ../gtk-ui.c:788 msgid "Screenname" msgstr "မျက်နှာပြင်အမည်" #: ../gtk-ui.c:789 msgid "Status" msgstr "အနေအထား" #: ../gtk-ui.c:790 msgid "Verified" msgstr "အတည်ပြုပြီ" #: ../gtk-ui.c:791 msgid "Fingerprint" msgstr "လက်ဗွေ" #: ../gtk-ui.c:792 msgid "Account" msgstr "အကောင့်" #: ../gtk-ui.c:828 msgid "Start private connection" msgstr "သီးသန့် ​စ​ကားပြောဆိုမှု စတင်ရန်" #: ../gtk-ui.c:836 msgid "End private connection" msgstr "သီးသန့် စကားပြောဆိုမှု အဆုံးသတ်ရန်" #: ../gtk-ui.c:852 msgid "Forget fingerprint" msgstr "လက်ဗွေ မေ့နေသည်" #: ../gtk-ui.c:903 msgid "Config" msgstr "ပြုပြင်ဖန်တီးရန်" #: ../gtk-ui.c:905 msgid "Known fingerprints" msgstr "သိ​ထားသော လက်ဗွေများ" #: ../gtk-ui.c:1003 #: ../otr-plugin.c:964 msgid "OTR Settings" msgstr "OTR ချိန်ညှိချက်များ" #. Set the title #: ../gtk-ui.c:1021 #, c-format msgid "OTR Settings for %s" msgstr "%s အတွက် OTR ချိန်ညှိချက်များ" #. Make the cascaded checkboxes #: ../gtk-ui.c:1038 msgid "Use default OTR settings for this buddy" msgstr "ဤမိ​တ်ဆွေအတွက် ပုံမှတ် OTR ချိန်ညှိချက်များ သုံးစွဲရန်" #: ../otr-plugin.c:125 #, c-format msgid "You are not currently connected to account %s (%s)." msgstr "သင်သည် လောလောဆယ် အကောင့် %s (%s) နှင့် ဆက်သွယ် မထားပါ။" #: ../otr-plugin.c:129 msgid "Not connected" msgstr "ဆက်သွယ်မထားပါ" #: ../otr-plugin.c:212 #: ../otr-plugin.c:254 #, c-format msgid "Out of memory building filenames!\n" msgstr "ဖိုင်အမည် ပြုလုပ်ရာတွင် မှတ်ဉာဏ် ကုန်သွားသည်။\n" #: ../otr-plugin.c:224 #: ../otr-plugin.c:260 #, c-format msgid "Could not write private key file\n" msgstr "သီးသန့် ကီးဖိုင်ကို ရေးသားခြင်း မပြုနိုင်ပါ\n" #: ../otr-plugin.c:298 #, c-format msgid "Unknown account %s (%s)." msgstr "အမည်မသိ အကောင့် %s (%s)။" #: ../otr-plugin.c:302 msgid "Unknown account" msgstr "အမည်မသိ အကောင့်" #: ../otr-plugin.c:364 msgid "Error occurred encrypting message." msgstr "စာတိုကို စာဝှက်နေစဉ် ချို့ယွင်းချက် ဖြစ်ပေါ်နေသည်။" #: ../otr-plugin.c:368 #, c-format msgid "You sent encrypted data to %s, who wasn't expecting it." msgstr "စာဝှက်ထားသော ဒေတာကို %s ထံ သင် ပေးပို့​ခဲ့သည်၊ ၄င်းကို သူ မျှော်လင့် မထားပါ။" #: ../otr-plugin.c:374 msgid "You transmitted an unreadable encrypted message." msgstr "သင်သည် ဖတ်ရှု၍ မရသော စာဝှက်ထား​သည့် စာကို ထုတ်လွှင့်နေသည်။" #: ../otr-plugin.c:377 msgid "You transmitted a malformed data message." msgstr "သင်သည် ပုံပျက်နေသော ဒေတာ စာ တစ်စောင်ကို ထုတ်လွှင့်နေသည်။" #: ../otr-plugin.c:390 msgid "[resent]" msgstr "[ပြန်လည်ပေးပို့ချက်]" #: ../otr-plugin.c:459 #, c-format msgid "You attempted to send an unencrypted message to %s" msgstr "သင်သည် စာဝှက်မထားသော စာကို %s ထံ ပေးပို့ရန် ကြိုးစားနေသည်" #: ../otr-plugin.c:462 msgid "Attempting to start a private conversation..." msgstr "သီးသန့် စကားပြောဆိုမှု တစ်ခုကို စတင်ရန် ကြိုးစားနေသည်..." #: ../otr-plugin.c:464 msgid "OTR Policy Violation" msgstr "OTR မူဝါဒ ချိုးဖေါက်မှု" #: ../otr-plugin.c:465 msgid "" "Unencrypted messages to this recipient are not allowed. Attempting to start a private conversation.\n" "\n" "Your message will be retransmitted when the private conversation starts." msgstr "" "ဤလက်ခံသူထံ ပေးပို့သော စာဝှက်မထားသော စာတိုများကို ခွင့်မပြုပါ။ သီးသန့် စ​ကားပြောဆိုမှု စတင်ရန် ကြိုးစားနေသည်။\n" "\n" "သီးသန့် စကားပြောဆိုမှု စတင်သည့်အခါ သင့်စာတိုကို ပြန်လည် ထုတ်လွှင့်ပေးမည်။" #: ../otr-plugin.c:474 msgid "An error occurred when encrypting your message. The message was not sent." msgstr "သင့်စာတိုကို စာဝှက်နေစဉ် ချို့ယွင်းချက် တစ်ခု ဖြစ်ပေါ်နေသည်။ ၄င်းစာတိုကို ပေးပို့ခြင်း မပြုပါ။" #: ../otr-plugin.c:476 msgid "Error encrypting message" msgstr "​စာတို စာဝှက်ခြင်း ချို့ယွင်းချက်" #: ../otr-plugin.c:477 msgid "An error occurred when encrypting your message" msgstr "သင့်စာတိုကို စာဝှက်နေစဉ် ချို့ယွင်းချက် ဖြစ်ပေါ်နေသည်" #: ../otr-plugin.c:478 msgid "The message was not sent." msgstr "ဤစာတိုကို ပေးပို့ခြင်း မပြုပါ။" #: ../otr-plugin.c:481 #, c-format msgid "%s has already closed his/her private connection to you" msgstr "%s သည် သင်နှင့် သီးသန့် စကားပြောဆိုမှုကို ပိတ်လိုက်ပြီ" #: ../otr-plugin.c:484 msgid "Your message was not sent. Either end your private conversation, or restart it." msgstr "သင့်စာတိုကို ပေးပို့ခြင်း မပြပါ။ သင့် သီးသန့် စကားပြောဆိုမှုကို အဆုံးသတ်ပါ၊ သို့မဟုတ် ၄င်းကို ပြန်ဖွင့်ပါ။" #: ../otr-plugin.c:487 msgid "Private connection closed" msgstr "သီးသန့် စကားပြောဆိုမှု ပိတ်သွားသည်" #: ../otr-plugin.c:488 msgid "Your message was not sent. Either close your private connection to him, or refresh it." msgstr "သင့် စာတိုကို ပေးပို့ခြင်း မပြုပါ။ သူနှင့် သီးသန့် စကားပြောဆိုမှုကို ပိတ်ပါ၊ သို့မဟုတ် ၄င်းကို ပြန်ခေါ်ပါ။" #: ../otr-plugin.c:498 msgid "Error setting up private conversation: Malformed message received" msgstr "သီးသန့် စကားပြောဆိုမှု တပ်ဆင်ခြင်း ချို့ယွင်းချက် - ပုံပျက်နေသော စာတို ရရှိသည်" #: ../otr-plugin.c:502 #, c-format msgid "Error setting up private conversation: %s" msgstr "သီးသန့် စကားပြောဆိုမှု တပ်ဆင်ခြင်း ချို့ယွင်းချက် - %s" #: ../otr-plugin.c:509 #: ../otr-plugin.c:520 #: ../otr-plugin.c:547 #: ../otr-plugin.c:555 #: ../otr-plugin.c:573 msgid "OTR Error" msgstr "OTR ချို့ယွင်းချက်" #: ../otr-plugin.c:516 msgid "We are receiving our own OTR messages. You are either trying to talk to yourself, or someone is reflecting your messages back at you." msgstr "ကျွန်တော်တို့သည် ကျွန်ုပ်တို့ ကိုယ်တိုင် ရေးသားသော OTR စာတိုများကို လက်ခံရရှိနေကြသည်။ သင့်ကိုသင် စကားပြောရန် ကြိုးစားနေခြင်း ဖြစ်နိုင်သည်၊ (သို့) တစ်စုံတစ်ယောက်သည် သင့် ​စာတိုများကို သင့်ထံ ပြန်ပို့ခြင်း ဖြစ်နိုင်သည်။" #: ../otr-plugin.c:520 msgid "We are receiving our own OTR messages." msgstr "ကျွန်တော်တို့သည် ကျွန်ုပ်တို့ ကိုယ်တိုင် ရေးသားသော OTR စာတိုများကို လက်ခံရရှိနေကြသည်။ " #: ../otr-plugin.c:521 msgid "You are either trying to talk to yourself, or someone is reflecting your messages back at you." msgstr "သင့်ကို သင် စကားပြောရန် ကြိုးစားနေခြင်း ဖြစ်နိုင်သည်၊ (သို့) တစ်စုံတစ်ယောက်သည် သင့် ​စာတိုများကို သင့်ထံ ပြန်ပို့ခြင်း ဖြစ်နိုင်သည်။" #: ../otr-plugin.c:526 #, c-format msgid "The last message to %s was resent." msgstr "%s ထံ ပေးပို့သော နောက်ဆုံး စာတိုကို ပြန်ပို့လိုက်ပြီ။" #: ../otr-plugin.c:530 msgid "Message resent" msgstr "ပေးစာ ပြန်ပို့လိုက်ပြီ" #: ../otr-plugin.c:534 #, c-format msgid "The encrypted message received from %s is unreadable, as you are not currently communicating privately." msgstr "သင်သည် လောလောဆယ် သီးသန့် ဆက်သွယ်ခြင်း မပြုသည့်အတွက်၊ %s ထံမှ ရရှိသော စာဝှက်ထား​သည့် ပေးစာကို ဖတ်ရှု၍ မရနိုင်ပါ။" #: ../otr-plugin.c:539 msgid "Unreadable message" msgstr "ဖတ်ရှု၍ မရသော ပေးစာ" #: ../otr-plugin.c:543 #, c-format msgid "We received an unreadable encrypted message from %s." msgstr "%s ထံမှ စာဝှက်ထားပြီး ဖတ်ရှု၍ မရသည့် စာတို တစ်စောင်ကို ကျွန်တော်တို့ လက်ခံရရှိသည်။" #: ../otr-plugin.c:551 #, c-format msgid "We received a malformed data message from %s." msgstr "ကျွန်တော်တို့သည် %s ထံမှ ပုံပျက်နေသော ဒေတာ ​စာတို တစ်စောင်ကို လက်ခံရရှိကြသည်။" #: ../otr-plugin.c:559 #, c-format msgid "Heartbeat received from %s.\n" msgstr "%s ထံမှ Heartbeat လက်ခံရရှိသည်။\n" #: ../otr-plugin.c:565 #, c-format msgid "Heartbeat sent to %s.\n" msgstr "%s ထံ Heartbeat ပေးပို့လိုက်သည်။\n" #: ../otr-plugin.c:576 #, c-format msgid "The following message received from %s was not encrypted: [%s]" msgstr "%s ထံမှ အောက်ပါ စာတိုကို စာဝှက်မထားပါ -[%s]" #: ../otr-plugin.c:581 msgid "Received unencrypted message" msgstr "စာဝှက်မထားသော စာတို လက်ခံရရှိသည်" #: ../otr-plugin.c:587 #, c-format msgid "Unrecognized OTR message received from %s.\n" msgstr "%s ထံမှ အမည်မသိ OTR စာတို လက်ခံရရှိသည်။\n" #: ../otr-plugin.c:596 #, c-format msgid "%s has sent a message intended for a different session. If you are logged in multiple times, another session may have received the message." msgstr "%s သည် အခြား လုပ်ငန်းအတွက် ရည်ရွယ်သော စာတို တစ်စောင် ပေးပို့ခဲ့သသည်။ အကယ်၍ သင်သည် အကြိမ်ကြမ် ၀င်ရောက်ခဲ့ပါက၊ ၄င်းစာတိုကို အခြား လုပ်ငန်းမှ ရရှိနိုင်သည်။" #: ../otr-plugin.c:602 msgid "Received message for a different session" msgstr "အခြား နေရာမှ စာတို တစ်စောင် လက်ခံရရှိသည်" #. 2013-01-01 #: ../otr-plugin.c:1193 #: ../otr-plugin.c:1220 #, c-format msgid "OTR PLUGIN v%s" msgstr "OTR ပလပ်အင် v%s" #: ../otr-plugin.c:1202 #, c-format msgid "This beta copy of the Off-the-Record Messaging v%s Pidgin plugin has expired as of 2013-01-01. Please look for an updated release at http://otr.cypherpunks.ca/" msgstr "ဤ Off-the-Record စာတိုပေးပို့ခြင်း ဘီတာ ဗားရှင်း v%s ပလပ်အင်သည် 2012-01-01 ကတည်းက သက်တမ်းကုန်ဆုံးခဲ့ပြီ။ မွမ်းမံထားသော ထုတ်ပြန်ချက် တစ်ခုကို http://otr.cypherpunks.ca/ ၌ ရယူပါ။" #: ../otr-plugin.c:1229 #, c-format msgid "You have enabled a beta version of the Off-the-Record Messaging v%s Pidgin plugin. This version is intended for testing purposes only and is not for general purpose use." msgstr "သင်သည် Off-the-Record စာတိုပေးပိုခြင်း ဗားရှင်း v%s Pidgin ပလပ်အပ် ဘီတာ ဗားရှင်း တစ်ခုကို သုံးစွဲနေသည်။ ဤဗားရှင်းသည် စမ်းသပ်ရန်သာ ရည်ရွယ်ထားပြီး အထွေထွေ သုံးစွဲရန် ရည်ရွယ်မထားပါ။" #: ../otr-plugin.c:1414 msgid "Off-the-Record Messaging" msgstr "Off-the-Record စာတိုပေးပိုခြင်း" #: ../otr-plugin.c:1415 msgid "Provides private and secure conversations" msgstr "သီးသန့်ဖြစ်ပြီး လုံခြုံသော စကားပြောဆိုမှုများ လုပ်ဆောင်ရန်" #: ../otr-plugin.c:1416 msgid "Preserves the privacy of IM communications by providing encryption, authentication, deniability, and perfect forward secrecy." msgstr "စာဝှက်စနစ်၊ စစ်ဆေး အတည်ပြုခြင်း၊ ငြင်းပယ်နိုင်မှုစနစ်နှင့် ပြည့်စုံသော တစ်ဆင့် ပေးပို့မှု လျှို့ဝှက်ချက်ကို ပံ့ပိုးခြင်းဖြင့် IM ဆက်သွယ်မှု လမ်းကြောင်းများကို ထိန်းသိမ်းပါ။" #: ../ui.c:110 #, c-format msgid "Account %s (%s) could not be found" msgstr "အကောင့် %s (%s) ကို ရှာ​မ​တွေ့ပါ" #: ../ui.c:114 msgid "Account not found" msgstr "​အကောင့်ကို ရှာမတွေ့ပါ" pidgin-otr-4.0.0/po/ru.po0000644000175000017500000004065112020421670012114 00000000000000msgid "" msgstr "" "Project-Id-Version: OTR for Pidgin\n" "POT-Creation-Date: \n" "PO-Revision-Date: 2008-04-11 20:07+0300\n" "Last-Translator: Sergei Smirnov \n" "Language-Team: Human Rights Network \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Language: Russian\n" "X-Poedit-Country: RUSSIAN FEDERATION\n" #: ../gtk-dialog.c:913 #: ../gtk-dialog.c:2095 msgid "_What's this?" msgstr "_Что это?" #: ../gtk-dialog.c:924 msgid "_More..." msgstr "_Больше..." #. Create the Advanced... button, and left-justify it. This #. * involves adding the button, and a blank label as a spacer, and #. * reordering them so that they're at the beginning. #: ../gtk-dialog.c:980 msgid "Advanced..." msgstr "Дополнительно..." #: ../gtk-dialog.c:1025 msgid "Enter secret here" msgstr "Введите секретное слово (код)" #: ../gtk-dialog.c:1030 msgid "This buddy is already authenticated." msgstr "Этот контакт уже идентифицирован." #: ../gtk-dialog.c:1049 msgid "To authenticate, pick a secret known only to you and your buddy. Enter this secret, then wait for your buddy to enter it too. If the secrets don't match, then you may be talking to an imposter." msgstr "Чтобы идентифицировать собеседника, используйте секретный ключ, известный только вам и вашему собеседнику. Введите ключ и дождитесь, когда его введет собеседник. Если ключи не совпадают, возможно, на линии обманщик." #: ../gtk-dialog.c:1053 msgid "If your buddy uses multiple IM accounts or multiple computers, you may have to authenticate multiple times. However, as long as they use an account and computer that you've seen before, you don't need to authenticate each individual conversation." msgstr "Если ваш собеседник использует несколько аккаунтов или один аккаунт на нескольких компьютерах, следует идентифицировать его несколько раз. Если он использует один аккаунт на одном компьютере, вам не нужно идентифицировать его для каждого разговора." #: ../gtk-dialog.c:1058 #: ../gtk-dialog.c:1322 #: ../gtk-dialog.c:1326 #: ../gtk-dialog.c:1423 #: ../gtk-dialog.c:1590 #: ../gtk-dialog.c:1750 #: ../gtk-dialog.c:1850 #: ../gtk-dialog.c:1935 msgid "?lang=en" msgstr "?lang=ru" #: ../gtk-dialog.c:1059 msgid "Click here for more information about authentication in OTR." msgstr "Дополнительно об аутентификации OTR." #: ../gtk-dialog.c:1063 msgid "Authenticating a buddy helps ensure that the person you are talking to is who they claim to be." msgstr "Аутентификация собеседника помогает быть уверенным в том, что ваш собеседник именно тот, за кого выдает себя." #: ../gtk-dialog.c:1113 msgid "Authenticating Buddy" msgstr "Аутентификация собеседника" #: ../gtk-dialog.c:1140 msgid "Authenticating" msgstr "Аутентификация" #: ../gtk-dialog.c:1201 msgid "Generating private key" msgstr "Создание закрытого ключа" #: ../gtk-dialog.c:1202 msgid "Please wait" msgstr "Подождите, пожалуйста" #: ../gtk-dialog.c:1210 #: ../gtk-dialog.c:1627 #: ../gtk-dialog.c:1664 #: ../gtk-ui.c:175 #: ../otr-plugin.c:115 #: ../otr-plugin.c:212 #: ../ui.c:110 msgid "Unknown" msgstr "Неизвестно" #. Create the Please Wait... dialog #: ../gtk-dialog.c:1213 #, c-format msgid "Generating private key for %s (%s)..." msgstr "Создание закрытого ключа для %s (%s)..." #: ../gtk-dialog.c:1258 #, c-format msgid "%s Done." msgstr "%s готово." #: ../gtk-dialog.c:1320 #, c-format msgid "%s is contacting you from an unrecognized computer. You should authenticate this buddy." msgstr "%s общается с вами с неопознанного компьютера. Следует аутентифицировать этот контакт." #: ../gtk-dialog.c:1324 #, c-format msgid "%s has not been authenticated yet. You should authenticate this buddy." msgstr "%s еще не аутентифицирован. Вам следует подтвердить личность этого контакта." #: ../gtk-dialog.c:1365 #: ../gtk-ui.c:76 msgid "Finished" msgstr "Завершено" #: ../gtk-dialog.c:1366 #: ../gtk-ui.c:75 msgid "Private" msgstr "Защищено" #: ../gtk-dialog.c:1367 #: ../gtk-ui.c:74 msgid "Unverified" msgstr "Не идентиф." #: ../gtk-dialog.c:1368 #: ../gtk-ui.c:73 msgid "Not private" msgstr "Не защищено" #: ../gtk-dialog.c:1370 msgid "Start a private conversation" msgstr "Начать защищенный разговор" #: ../gtk-dialog.c:1371 msgid "Refresh the private conversation" msgstr "Обновить защищенный разговор" #: ../gtk-dialog.c:1375 msgid "Start _private conversation" msgstr "Начать _защищенный разговор" #: ../gtk-dialog.c:1376 msgid "Refresh _private conversation" msgstr "Обновить _защищенный разговор" #: ../gtk-dialog.c:1555 msgid "I have not" msgstr "Я не проверил(а)" #: ../gtk-dialog.c:1556 msgid "I have" msgstr "Я проверил(а)" #: ../gtk-dialog.c:1558 msgid " verified that this is in fact the correct" msgstr " правильность отображаемых данных" #: ../gtk-dialog.c:1567 #, c-format msgid "fingerprint for %s." msgstr "отпечаток для %s." #: ../gtk-dialog.c:1579 msgid "To verify the fingerprint, contact your buddy via some other authenticated channel, such as the telephone or GPG-signed email. Each of you should tell your fingerprint to the other." msgstr "Для проверки отпечатка свяжитесь с его владельцем так, чтобы его личность не оставляла сомнений (например, по телефону или с помощью письма, зашифрованного GPG). Каждому из вас следует сообщить другому свой отпечаток." #: ../gtk-dialog.c:1583 msgid "If everything matches up, you should indicate in the above dialog that you have verified the fingerprint." msgstr "Если все совпадает, следует отметить в диалоге сверху, что вы проверили отпечаток." #: ../gtk-dialog.c:1585 msgid "If your buddy has more than one IM account, or uses more than one computer, he may have multiple fingerprints." msgstr "Если ваш собеседник использует более одного аккаунта или более одного компьютера, у него (неё) может быть несколько отпечатков." #: ../gtk-dialog.c:1587 msgid "However, the only way an imposter could duplicate one of your buddy's fingerprints is by stealing information from her/his computer." msgstr "Есть только один путь, которым злоумышленник может получить дубликат отпечатков вашего собеседника: украсть информацию с его (её) компьютера." #: ../gtk-dialog.c:1591 msgid "Click here for more information about fingerprints." msgstr "Дополнительная информация об отпечатках." #: ../gtk-dialog.c:1594 msgid "A fingerprint is a unique identifier that you should use to authenticate your buddy." msgstr "Отпечаток - уникальный код, который нужен, чтобы аутентифицировать собеседника." #: ../gtk-dialog.c:1616 #, c-format msgid "Verify fingerprint for %s" msgstr "Проверить отпечаток для %s" #: ../gtk-dialog.c:1620 msgid "[none]" msgstr "[нет]" #: ../gtk-dialog.c:1628 #, c-format msgid "" "Fingerprint for you, %s (%s):\n" "%s\n" "\n" "Purported fingerprint for %s:\n" "%s\n" msgstr "" "Отпечаток для вас, %s (%s):\n" "%s\n" "\n" "Предполагаемый отпечаток для %s:\n" "%s\n" #: ../gtk-dialog.c:1633 #: ../gtk-ui.c:681 msgid "Verify fingerprint" msgstr "Проверить отпечаток" #: ../gtk-dialog.c:1660 #, c-format msgid "Authenticate %s" msgstr "Аутентифицировать %s" #: ../gtk-dialog.c:1665 #, c-format msgid "Enter a secret known only to %s and yourself.\n" msgstr "Введите секретный код, который знаете только вы и %s.\n" #: ../gtk-dialog.c:1668 msgid "Authenticate buddy" msgstr "Идентифицировать контакт" #: ../gtk-dialog.c:1700 msgid "An error occurred during authentication." msgstr "Ошибка идентификации." #: ../gtk-dialog.c:1716 msgid "Authentication successful." msgstr "Идентификация прошла успешно." #: ../gtk-dialog.c:1719 msgid "Authentication failed." msgstr "Ошибка идентификации." #: ../gtk-dialog.c:1744 #, c-format msgid "Private conversation with %s started.%s" msgstr "Начать защищенный разговор с %s.%s" #: ../gtk-dialog.c:1748 #, c-format msgid "Unverified conversation with %%s started.%%s" msgstr "Начат непроверенный разговор с %%s.%%s" #. This last case should never happen, since we know #. * we're in ENCRYPTED. #: ../gtk-dialog.c:1756 #, c-format msgid "Not private conversation with %s started.%s" msgstr "Начат незащищенный разговор с %s.%s" #: ../gtk-dialog.c:1762 #: ../gtk-dialog.c:1863 msgid " Warning: using old protocol version 1." msgstr " Внимание: используется устаревший протокол версии 1." #: ../gtk-dialog.c:1782 #, c-format msgid "Private conversation with %s lost." msgstr "Защищенный разговор с %s окончен." #: ../gtk-dialog.c:1817 #, c-format msgid "%s has ended his/her private conversation with you; you should do the same." msgstr "%s завершил(а) защищенный разговор; сделайте то же и вы." #: ../gtk-dialog.c:1842 #, c-format msgid "Successfully refreshed the private conversation with %s.%s" msgstr "Защищенный разговор с %s успешно обновлен.%s" #: ../gtk-dialog.c:1847 #, c-format msgid "Successfully refreshed the unverified conversation with %%s.%%s" msgstr "Непроверенный разговор с %%s успешно обновлен.%%s" #. This last case should never happen, since we know #. * we're in ENCRYPTED. #: ../gtk-dialog.c:1856 #, c-format msgid "Successfully refreshed the not private conversation with %s.%s" msgstr "Незащищенный разговор с %s успешно обновлен.%s" #: ../gtk-dialog.c:1883 #, c-format msgid "Attempting to refresh the private conversation with %s..." msgstr "Попытка обновить защищенный разговор с %s..." #: ../gtk-dialog.c:1885 #, c-format msgid "Attempting to start a private conversation with %s..." msgstr "Попытка начать защищенный разговор с %s..." #: ../gtk-dialog.c:2045 msgid "OTR:" msgstr "OTR:" #: ../gtk-dialog.c:2054 msgid "OTR Messaging" msgstr "Сообщения OTR" #: ../gtk-dialog.c:2060 msgid "_End private conversation" msgstr "_Завершить защищенный разговор" #. #. * Don't show the Verify fingerprint menu option any more. You can #. * still get to the dialog through Authenticate connection -> #. * Advanced... #. * #. menuverf = gtk_menu_item_new_with_mnemonic(_("_Verify fingerprint")); #. gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuverf); #. gtk_widget_show(menuverf); #. #: ../gtk-dialog.c:2078 msgid "_Authenticate buddy" msgstr "_Аутентифицированный контакт" #: ../gtk-ui.c:96 #, c-format msgid "Fingerprint: %.80s" msgstr "Отпечаток: %.80s" #: ../gtk-ui.c:100 #, c-format msgid "No key present" msgstr "Ключ отсутствует" #: ../gtk-ui.c:105 #, c-format msgid "No account available" msgstr "Аккаунт недоступен" #: ../gtk-ui.c:165 msgid "Unused" msgstr "Не используется" #: ../gtk-ui.c:171 msgid "Yes" msgstr "Да" #: ../gtk-ui.c:171 msgid "No" msgstr "Нет" #: ../gtk-ui.c:396 msgid "Enable private messaging" msgstr "Использовать защищенные разговоры" #: ../gtk-ui.c:398 msgid "Automatically initiate private messaging" msgstr "Автоматически начинать защищенный разговор" #: ../gtk-ui.c:400 msgid "Require private messaging" msgstr "Требовать защиту разговора" #: ../gtk-ui.c:403 msgid "Don't log OTR conversations" msgstr "Не записывать разговоры через OTR в журнал" #: ../gtk-ui.c:531 msgid "My private keys" msgstr "Мои закрытые ключи" #: ../gtk-ui.c:540 msgid "Key for account:" msgstr "Ключ для аккаунта:" #: ../gtk-ui.c:565 msgid "Generate" msgstr "Создать" #: ../gtk-ui.c:596 msgid "Default OTR Settings" msgstr "Установки OTR по умолчанию" #: ../gtk-ui.c:625 msgid "Screenname" msgstr "Экранное имя" #: ../gtk-ui.c:626 msgid "Status" msgstr "Статус" #: ../gtk-ui.c:627 msgid "Verified" msgstr "Проверено" #: ../gtk-ui.c:628 msgid "Fingerprint" msgstr "Отпечаток" #: ../gtk-ui.c:629 msgid "Account" msgstr "Аккаунт" #: ../gtk-ui.c:665 msgid "Start private connection" msgstr "Начать защищенный разговор" #: ../gtk-ui.c:673 msgid "End private connection" msgstr "Завершить защищенный разговор" #: ../gtk-ui.c:689 msgid "Forget fingerprint" msgstr "Забыть отпечаток" #: ../gtk-ui.c:738 msgid "Config" msgstr "Конфигурация" #: ../gtk-ui.c:740 msgid "Known fingerprints" msgstr "Известные отпечатки" #: ../gtk-ui.c:838 #: ../otr-plugin.c:577 msgid "OTR Settings" msgstr "Настройки OTR" #. Set the title #: ../gtk-ui.c:856 #, c-format msgid "OTR Settings for %s" msgstr "Настройки OTR для %s" #. Make the cascaded checkboxes #: ../gtk-ui.c:873 msgid "Use default OTR settings for this buddy" msgstr "Использовать настройки по умолчанию" #: ../otr-plugin.c:113 #, c-format msgid "You are not currently connected to account %s (%s)." msgstr "Нет связи с аккаунтом %s (%s)." #: ../otr-plugin.c:117 msgid "Not connected" msgstr "Нет соединения" #: ../otr-plugin.c:161 #, c-format msgid "Out of memory building filenames!\n" msgstr "Построение списка файлов заняло слишком много памяти!\n" #: ../otr-plugin.c:167 #, c-format msgid "Could not write private key file\n" msgstr "Ошибка записи закрытого ключа в файл\n" #: ../otr-plugin.c:210 #, c-format msgid "Unknown account %s (%s)." msgstr "Неизвестный аккаунт %s (%s)." #: ../otr-plugin.c:214 msgid "Unknown account" msgstr "Неизвестный аккаунт" #: ../otr-plugin.c:953 msgid "Off-the-Record Messaging" msgstr "Off-the-Record (OTR)" #: ../otr-plugin.c:954 msgid "Provides private and secure conversations" msgstr "Защищенные приватные коммуникации" #: ../otr-plugin.c:962 msgid "" "Preserves the privacy of IM communications by providing encryption, " "authentication, deniability, and perfect forward secrecy." msgstr "" "Обеспечивает конфиденциальность сообщений путем шифрования, " "аутентификации собеседника, правдоподобного опровержения и системы perfect forward secrecy (PFS)." #: ../ui.c:108 #, c-format msgid "Account %s (%s) could not be found" msgstr "Аккаунт %s (%s) не обнаружен" #: ../ui.c:112 msgid "Account not found" msgstr "Аккаунт не обнаружен" pidgin-otr-4.0.0/po/POTFILES.in0000644000175000017500000000024211754224345012710 00000000000000# List of files that (could) contain strings for translation dialogs.c dialogs.h gtk-dialog.c gtk-dialog.h gtk-ui.c gtk-ui.h otr-plugin.c otr-plugin.h ui.c ui.h pidgin-otr-4.0.0/po/vi.po0000644000175000017500000004263111767120042012112 00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: pidgin-otr 3.2.0.vi\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-12-11 22:16+0100\n" "PO-Revision-Date: 2010-03-02 22:30+0930\n" "Last-Translator: Lyndon Johnson \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../gtk-dialog.c:291 #: ../gtk-dialog.c:1085 #: ../gtk-dialog.c:1089 #: ../gtk-dialog.c:1518 #: ../gtk-dialog.c:1621 #: ../gtk-dialog.c:1686 #: ../gtk-dialog.c:2130 msgid "?lang=en" msgstr "?lang=vi" #: ../gtk-dialog.c:439 msgid "Your buddy is attempting to determine if he or she is really talking to you, or if it's someone pretending to be you. Your buddy has asked a question, indicated below. To authenticate to your buddy, enter the answer and click OK." msgstr "Bạn chát của bạn đang thử xác định nếu họ đang nói chuyện với bạn, hoặc nếu ai đó đang giả là bạn. Bạn chát của bạn có một câu hỏi được cho thấy bên dưới. Để chứng minh với bạn chát của bạn, hảy bỏ vào câu trả lời và nhấn OK." #: ../gtk-dialog.c:446 msgid "To authenticate using a question, pick a question whose answer is known only to you and your buddy. Enter this question and this answer, then wait for your buddy to enter the answer too. If the answers don't match, then you may be talking to an imposter." msgstr "Để chứng thật bằng cách dùng một câu hỏi, hãy chọn một câu hỏi mà chỉ bạn và bạn chát của bạn biết câu trả lời. Hãy nhập vào câu hỏi và câu trả lời này, rồi chờ cho bạn chát nhập câu trả lời luôn. Nếu câu trả lời không trùng hợp, thì bạn có thể đang nói chuyện với một người mạo nhận." #: ../gtk-dialog.c:464 msgid "This is the question asked by your buddy:" msgstr "Đây là câu hỏi để hỏi bạn chát của bạn:" #: ../gtk-dialog.c:467 msgid "Enter question here:" msgstr "Nhập câu hỏi vào đây:" #: ../gtk-dialog.c:498 #: ../gtk-dialog.c:582 msgid "This buddy is already authenticated." msgstr "Bạn chát này đả được chứng thật rồi." #: ../gtk-dialog.c:510 msgid "Enter secret answer here (case sensitive):" msgstr "Nhập vào câu trả lời bí mật ở đây (so sánh chữ hoa/thường):" #: ../gtk-dialog.c:551 msgid "To authenticate, pick a secret known only to you and your buddy. Enter this secret, then wait for your buddy to enter it too. If the secrets don't match, then you may be talking to an imposter." msgstr "Để chứng thật, hãy chọn một bí mật mà chỉ bạn và bạn chát của bạn biết mà thôi. Nhập bí mật vào, rồi chờ cho bạn chát trả lời. Nếu những điều bí mật không trùng hợp, thì bạn đang có thể nói chuyện với một người giả mạo." #: ../gtk-dialog.c:565 msgid "Enter secret here:" msgstr "Nhập bí mật ở đây:" #: ../gtk-dialog.c:616 #: ../gtk-dialog.c:1379 msgid "To verify the fingerprint, contact your buddy via some other authenticated channel, such as the telephone or GPG-signed email. Each of you should tell your fingerprint to the other." msgstr "Để kiểm chứng dấu tay, hãy liên lạc bạn chát của bạn qua vài other đường dây đã được chứng thật, như là điện thoại hoặc thư điện bảo mật (GPG-signed email). Mỗi người nên nói dấu tay của mình cho người kia. " #: ../gtk-dialog.c:620 #: ../gtk-dialog.c:1383 msgid "If everything matches up, you should indicate in the above dialog that you have verified the fingerprint." msgstr "Nếu mọi thứ đều phù hợp, bạn nên ra dấu trong cuộc đối thoại bên trên rằng bạn have đã kiểm chứng dấu tay." #: ../gtk-dialog.c:631 #: ../gtk-dialog.c:1368 msgid "[none]" msgstr "[none]" #: ../gtk-dialog.c:638 #: ../gtk-dialog.c:996 #: ../gtk-dialog.c:1375 #: ../gtk-dialog.c:1426 #: ../gtk-ui.c:181 #: ../otr-plugin.c:116 #: ../otr-plugin.c:213 #: ../ui.c:111 msgid "Unknown" msgstr "Không rõ" #: ../gtk-dialog.c:639 #, c-format msgid "" "Fingerprint for you, %s (%s):\n" "%s\n" "\n" "Purported fingerprint for %s:\n" "%s\n" msgstr "" "Dấu tay cho bạn, %s (%s):\n" "%s\n" "\n" "Dấu tay có ý xấu cho %s:\n" "%s\n" #: ../gtk-dialog.c:691 msgid "How would you like to authenticate your buddy?" msgstr "Bạn mong muốn chứng thật bạn chát của bạn như thế nào? " #: ../gtk-dialog.c:700 msgid "Question and answer" msgstr "Câu hỏi và trả lời" #: ../gtk-dialog.c:703 msgid "Shared secret" msgstr "Bí mật chung" #: ../gtk-dialog.c:706 msgid "Manual fingerprint verification" msgstr "Chứng thật dấu tay tự làm" #: ../gtk-dialog.c:749 msgid "_Authenticate" msgstr "_Chứng thật" #: ../gtk-dialog.c:782 msgid "Authenticating a buddy helps ensure that the person you are talking to is who he or she claims to be." msgstr "Sự chứng thật một bạn chát giúp bảo đảm rằng người bạn đang nói chuyện đúng là người tự xưng họ là ai." #. Translators: you are asked to authenticate yourself #: ../gtk-dialog.c:891 msgid "Authenticating to Buddy" msgstr "Chứng thật tới bạn chát" #. Translators: you asked your buddy to authenticate him/herself #: ../gtk-dialog.c:893 msgid "Authenticating Buddy" msgstr "Chứng thật bạn chát" #: ../gtk-dialog.c:920 #, c-format msgid "Authenticating to %s" msgstr "Chứng thật tới %s" #: ../gtk-dialog.c:921 #, c-format msgid "Authenticating %s" msgstr "Chứng thật %s" #: ../gtk-dialog.c:954 msgid "Waiting for buddy..." msgstr "Đang chờ bạn chát ..." #: ../gtk-dialog.c:987 msgid "Generating private key" msgstr "Đang tạo ra chìa khoá riêng" #: ../gtk-dialog.c:988 msgid "Please wait" msgstr "Vui lòng chờ" #. Create the Please Wait... dialog #: ../gtk-dialog.c:999 #, c-format msgid "Generating private key for %s (%s)..." msgstr "Đang tạo ra chìa khóa riêng cho %s (%s)..." #: ../gtk-dialog.c:1044 #, c-format msgid "%s Done." msgstr "%s Đã làm xong." #: ../gtk-dialog.c:1083 #, c-format msgid "%s is contacting you from an unrecognized computer. You should authenticate this buddy." msgstr "%s đang liên lạc bạn từ một máy điện toán không được thừa nhận. Bạn nên chứng thật bạn chát này." #: ../gtk-dialog.c:1087 #, c-format msgid "%s has not been authenticated yet. You should authenticate this buddy." msgstr "%s chưa được chứng thật. Bạn nên chứng thật bạn chát này." #: ../gtk-dialog.c:1150 #: ../gtk-dialog.c:1181 #: ../gtk-dialog.c:1853 #: ../gtk-dialog.c:2126 #: ../gtk-ui.c:82 msgid "Finished" msgstr "Đã xong" #: ../gtk-dialog.c:1151 #: ../gtk-dialog.c:1182 #: ../gtk-dialog.c:1850 #: ../gtk-dialog.c:2123 #: ../gtk-ui.c:81 msgid "Private" msgstr "Riêng tư" #: ../gtk-dialog.c:1152 #: ../gtk-dialog.c:1183 #: ../gtk-dialog.c:1847 #: ../gtk-dialog.c:2120 #: ../gtk-ui.c:80 msgid "Unverified" msgstr "Chưa được kiểm chứng" #: ../gtk-dialog.c:1153 #: ../gtk-dialog.c:1184 #: ../gtk-ui.c:79 msgid "Not private" msgstr "Không riêng tư" #: ../gtk-dialog.c:1156 msgid "Start a private conversation" msgstr "Bắt đầu một cuộc đàm thoại riêng tư" #: ../gtk-dialog.c:1157 msgid "Refresh the private conversation" msgstr "Cập nhật một cuộc đàm thoại riêng tư" #: ../gtk-dialog.c:1162 #: ../gtk-dialog.c:1802 #: ../gtk-dialog.c:1897 msgid "Start _private conversation" msgstr "Bắt đầu cuộc đàm thoại _riêng tư" #: ../gtk-dialog.c:1163 #: ../gtk-dialog.c:1803 msgid "Refresh _private conversation" msgstr "Cập nhật cuộc đàm thoại _riêng tư" #: ../gtk-dialog.c:1187 msgid "OTR" msgstr "Không được ghi lại" #. Translators: the following four messages should give alternative sentences. #. The user selects the first or second message in a combo box; #. the third message, a new line, a fingerprint, a new line, and #. the fourth message will follow it. #: ../gtk-dialog.c:1322 msgid "I have not" msgstr "Tôi đã không" #. 2nd message #: ../gtk-dialog.c:1324 msgid "I have" msgstr "Tôi đã" #. 3rd message #: ../gtk-dialog.c:1327 msgid " verified that this is in fact the correct" msgstr " kiểm chứng rằng điều này trên thực tế là đúng" #. 4th message #: ../gtk-dialog.c:1337 #, c-format msgid "fingerprint for %s." msgstr "dấu tay cho %s." #: ../gtk-dialog.c:1364 #, c-format msgid "Verify fingerprint for %s" msgstr "Kiểm chứng dấu tay cho %s" #: ../gtk-dialog.c:1376 #, c-format msgid "" "%s %s\n" "\n" "Fingerprint for you, %s (%s):\n" "%s\n" "\n" "Purported fingerprint for %s:\n" "%s\n" msgstr "" "%s %s\n" "\n" "Dấu tay cho bạn, %s (%s):\n" "%s\n" "\n" "Dấu tay có ý xấu cho %s:\n" "%s\n" #: ../gtk-dialog.c:1389 #: ../gtk-ui.c:782 msgid "Verify fingerprint" msgstr "Kiểm chứng dấu tay" #: ../gtk-dialog.c:1416 #, c-format msgid "Authentication from %s" msgstr "Chứng thật từ %s" #: ../gtk-dialog.c:1419 #, c-format msgid "Authenticate %s" msgstr "Chứng thật %s" #: ../gtk-dialog.c:1429 msgid "Authenticate Buddy" msgstr "Chứng thật người bạn" #: ../gtk-dialog.c:1460 msgid "An error occurred during authentication." msgstr "Một lỗi đã xảy ra trong lúc chứng thật." #: ../gtk-dialog.c:1475 msgid "Authentication successful." msgstr "Chứng thật thàng công." #: ../gtk-dialog.c:1478 msgid "Your buddy has successfully authenticated you. You may want to authenticate your buddy as well by asking your own question." msgstr "Bạn chát của bạn đã chứng thật bạn thành công. Bạn cũng có thể muốn chứng thật bạn chát của bạn bằng cách hỏi câu hỏi riêng của bạn." #: ../gtk-dialog.c:1484 msgid "Authentication failed." msgstr "Chứng thật thất bại." #: ../gtk-dialog.c:1512 #, c-format msgid "Private conversation with %s started.%s" msgstr "Đàm thoại riêng với %s đã bắt đầu.%s" #: ../gtk-dialog.c:1516 #, c-format msgid "Unverified conversation with %%s started.%%s" msgstr "Cuộc đàm thoại chưa được kiểm chứng với %%s đã bắt đầu.%%s" #. This last case should never happen, since we know #. * we're in ENCRYPTED. #: ../gtk-dialog.c:1524 #, c-format msgid "Not private conversation with %s started.%s" msgstr "Cuộc đàm thoại chung với %s đã bắt đầu.%s" #: ../gtk-dialog.c:1530 #: ../gtk-dialog.c:1634 msgid " Warning: using old protocol version 1." msgstr "Cảnh báo: đang dùng giao thức phiên bản 1." #: ../gtk-dialog.c:1550 #, c-format msgid "Private conversation with %s lost." msgstr "Đàm thoại riêng với %s đã mất." #: ../gtk-dialog.c:1587 #, c-format msgid "%s has ended his/her private conversation with you; you should do the same." msgstr "%s đã kết thúc cuộc đàm thoại của anh ấy hay cô ấy với bạn; bạn cũng nên làm như vậy. " #: ../gtk-dialog.c:1613 #, c-format msgid "Successfully refreshed the private conversation with %s.%s" msgstr "Đã cập nhật thành công cuộc đàm thoại riêng với %s.%s" #: ../gtk-dialog.c:1618 #, c-format msgid "Successfully refreshed the unverified conversation with %%s.%%s" msgstr "Đã cập nhật thành công cuộc đàm thoại chưa được kiểm chứng với %%s.%%s" #. This last case should never happen, since we know #. * we're in ENCRYPTED. #: ../gtk-dialog.c:1627 #, c-format msgid "Successfully refreshed the not private conversation with %s.%s" msgstr "Đã cập nhật thành công cuộc đàm thoại chung với %s.%s" #: ../gtk-dialog.c:1659 #, c-format msgid "Attempting to refresh the private conversation with %s..." msgstr "Đang thử cập nhật cuộc đàm thoại riêng với %s..." #: ../gtk-dialog.c:1661 #, c-format msgid "Attempting to start a private conversation with %s..." msgstr "Đang thử bắt đầu cuộc đàm thoại riêng với %s..." #: ../gtk-dialog.c:1844 #: ../gtk-dialog.c:2117 msgid "Not Private" msgstr "Không riêng tư" #: ../gtk-dialog.c:1866 #: ../gtk-dialog.c:2338 msgid "_What's this?" msgstr "_Đây lài gì đây?" #: ../gtk-dialog.c:1898 #: ../gtk-dialog.c:2303 msgid "_End private conversation" msgstr "_Kết thúc cuộc đàm thoại riêng tư" #. #. * Don't show the Verify fingerprint menu option any more. You can #. * still get to the dialog through Authenticate connection -> #. * Advanced... #. * #. menuverf = gtk_menu_item_new_with_mnemonic(_("_Verify fingerprint")); #. gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuverf); #. gtk_widget_show(menuverf); #. #: ../gtk-dialog.c:1899 #: ../gtk-dialog.c:2321 msgid "_Authenticate buddy" msgstr "_Chứng thật người bạn" #: ../gtk-dialog.c:2113 #, c-format msgid "The privacy status of the current conversation is now: %s" msgstr "Trạng thái riêng tư của cuộc đàm thoại hiện tại bây giờ là: %s" #: ../gtk-dialog.c:2276 msgid "OTR:" msgstr "Không được ghi lại:" #: ../gtk-dialog.c:2296 msgid "OTR Messaging" msgstr "Thông điệp Không được ghi lại" #: ../gtk-ui.c:102 #, c-format msgid "Fingerprint: %.80s" msgstr "Dấu tay: %.80s" #: ../gtk-ui.c:106 #, c-format msgid "No key present" msgstr "Không có chìa khoá hiện tại" #: ../gtk-ui.c:111 #, c-format msgid "No account available" msgstr "Không có sẵn tài khoản" #: ../gtk-ui.c:171 msgid "Unused" msgstr "Không sử dụng" #: ../gtk-ui.c:177 msgid "Yes" msgstr "Có" #: ../gtk-ui.c:177 msgid "No" msgstr "Không" #: ../gtk-ui.c:403 msgid "Enable private messaging" msgstr "Cho phép thông điệp riêng tư" #: ../gtk-ui.c:405 msgid "Automatically initiate private messaging" msgstr "Bắt đầu thông điệp riêng tư " #: ../gtk-ui.c:407 msgid "Require private messaging" msgstr "Đòi hỏi thông điệp riêng tư" #: ../gtk-ui.c:410 msgid "Don't log OTR conversations" msgstr "Đừng ghi lưu những đàm thoại OTR " #: ../gtk-ui.c:454 msgid "Show OTR button" msgstr "Chỉ nút OTR" #: ../gtk-ui.c:457 msgid "Show OTR button in toolbar" msgstr "Hiện nút OTR trên thanh công cụ " #: ../gtk-ui.c:601 msgid "My private keys" msgstr "Những chìa khóa riêng của tôi" #: ../gtk-ui.c:610 msgid "Key for account:" msgstr "Chìa khóa cho tài khỏan" #: ../gtk-ui.c:635 msgid "Generate" msgstr "Tạo ra" #: ../gtk-ui.c:676 msgid "Default OTR Settings" msgstr "Những thiết lập OTR mặc định" #: ../gtk-ui.c:703 msgid "OTR UI Options" msgstr "Tuỳ chọn OTR UI" #: ../gtk-ui.c:726 msgid "Screenname" msgstr "Tên màn hình" #: ../gtk-ui.c:727 msgid "Status" msgstr "Trạng thái" #: ../gtk-ui.c:728 msgid "Verified" msgstr "Đã được kiểm chứng" #: ../gtk-ui.c:729 msgid "Fingerprint" msgstr "Dấu tay" #: ../gtk-ui.c:730 msgid "Account" msgstr "Tài Khoản" #: ../gtk-ui.c:766 msgid "Start private connection" msgstr "Bắt đầu kết nối riêng tư" #: ../gtk-ui.c:774 msgid "End private connection" msgstr "Kết thúc kết nối riêng tư" #: ../gtk-ui.c:790 msgid "Forget fingerprint" msgstr "Quên dấu tay" #: ../gtk-ui.c:841 msgid "Config" msgstr "Cấu hình" #: ../gtk-ui.c:843 msgid "Known fingerprints" msgstr "Những dấu tay đã biết" #: ../gtk-ui.c:941 #: ../otr-plugin.c:606 msgid "OTR Settings" msgstr "Những thiết lập OTR" #. Set the title #: ../gtk-ui.c:959 #, c-format msgid "OTR Settings for %s" msgstr "Những thiết lập OTR cho %s" #. Make the cascaded checkboxes #: ../gtk-ui.c:976 msgid "Use default OTR settings for this buddy" msgstr "Dùng những thiết lập OTR mặc định cho bạn chát này" #: ../otr-plugin.c:114 #, c-format msgid "You are not currently connected to account %s (%s)." msgstr "Hiện tại bạn không được kết nối tới tài khoản %s(%s)." #: ../otr-plugin.c:118 msgid "Not connected" msgstr "Không được kết nối" #: ../otr-plugin.c:162 #, c-format msgid "Out of memory building filenames!\n" msgstr "Hết bộ nhớ để tạo ra những tập tin!\n" #: ../otr-plugin.c:168 #, c-format msgid "Could not write private key file\n" msgstr "Không thể viết vào tập tin chìa khóa riêng\n" #: ../otr-plugin.c:211 #, c-format msgid "Unknown account %s (%s)." msgstr "Tài khoản không rõ %s (%s)." #: ../otr-plugin.c:215 msgid "Unknown account" msgstr "Tài khoản không rõ" #: ../otr-plugin.c:983 msgid "Off-the-Record Messaging" msgstr "Thông điệp Không được ghi lại" #: ../otr-plugin.c:984 msgid "Provides private and secure conversations" msgstr "Cung cấp những cuộc đàm thoại riêng tư và bảo mật" #: ../otr-plugin.c:985 msgid "Preserves the privacy of IM communications by providing encryption, authentication, deniability, and perfect forward secrecy." msgstr "Bảo tồn sự riêng tư của nhừng thông tin IM do cung cấp mật mã, sự chứng thật, khả năng từ chối, và bí mật hoàn hảo." #: ../ui.c:109 #, c-format msgid "Account %s (%s) could not be found" msgstr "Tài khoản %s(%s) không thể tìm thấy được" #: ../ui.c:113 msgid "Account not found" msgstr "Tài khoản không tìm thấy được" pidgin-otr-4.0.0/po/de.po0000644000175000017500000006146212020421670012061 00000000000000# Off-the-Record Messaging plugin for pidgin. # Copyright (C) 2004-2012 Ian Goldberg, Rob Smits, Chris Alexander, Willy Lew, # Lisa Du, Nikita Borisov # This file is distributed under the same license as the pidgin-otr package. # Ian Goldberg , 2012 # Marc Ester , 2012 # Michael Meier , 2008. msgid "" msgstr "" "Project-Id-Version: pidgin-otr 4.0.0.de\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-06-14 09:45-0400\n" "PO-Revision-Date: 2012-06-17 12:33+0200\n" "Last-Translator: Marc Ester \n" "Language-Team: Marc Ester \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../gtk-dialog.c:332 ../gtk-dialog.c:1141 ../gtk-dialog.c:1145 #: ../gtk-dialog.c:1547 ../gtk-dialog.c:1584 ../gtk-dialog.c:1673 #: ../gtk-dialog.c:1748 ../gtk-dialog.c:2749 msgid "?lang=en" msgstr "?lang=de" #: ../gtk-dialog.c:480 msgid "" "Your buddy is attempting to determine if he or she is really talking to you, " "or if it's someone pretending to be you. Your buddy has asked a question, " "indicated below. To authenticate to your buddy, enter the answer and click " "OK." msgstr "" "Ihr Buddy versucht festzustellen, ob er wirklich mit Ihnen spricht oder " "jemandem, der sich als Sie ausgibt. Er hat dazu die unten angegebene Frage " "gestellt. Um Ihren Buddy zu authentifizieren, geben Sie die Antwort ein und " "klicken Sie OK." #: ../gtk-dialog.c:487 msgid "" "To authenticate using a question, pick a question whose answer is known only " "to you and your buddy. Enter this question and this answer, then wait for " "your buddy to enter the answer too. If the answers don't match, then you " "may be talking to an imposter." msgstr "" "Wählen Sie zur Authentifizierung eine Frage, deren Antwort nur Ihnen und " "Ihrem Buddy bekannt ist. Geben Sie die Frage und Antwort ein und warten Sie " "dann darauf, dass Ihr Buddy diese Antwort ebenfalls eingibt. Sollten die " "Antworten nicht übereinstimmen, haben Sie es möglicherweise mit einem " "Hochstapler zu tun." #: ../gtk-dialog.c:505 #, c-format msgid "This is the question asked by your buddy:" msgstr "Diese Frage wurde von Ihrem Buddy gestellt:" #: ../gtk-dialog.c:508 #, c-format msgid "Enter question here:" msgstr "Frage hier eingeben:" #: ../gtk-dialog.c:540 ../gtk-dialog.c:624 msgid "This buddy is already authenticated." msgstr "Dieser Buddy wurde bereits authentifiziert." #: ../gtk-dialog.c:552 #, c-format msgid "Enter secret answer here (case sensitive):" msgstr "Geheime Antwort hier eingeben: (Groß-/Kleinschreibung relevant)" #: ../gtk-dialog.c:593 msgid "" "To authenticate, pick a secret known only to you and your buddy. Enter this " "secret, then wait for your buddy to enter it too. If the secrets don't " "match, then you may be talking to an imposter." msgstr "" "Wählen Sie zur Authentifizierung eine Passphrase, die nur Ihnen und Ihrem " "Buddy bekannt ist. Geben Sie diese Passphrase ein, warten Sie dann darauf, " "dass Ihr Buddy diese Passphrase ebenfalls eingibt. Wenn die Passphrasen " "nicht übereinstimmen, haben Sie es möglicherweise mit einem Hochstapler zu " "tun." #: ../gtk-dialog.c:607 #, c-format msgid "Enter secret here:" msgstr "Geheime Passphrase hier eingeben" #: ../gtk-dialog.c:657 ../gtk-dialog.c:1408 msgid "" "To verify the fingerprint, contact your buddy via some other " "authenticated channel, such as the telephone or GPG-signed email. Each of " "you should tell your fingerprint to the other." msgstr "" "Um den Fingerprint zu verifizieren, kontaktieren Sie Ihren Buddy über einen " "anderen sicheren Kanal, zum Beispiel persönlich, per GPG-" "verschlüsselter E-Mail oder telefonisch. Sie sollten Sich gegenseitig Ihre " "Fingerprints mitteilen." #: ../gtk-dialog.c:661 msgid "" "If everything matches up, you should chose I have in the menu below." msgstr "" "Wenn alles übereinstimmt, sollten Sie im obigen Dialog angeben, dass Sie den " "Fingerprint tatsächlich verifiziert haben." #: ../gtk-dialog.c:672 ../gtk-dialog.c:1397 msgid "[none]" msgstr "[keiner]" #: ../gtk-dialog.c:679 ../gtk-dialog.c:1051 ../gtk-dialog.c:1404 #: ../gtk-dialog.c:1453 ../gtk-ui.c:212 ../otr-plugin.c:127 #: ../otr-plugin.c:300 ../ui.c:112 msgid "Unknown" msgstr "Unbekannt" #: ../gtk-dialog.c:680 #, c-format msgid "" "Fingerprint for you, %s (%s):\n" "%s\n" "\n" "Purported fingerprint for %s:\n" "%s\n" msgstr "" "Fingerprint für Sie, %s (%s):\n" "%s\n" "\n" "Angegebener Fingerprint für %s:\n" "%s\n" #: ../gtk-dialog.c:736 msgid "How would you like to authenticate your buddy?" msgstr "Wie möchten Sie Ihren Buddy authentifizieren?" #: ../gtk-dialog.c:745 msgid "Question and answer" msgstr "Frage und Antwort" #: ../gtk-dialog.c:748 msgid "Shared secret" msgstr "Gemeinsam bekannte Passphrase" #: ../gtk-dialog.c:751 msgid "Manual fingerprint verification" msgstr "Manueller Fingerprint-Vergleich" #: ../gtk-dialog.c:802 msgid "_Authenticate" msgstr "_Authentifizieren" #: ../gtk-dialog.c:836 msgid "" "Authenticating a buddy helps ensure that the person you are talking to is " "who he or she claims to be." msgstr "" "Einen Buddy zu authentifizieren hilft sicherzustellen, dass die Person, mit " "der Sie sprechen, die ist, die sie zu sein behauptet." #. Translators: you are asked to authenticate yourself #: ../gtk-dialog.c:946 msgid "Authenticating to Buddy" msgstr "Authentifiziere gegenüber Buddy" #. Translators: you asked your buddy to authenticate him/herself #: ../gtk-dialog.c:948 msgid "Authenticating Buddy" msgstr "Authentifiziere Buddy" #: ../gtk-dialog.c:975 #, c-format msgid "Authenticating to %s" msgstr "Authentifiziere gegenüber %s" #: ../gtk-dialog.c:976 #, c-format msgid "Authenticating %s" msgstr "Authentifiziere %s" #: ../gtk-dialog.c:1009 msgid "Waiting for buddy..." msgstr "Warte auf Buddy..." #: ../gtk-dialog.c:1042 msgid "Generating private key" msgstr "Generiere privaten Schlüssel" #: ../gtk-dialog.c:1043 msgid "Please wait" msgstr "Bitte warten" #. Create the Please Wait... dialog #: ../gtk-dialog.c:1054 #, c-format msgid "Generating private key for %s (%s)..." msgstr "Generiere privaten Schlüssel für %s (%s)..." #: ../gtk-dialog.c:1099 #, c-format msgid "%s Done." msgstr "%s Fertig." #: ../gtk-dialog.c:1139 #, c-format msgid "" "%s is contacting you from an unrecognized computer. You should authenticate this buddy." msgstr "" "%s kontaktiert Sie von einem unbekannten Computer aus. Sie sollten diesen " "Buddy authentifizieren." #: ../gtk-dialog.c:1143 #, c-format msgid "" "%s has not been authenticated yet. You should authenticate this buddy." msgstr "" "%s wurde noch nicht authentifiziert. Sie sollten diesen Buddy authentifizieren." #: ../gtk-dialog.c:1195 ../gtk-dialog.c:1969 ../gtk-dialog.c:2745 #: ../gtk-ui.c:83 msgid "Finished" msgstr "Beendet" #: ../gtk-dialog.c:1196 ../gtk-dialog.c:1966 ../gtk-dialog.c:2742 #: ../gtk-ui.c:82 msgid "Private" msgstr "Privat" #: ../gtk-dialog.c:1197 ../gtk-dialog.c:1963 ../gtk-dialog.c:2739 #: ../gtk-ui.c:81 msgid "Unverified" msgstr "Unverifiziert" #: ../gtk-dialog.c:1198 ../gtk-ui.c:80 msgid "Not private" msgstr "Nicht privat" #: ../gtk-dialog.c:1201 msgid "OTR" msgstr "OTR" #. Translators: the following four messages should give alternative #. * sentences. The user selects the first or second message in a combo box; #. * the third message, a new line, a fingerprint, a new line, and #. * the fourth message will follow it. #: ../gtk-dialog.c:1351 msgid "I have not" msgstr "Ich habe nicht" #. 2nd message #: ../gtk-dialog.c:1353 msgid "I have" msgstr "Ich habe" #. 3rd message #: ../gtk-dialog.c:1356 msgid " verified that this is in fact the correct" msgstr " überprüft, dass dies tatsächlich der richtige" #. 4th message #: ../gtk-dialog.c:1366 #, c-format msgid "fingerprint for %s." msgstr "Fingerprint für %s ist." #: ../gtk-dialog.c:1393 #, c-format msgid "Verify fingerprint for %s" msgstr "Fingerprint für %s verifizieren." #: ../gtk-dialog.c:1405 #, c-format msgid "" "%s %s\n" "\n" "Fingerprint for you, %s (%s):\n" "%s\n" "\n" "Purported fingerprint for %s:\n" "%s\n" msgstr "" "%s %s\n" "\n" "Fingerprint für Sie, %s (%s):\n" "%s\n" "\n" "Angegebener Fingerprint für %s:\n" "%s\n" #: ../gtk-dialog.c:1412 msgid "" "If everything matches up, you should indicate in the above dialog that you " "have verified the fingerprint." msgstr "" "Wenn alles übereinstimmt, sollten Sie im obigen Dialog angeben, " "dass Sie den Fingerprint verifiziert haben." #: ../gtk-dialog.c:1418 ../gtk-ui.c:844 msgid "Verify fingerprint" msgstr "Fingerprint verifizieren" #: ../gtk-dialog.c:1445 #, c-format msgid "Authentication from %s" msgstr "Authentifizierung von %s" #: ../gtk-dialog.c:1448 #, c-format msgid "Authenticate %s" msgstr "Authentifiziere %s" #: ../gtk-dialog.c:1456 msgid "Authenticate Buddy" msgstr "Authentifiziere Buddy" #: ../gtk-dialog.c:1487 msgid "An error occurred during authentication." msgstr "Es trat ein Fehler bei der Authentifizierung auf." #: ../gtk-dialog.c:1502 msgid "Authentication successful." msgstr "Authentifizierung war erfolgreich." #: ../gtk-dialog.c:1505 msgid "" "Your buddy has successfully authenticated you. You may want to authenticate " "your buddy as well by asking your own question." msgstr "" "Ihr Buddy hat Sie erfolgreich authentifiziert. Unter Umständen möchten Sie " "ebenfalls eine Frage stellen, um Ihren Buddy zu authentifizieren." #: ../gtk-dialog.c:1511 msgid "Authentication failed." msgstr "Authentifizierung fehlgeschlagen." #: ../gtk-dialog.c:1541 #, c-format msgid "Private conversation with %s started.%s%s" msgstr "Private Unterhaltung mit %s begonnen.%s%s" #: ../gtk-dialog.c:1545 #, c-format msgid "Unverified conversation with %%s started.%%s%%s" msgstr "" "Nicht verifizierte Unterhaltung mit %%s " "begonnen.%%s%%s" #. This last case should never happen, since we know #. * we're in ENCRYPTED. #: ../gtk-dialog.c:1553 #, c-format msgid "Not private conversation with %s started.%s%s" msgstr "Nicht private Unterhaltung mit %s begonnen.%s%s" #: ../gtk-dialog.c:1559 ../gtk-dialog.c:1686 msgid " Warning: using old protocol version 1." msgstr " Warnung: Verwende veraltete Protokollversion 1." #: ../gtk-dialog.c:1561 msgid " Your client is logging this conversation." msgstr " Ihr Client speichert diese Unterhaltung." #: ../gtk-dialog.c:1562 msgid " Your client is not logging this conversation." msgstr " Ihr Client speichert diese Unterhaltung nicht." #: ../gtk-dialog.c:1581 #, c-format msgid "" "Your buddy is logged in multiple times and OTR has established multiple sessions. Use the icon menu above if you wish to select the " "outgoing session." msgstr "" "Ihr Buddy ist mehrfach verbunden und OTR hat sich mit mehreren Sessions verbunden. Nutzen Sie das Symbol Menü, wenn Sie " "die Verbindung wählen möchten." #: ../gtk-dialog.c:1601 #, c-format msgid "Private conversation with %s lost." msgstr "Private Unterhaltung mit %s abgebrochen." #: ../gtk-dialog.c:1638 #, c-format msgid "" "%s has ended his/her private conversation with you; you should do the same." msgstr "" "%s hat seine/ihre private Unterhaltung mit Ihnen beendet. Sie sollten " "dasselbe tun." #: ../gtk-dialog.c:1665 #, c-format msgid "Successfully refreshed the private conversation with %s.%s" msgstr "Private Unterhaltung mit %s erfolgreich aktualisiert.%s" #: ../gtk-dialog.c:1670 #, c-format msgid "" "Successfully refreshed the unverified conversation with " "%%s.%%s" msgstr "" "Nicht verifizierte Unterhaltung mit %%s erfolgreich " "aktualisiert.%%s" #. This last case should never happen, since we know #. * we're in ENCRYPTED. #: ../gtk-dialog.c:1679 #, c-format msgid "Successfully refreshed the not private conversation with %s.%s" msgstr "Nicht private Unterhaltung mit %s erfolgreich aktualisiert.%s" #: ../gtk-dialog.c:1712 #, c-format msgid "Attempting to refresh the private conversation with %s..." msgstr "Versuche, die private Unterhaltung mit %s zu aktualisieren..." #: ../gtk-dialog.c:1714 #, c-format msgid "Attempting to start a private conversation with %s..." msgstr "Versuche, eine private Unterhaltung mit %s zu beginnen..." #: ../gtk-dialog.c:1899 ../gtk-dialog.c:2026 msgid "Start _private conversation" msgstr "_Private Unterhaltung starten" #: ../gtk-dialog.c:1900 msgid "Refresh _private conversation" msgstr "Aktualisiere _Private Unterhaltung" #: ../gtk-dialog.c:1905 msgid "Re_authenticate buddy" msgstr "Buddy erneut _authentifizieren" #: ../gtk-dialog.c:1906 ../gtk-dialog.c:2030 msgid "_Authenticate buddy" msgstr "Buddy _authentifizieren" #: ../gtk-dialog.c:1960 ../gtk-dialog.c:2736 msgid "Not Private" msgstr "Nicht privat" #: ../gtk-dialog.c:1982 msgid "_What's this?" msgstr "_Was ist das?" #: ../gtk-dialog.c:2028 msgid "_End private conversation" msgstr "Private Unterhaltung be_enden" #: ../gtk-dialog.c:2207 ../gtk-dialog.c:2255 #, c-format msgid "" "Warning: The selected outgoing OTR session (%u) is not the most recently " "active one (%u). Your buddy may not receive your messages. Use the icon menu " "above to select a different outgoing session." msgstr "" "Warnung: Die gewählte ausgehende OTR Session (%u) ist nicht " "die kürzlich aktive (%u). Dein Buddy wird die Nachricht eventuell nicht " "erhalten. Nutzen Sie das obere Symbol Menü, um eine ausgehende Session " "zu wählen." #: ../gtk-dialog.c:2271 msgid "Send to most secure" msgstr "Sende zur sichersten" #: ../gtk-dialog.c:2273 msgid "Send to most recent" msgstr "Sende zur neusten" #: ../gtk-dialog.c:2377 #, c-format msgid "Session %u" msgstr "Session %u" #: ../gtk-dialog.c:2395 ../gtk-dialog.c:2506 msgid "Select" msgstr "Auswählen" #: ../gtk-dialog.c:2410 msgid "Selected" msgstr "Ausgewählt" #: ../gtk-dialog.c:2731 #, c-format msgid "" "The privacy status of the current conversation is now: %s" msgstr "" "Der Status der aktuellen Unterhaltung ist jetzt: %s" #: ../gtk-dialog.c:2956 msgid "OTR Messaging" msgstr "OTR Messaging" #: ../gtk-ui.c:103 #, c-format msgid "Fingerprint: %.80s" msgstr "Fingerprint: %.80s" #: ../gtk-ui.c:107 #, c-format msgid "No key present" msgstr "Kein Schlüssel vorhanden" #: ../gtk-ui.c:112 #, c-format msgid "No account available" msgstr "Kein Konto verfügbar" #: ../gtk-ui.c:179 msgid "Unused" msgstr "Unbenutzt" #: ../gtk-ui.c:208 msgid "Yes" msgstr "Ja" #: ../gtk-ui.c:208 msgid "No" msgstr "Nein" #: ../gtk-ui.c:473 msgid "Enable private messaging" msgstr "Privaten Nachrichtenversand aktivieren" #: ../gtk-ui.c:475 msgid "Automatically initiate private messaging" msgstr "Privaten Nachrichtenversand automatisch aktivieren" #: ../gtk-ui.c:477 msgid "Require private messaging" msgstr "Privaten Nachrichtenversand erzwingen" #: ../gtk-ui.c:480 msgid "Don't log OTR conversations" msgstr "OTR-Unterhaltungen nicht speichern" #: ../gtk-ui.c:524 msgid "Show OTR button in toolbar" msgstr "OTR-Button in Symbolleiste anzeigen" #: ../gtk-ui.c:663 msgid "My private keys" msgstr "Meine privaten Schlüssel" #: ../gtk-ui.c:672 msgid "Key for account:" msgstr "Schlüssel für Konto:" #: ../gtk-ui.c:697 msgid "Generate" msgstr "Generieren" #: ../gtk-ui.c:738 msgid "Default OTR Settings" msgstr "Standard OTR-Einstellungen" #: ../gtk-ui.c:765 msgid "OTR UI Options" msgstr "OTR-Erscheinungsbild" #: ../gtk-ui.c:788 msgid "Screenname" msgstr "Spitzname" #: ../gtk-ui.c:789 msgid "Status" msgstr "Status" #: ../gtk-ui.c:790 msgid "Verified" msgstr "Verifiziert" #: ../gtk-ui.c:791 msgid "Fingerprint" msgstr "Fingerprint" #: ../gtk-ui.c:792 msgid "Account" msgstr "Konto" #: ../gtk-ui.c:828 msgid "Start private connection" msgstr "Private Unterhaltung starten" #: ../gtk-ui.c:836 msgid "End private connection" msgstr "Private Unterhaltung beenden" #: ../gtk-ui.c:852 msgid "Forget fingerprint" msgstr "Fingerprint vergessen" #: ../gtk-ui.c:903 msgid "Config" msgstr "Konfiguration" #: ../gtk-ui.c:905 msgid "Known fingerprints" msgstr "Bekannte Fingerprints" #: ../gtk-ui.c:1003 ../otr-plugin.c:964 msgid "OTR Settings" msgstr "OTR-Einstellungen" #. Set the title #: ../gtk-ui.c:1021 #, c-format msgid "OTR Settings for %s" msgstr "OTR-Einstellungen für %s" #. Make the cascaded checkboxes #: ../gtk-ui.c:1038 msgid "Use default OTR settings for this buddy" msgstr "Standard OTR-Einstellungen für diesen Buddy verwenden" #: ../otr-plugin.c:125 #, c-format msgid "You are not currently connected to account %s (%s)." msgstr "Sie sind momentan nicht mit Konto %s (%s) verbunden." #: ../otr-plugin.c:129 msgid "Not connected" msgstr "Nicht verbunden" #: ../otr-plugin.c:212 ../otr-plugin.c:254 #, c-format msgid "Out of memory building filenames!\n" msgstr "Kein Speicher zum Erstellen von Dateinamen!\n" #: ../otr-plugin.c:224 ../otr-plugin.c:260 #, c-format msgid "Could not write private key file\n" msgstr "Konnte nicht in die Private-Schlüssel-Datei schreiben\n" #: ../otr-plugin.c:298 #, c-format msgid "Unknown account %s (%s)." msgstr "Unbekanntes Konto %s (%s)." #: ../otr-plugin.c:302 msgid "Unknown account" msgstr "Unbekanntes Konto" #: ../otr-plugin.c:364 msgid "Error occurred encrypting message." msgstr "Ein Fehler ist beim Verschlüsseln der Nachricht aufgetreten" #: ../otr-plugin.c:368 #, c-format msgid "You sent encrypted data to %s, who wasn't expecting it." msgstr "Sie haben %s eine verschlüsselte Nachricht geschickt, " "welche er nicht erwartet hat." #: ../otr-plugin.c:374 msgid "You transmitted an unreadable encrypted message." msgstr "Sie haben eine unlesbare verschlüsselte Nachricht " "verschickt." #: ../otr-plugin.c:377 msgid "You transmitted a malformed data message." msgstr "Sie haben fehlerhafte Nachrichten versendet." #: ../otr-plugin.c:390 msgid "[resent]" msgstr "[nochmal versendet]" #: ../otr-plugin.c:459 #, c-format msgid "You attempted to send an unencrypted message to %s" msgstr "Sie haben versucht eine unverschlüsselte Nachricht an %s zu senden" #: ../otr-plugin.c:462 msgid "Attempting to start a private conversation..." msgstr "Versuche private Unterhaltung zu starten..." #: ../otr-plugin.c:464 msgid "OTR Policy Violation" msgstr "OTR Richtlinienverletzung" #: ../otr-plugin.c:465 msgid "" "Unencrypted messages to this recipient are not allowed. Attempting to start " "a private conversation.\n" "\n" "Your message will be retransmitted when the private conversation starts." msgstr "" "Unverschlüsselte Nachrichten an diesen Empfänger sind nicht erlaubt. " "Versuchen Sie eine private Unterhaltung zu starten.\n" "\n" "Ihre Nachricht wird nochmal gesendet, wenn die private Unterhaltung beginnt." #: ../otr-plugin.c:474 msgid "" "An error occurred when encrypting your message. The message was not sent." msgstr "" "Es ist ein Fehler beim Verschlüsseln ihrer Nachricht aufgetreten." #: ../otr-plugin.c:476 msgid "Error encrypting message" msgstr "Fehler beim Verschlüsseln der Nachricht" #: ../otr-plugin.c:477 msgid "An error occurred when encrypting your message" msgstr "Ein Fehler ist beim Verschlüsseln der Nachricht aufgetreten" #: ../otr-plugin.c:478 msgid "The message was not sent." msgstr "Die Nachricht wurden nicht versendet." #: ../otr-plugin.c:481 #, c-format msgid "%s has already closed his/her private connection to you" msgstr "%s hat bereits seine/ihre private Verbindung zu Ihnen beendet" #: ../otr-plugin.c:484 msgid "" "Your message was not sent. Either end your private conversation, or restart " "it." msgstr "Ihre Nachricht wurde nicht gesendet. Entweder beenden Sie Ihre " "private Unterhaltung oder Sie schalten sie wieder ein." #: ../otr-plugin.c:487 msgid "Private connection closed" msgstr "Private Verbindung geschlossen" #: ../otr-plugin.c:488 msgid "" "Your message was not sent. Either close your private connection to him, or " "refresh it." msgstr "Ihre Nachricht wurde nicht gesendet. Entweder beenden Sie Ihre " "private Unterhaltung oder Sie aktualisieren sie." #: ../otr-plugin.c:498 msgid "Error setting up private conversation: Malformed message received" msgstr "Fehler beim Aufbau der privaten Unterhaltung: Fehlerhafte Nachricht erhalten" #: ../otr-plugin.c:502 #, c-format msgid "Error setting up private conversation: %s" msgstr "Fehler beim Aufbau der privaten Unterhaltung: %s" #: ../otr-plugin.c:509 ../otr-plugin.c:520 ../otr-plugin.c:547 #: ../otr-plugin.c:555 ../otr-plugin.c:573 msgid "OTR Error" msgstr "OTR Error" #: ../otr-plugin.c:516 msgid "" "We are receiving our own OTR messages. You are either trying to talk to " "yourself, or someone is reflecting your messages back at you." msgstr "" "Wir erhalten unsere eigenen OTR Nachrichten. Entweder versuchen Sie mit sich " "selbst zu reden oder jemand schickt Ihnen Ihre Nachrichten zurück." #: ../otr-plugin.c:520 msgid "We are receiving our own OTR messages." msgstr "Wir empfangen unsere eigene OTR Nachricht." #: ../otr-plugin.c:521 msgid "" "You are either trying to talk to yourself, or someone is reflecting your " "messages back at you." msgstr "" "Sie versuchen mit sich selbst zu reden oder jemand schickt Ihre Nachrichten" " zurück." #: ../otr-plugin.c:526 #, c-format msgid "The last message to %s was resent." msgstr "Die letzte Nachricht an %s wurde wieder versendet." #: ../otr-plugin.c:530 msgid "Message resent" msgstr "Nachricht erneut versendet" #: ../otr-plugin.c:534 #, c-format msgid "" "The encrypted message received from %s is unreadable, as you are not " "currently communicating privately." msgstr "" "Die von %s empfangene Nachricht ist unlesbar, da Sie sich nicht in " "einer privaten Konversation befinden." #: ../otr-plugin.c:539 msgid "Unreadable message" msgstr "Unlesbare Nachricht" #: ../otr-plugin.c:543 #, c-format msgid "We received an unreadable encrypted message from %s." msgstr "Wir haben eine unlesbare verschlüsselte Nachricht von %s erhalten." #: ../otr-plugin.c:551 #, c-format msgid "We received a malformed data message from %s." msgstr "Wir haben eine fehlerhafte Datennachricht von %s." #: ../otr-plugin.c:559 #, c-format msgid "Heartbeat received from %s.\n" msgstr "Heartbeat erhalten von %s.\n" #: ../otr-plugin.c:565 #, c-format msgid "Heartbeat sent to %s.\n" msgstr "Heartbeat zu %s gesendet.\n" #: ../otr-plugin.c:576 #, c-format msgid "" "The following message received from %s was not encrypted: [%" "s]" msgstr "" "Die folgende Nachricht von %s war nicht verschlüsselt: [%" "s]" #: ../otr-plugin.c:581 msgid "Received unencrypted message" msgstr "Unverschlüsselte Nachricht erhalten" #: ../otr-plugin.c:587 #, c-format msgid "Unrecognized OTR message received from %s.\n" msgstr "Unbekannte OTR Nachricht erhalten von %s.\n" #: ../otr-plugin.c:596 #, c-format msgid "" "%s has sent a message intended for a different session. If you are logged in " "multiple times, another session may have received the message." msgstr "" "%s hat eine Nachricht gesendet, welche für eine andere Session bestimmt " "war. Wenn Sie mehrfach verbunden sind, hat möglicherweise eine andere " "Verbindung die Nachricht erhalten." #: ../otr-plugin.c:602 msgid "Received message for a different session" msgstr "Nachricht für eine andere Session erhalten" #. 2013-01-01 #: ../otr-plugin.c:1193 ../otr-plugin.c:1220 #, c-format msgid "OTR PLUGIN v%s" msgstr "OTR PLUGIN v%s" #: ../otr-plugin.c:1202 #, c-format msgid "" "This beta copy of the Off-the-Record Messaging v%s Pidgin plugin has expired " "as of 2013-01-01. Please look for an updated release at http://otr." "cypherpunks.ca/" msgstr "" "Diese Beta Version von Off-the-Record Messaging v%s Pidgin Plugin ist " "seit dem 01.01.2013 abgelaufen. Bitte schauen Sie auf " "http://otr.cypherpunks.ca/ nach einem Update." #: ../otr-plugin.c:1229 #, c-format msgid "" "You have enabled a beta version of the Off-the-Record Messaging v%s Pidgin " "plugin. This version is intended for testing purposes only and is not for " "general purpose use." msgstr "" "Sie nutzen eine Beta Version des Off-the-Record Messaging v%s Pidgin Plugins. " "Diese Version ist nur für Testzwecke und nicht die allgemeine Nutzung." #: ../otr-plugin.c:1414 msgid "Off-the-Record Messaging" msgstr "Off-the-Record Messaging" #: ../otr-plugin.c:1415 msgid "Provides private and secure conversations" msgstr "Ermöglicht private und sichere Unterhaltungen" #: ../otr-plugin.c:1416 msgid "" "Preserves the privacy of IM communications by providing encryption, " "authentication, deniability, and perfect forward secrecy." msgstr "" "Bewahrt die Vertraulichkeit von IM-Unterhaltungen durch Verschlüsselung, " "Authentifizierung, glaubhafte Bestreitbarkeit und Perfect Forward Secrecy." #: ../ui.c:110 #, c-format msgid "Account %s (%s) could not be found" msgstr "Konto %s (%s) konnte nicht gefunden werden" #: ../ui.c:114 msgid "Account not found" msgstr "Konto nicht gefunden" pidgin-otr-4.0.0/po/hu.po0000644000175000017500000004505211767120042012110 00000000000000# translation of hu.po to Hungarian # Copyright (C) 2004-2008 Ian Goldberg, Rob Smits, # Chris Alexander, Nikita Borisov # This file is distributed under the same license as the pidgin-otr package. # # Mate Ory , 2008. msgid "" msgstr "" "Project-Id-Version: hu\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2008-06-11 16:18-0400\n" "PO-Revision-Date: 2008-06-08 19:05+0200\n" "Last-Translator: Mate Ory \n" "Language-Team: Hungarian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: ../gtk-dialog.c:291 ../gtk-dialog.c:1144 ../gtk-dialog.c:1148 #: ../gtk-dialog.c:1310 ../gtk-dialog.c:1488 ../gtk-dialog.c:1669 #: ../gtk-dialog.c:1772 ../gtk-dialog.c:1863 ../gtk-dialog.c:2309 msgid "?lang=en" msgstr "?lang=hu" #: ../gtk-dialog.c:440 ../gtk-dialog.c:2043 ../gtk-dialog.c:2517 msgid "_What's this?" msgstr "_Mi ez?" #: ../gtk-dialog.c:475 msgid "" "Your buddy is attempting to determine if he or she is really talking to you, " "or if it's someone pretending to be you. Your buddy has asked a question, " "indicated below. To authenticate to your buddy, enter the answer and click " "OK." msgstr "" "A partnere el szeretné dönteni, hogy valóban azzal beszél-e, akinek ön magát " "állítja. Feltette az alábbi kérdést. A hitelesítéshez válaszolja meg, majd " "válassza az OK gombot." #: ../gtk-dialog.c:482 msgid "" "To authenticate using a question, pick a question whose answer is known only " "to you and your buddy. Enter this question and this answer, then wait for " "your buddy to enter the answer too. If the answers don't match, then you " "may be talking to an imposter." msgstr "" "A kérdéssel történő hitelesítéshez válasszon egy csak a partnere és ön által " "ismert titkot. Adja meg ezt egy kérdés és egy válasz formájában, majd várja " "meg, míg a partner is így tesz. Ha a válaszok nem egyeznek meg, lehetséges, " "hogy egy szélhámossal cseveg." #: ../gtk-dialog.c:500 msgid "This is the question asked by your buddy:" msgstr "A következő kérdést tette fel a partnere:" #: ../gtk-dialog.c:503 msgid "Enter question here:" msgstr "Adja meg a kérdést:" #: ../gtk-dialog.c:534 ../gtk-dialog.c:618 msgid "This buddy is already authenticated." msgstr "A partner már hitelesítve van." #: ../gtk-dialog.c:546 msgid "Enter secret answer here (case sensitive):" msgstr "Adja meg a (kis- és nagybetűérzékeny) titkos választ:" #: ../gtk-dialog.c:587 msgid "" "To authenticate, pick a secret known only to you and your buddy. Enter this " "secret, then wait for your buddy to enter it too. If the secrets don't " "match, then you may be talking to an imposter." msgstr "" "A hitelesítéshez válasszon egy csak a partnere és ön által ismert titkot. " "Adja meg ezt, majd várja meg, míg a partner is így tesz. Ha a titkok nem " "egyeznek meg, lehetséges, hogy egy szélhámossal cseveg." #: ../gtk-dialog.c:601 msgid "Enter secret here:" msgstr "Adja meg a titkot:" #: ../gtk-dialog.c:652 ../gtk-dialog.c:1477 ../gtk-dialog.c:1530 msgid "" "To verify the fingerprint, contact your buddy via some other " "authenticated channel, such as the telephone or GPG-signed email. Each of " "you should tell your fingerprint to the other." msgstr "" "Az ujjlenyomat ellenőrzéséhez vegye fel a kapcsolatot egy másik " "hiteles csatornán, például telefonon vagy digitálisan aláírt elektronikus " "levélben. Mindkét fél meg kell adja a saját ujjlenyomatát." #: ../gtk-dialog.c:656 ../gtk-dialog.c:1481 ../gtk-dialog.c:1534 msgid "" "If everything matches up, you should indicate in the above dialog that you " "have verified the fingerprint." msgstr "" "Amennyiben minden egyezik, a fenti ablakban válassza, hogy meggyőződött az ujjlenyomat hitelességéről." #: ../gtk-dialog.c:667 ../gtk-dialog.c:1519 msgid "[none]" msgstr "[nincs]" #: ../gtk-dialog.c:674 ../gtk-dialog.c:1032 ../gtk-dialog.c:1526 #: ../gtk-dialog.c:1577 ../gtk-ui.c:181 ../otr-plugin.c:116 #: ../otr-plugin.c:213 ../ui.c:111 msgid "Unknown" msgstr "Ismeretlen" #: ../gtk-dialog.c:675 #, c-format msgid "" "Fingerprint for you, %s (%s):\n" "%s\n" "\n" "Purported fingerprint for %s:\n" "%s\n" msgstr "" "Az ön (%s, %s) ujjlenyomata:\n" "%s\n" "\n" "%s feltételezett ujjlenyomata:\n" "%s\n" #: ../gtk-dialog.c:727 msgid "How would you like to authenticate your buddy?" msgstr "Milyen módon szeretné partnerét hitelesíteni?" #: ../gtk-dialog.c:736 msgid "Question and answer" msgstr "Kérdés-válasz" #: ../gtk-dialog.c:739 msgid "Shared secret" msgstr "Közös titok" #: ../gtk-dialog.c:742 msgid "Manual fingerprint verification" msgstr "Kézi ujjlenyomat-ellenőrzés" #: ../gtk-dialog.c:785 msgid "_Authenticate" msgstr "_Hitelesítés" #: ../gtk-dialog.c:818 msgid "" "Authenticating a buddy helps ensure that the person you are talking to is " "who he or she claims to be." msgstr "" "Partnerének hitelesítése segíti annak az ellenőrzését, hogy ön azzal a " "személlyel cseveg-e, akinek ő magát állítja." #. Translators: you are asked to authenticate yourself #: ../gtk-dialog.c:927 msgid "Authenticating to Buddy" msgstr "Hitelesítés partnernek" #. Translators: you asked your buddy to authenticate him/herself #: ../gtk-dialog.c:929 msgid "Authenticating Buddy" msgstr "Partner hitelesítése" #: ../gtk-dialog.c:956 #, c-format msgid "Authenticating to %s" msgstr "Hitelesítés %s részére" #: ../gtk-dialog.c:957 #, c-format msgid "Authenticating %s" msgstr "%s hitelesítése" #: ../gtk-dialog.c:990 msgid "Waiting for buddy..." msgstr "Várakozás a partnerre…" #: ../gtk-dialog.c:1023 msgid "Generating private key" msgstr "Személyes kulcs létrehozása" #: ../gtk-dialog.c:1024 msgid "Please wait" msgstr "Kis türelmet" #. Create the Please Wait... dialog #: ../gtk-dialog.c:1035 #, c-format msgid "Generating private key for %s (%s)..." msgstr "Személyes kulcs létrehozása a következőhöz: %s (%s)…" #: ../gtk-dialog.c:1080 #, c-format msgid "%s Done." msgstr "%s elkészült." #: ../gtk-dialog.c:1142 #, c-format msgid "" "%s is contacting you from an unrecognized computer. You should authenticate this buddy." msgstr "" "%s egy ismeretlen számítógépről kapcsolódik. Hitelesítse partnerét." #: ../gtk-dialog.c:1146 #, c-format msgid "" "%s has not been authenticated yet. You should authenticate this buddy." msgstr "%s még nincs hitelesítve. Hitelesítse partnerét." #: ../gtk-dialog.c:1209 ../gtk-dialog.c:1240 ../gtk-dialog.c:2030 #: ../gtk-dialog.c:2305 ../gtk-ui.c:82 msgid "Finished" msgstr "Kész" #: ../gtk-dialog.c:1210 ../gtk-dialog.c:1241 ../gtk-dialog.c:2027 #: ../gtk-dialog.c:2302 ../gtk-ui.c:81 msgid "Private" msgstr "Bizalmas" #: ../gtk-dialog.c:1211 ../gtk-dialog.c:1242 ../gtk-dialog.c:2024 #: ../gtk-dialog.c:2299 ../gtk-ui.c:80 msgid "Unverified" msgstr "Ellenőrizetlen" #: ../gtk-dialog.c:1212 ../gtk-dialog.c:1243 ../gtk-ui.c:79 msgid "Not private" msgstr "Nem bizalmas" #: ../gtk-dialog.c:1215 msgid "Start a private conversation" msgstr "Bizalmas beszélgetés kezdeményezése" #: ../gtk-dialog.c:1216 msgid "Refresh the private conversation" msgstr "Bizalmas beszélgetés megerősítése" #: ../gtk-dialog.c:1221 ../gtk-dialog.c:1979 ../gtk-dialog.c:2074 msgid "Start _private conversation" msgstr "_Bizalmas beszélgetés kezdeményezése" #: ../gtk-dialog.c:1222 ../gtk-dialog.c:1980 msgid "Refresh _private conversation" msgstr "_Bizalmas beszélgetés megerősítése" #: ../gtk-dialog.c:1246 msgid "OTR" msgstr "OTR" #. Translators: the following four messages should give alternative sentences. #. The user selects the first or second message in a combo box; #. the third message, a new line, a fingerprint, a new line, and #. the fourth message will follow it. #: ../gtk-dialog.c:1449 msgid "I have not" msgstr "Nem győződtem meg" #. 2nd message #: ../gtk-dialog.c:1451 msgid "I have" msgstr "Meggyőződtem" #. 3rd message #: ../gtk-dialog.c:1454 msgid " verified that this is in fact the correct" msgstr " arról, hogy" #. 4th message #: ../gtk-dialog.c:1464 #, c-format msgid "fingerprint for %s." msgstr "valóban %s ujjlenyomata." #: ../gtk-dialog.c:1483 msgid "" "If your buddy has more than one IM account, or uses more than one computer, " "he may have multiple fingerprints." msgstr "" "Amennyiben partnere egynél több azonnali üzenetküldő felhasználót vagy " "számítógépet használ, több ujjlenyomata is lehet." #: ../gtk-dialog.c:1485 msgid "" "However, the only way an imposter could duplicate one of your buddy's " "fingerprints is by stealing information from her/his computer." msgstr "" "Azonban a szélhámos egyetlen módja az ujjlenyomat hamisítására az, hogy " "partnerének számítógépéről adatot lop." #: ../gtk-dialog.c:1489 msgid "Click here for more information about fingerprints." msgstr "Kattintson ide további információért az ujjlenyomatokról." #: ../gtk-dialog.c:1492 msgid "" "A fingerprint is a unique identifier that you should use to " "authenticate your buddy." msgstr "" "Az ujjlenyomat egy olyan egyedi azonosító, melyet partnerének " "hitelesítésére használhat." #: ../gtk-dialog.c:1515 #, c-format msgid "Verify fingerprint for %s" msgstr "%s ujjlenyomatának ellenőrzése" #: ../gtk-dialog.c:1527 #, c-format msgid "" "%s %s\n" "\n" "Fingerprint for you, %s (%s):\n" "%s\n" "\n" "Purported fingerprint for %s:\n" "%s\n" msgstr "" "%s %s\n" "\n" "Az ön (%s, %s) ujjlenyomata:\n" "%s\n" "\n" "%s feltételezett ujjlenyomata:\n" "%s\n" #: ../gtk-dialog.c:1540 ../gtk-ui.c:782 msgid "Verify fingerprint" msgstr "Ujjlenyomat ellenőrzése" #: ../gtk-dialog.c:1567 #, c-format msgid "Authentication from %s" msgstr "%s hitelesítése" #: ../gtk-dialog.c:1570 #, c-format msgid "Authenticate %s" msgstr "%s hitelesítése" #: ../gtk-dialog.c:1580 msgid "Authenticate Buddy" msgstr "Partner hitelesítése" #: ../gtk-dialog.c:1611 msgid "An error occurred during authentication." msgstr "Hiba lépett fel a hitelesítés során." #: ../gtk-dialog.c:1626 msgid "Authentication successful." msgstr "A hitelesítés sikeres." #: ../gtk-dialog.c:1629 msgid "" "Your buddy has successfully authenticated you. You may want to authenticate " "your buddy as well by asking your own question." msgstr "" "Partnere sikeresen hitelesítette önt. Ez nem jelenti azt, hogy ön is biztos " "lehet partnere kilétében, ezért tegyen fel ön is egy kérdést." #: ../gtk-dialog.c:1635 msgid "Authentication failed." msgstr "A hitelesítés meghiúsult." #: ../gtk-dialog.c:1663 #, c-format msgid "Private conversation with %s started.%s" msgstr "Bizalmas beszélgetés kezdődött %s partnerrel.%s" #: ../gtk-dialog.c:1667 #, c-format msgid "Unverified conversation with %%s started.%%s" msgstr "" "Ellenőrizetlen beszélgetés kezdődött %%s partnerrel.%%s" #. This last case should never happen, since we know #. * we're in ENCRYPTED. #: ../gtk-dialog.c:1675 #, c-format msgid "Not private conversation with %s started.%s" msgstr "Nem bizalmas beszélgetés kezdődött %s partnerrel.%s" #: ../gtk-dialog.c:1681 ../gtk-dialog.c:1785 msgid " Warning: using old protocol version 1." msgstr " Figyelmeztetés: elavult protokoll használata: 1-es verzió." #: ../gtk-dialog.c:1701 #, c-format msgid "Private conversation with %s lost." msgstr "Megszűnt a bizalmas beszélgetés %s partnerrel." #: ../gtk-dialog.c:1738 #, c-format msgid "" "%s has ended his/her private conversation with you; you should do the same." msgstr "%s befejezte a bizalmas beszélgetést. Tegyen ön is így." #: ../gtk-dialog.c:1764 #, c-format msgid "Successfully refreshed the private conversation with %s.%s" msgstr "A bizalmas beszélgetés %s partnerrel megerősítésre került.%s" #: ../gtk-dialog.c:1769 #, c-format msgid "" "Successfully refreshed the unverified conversation with " "%%s.%%s" msgstr "" "Az ellenőrizetlen beszélgetés %%s partnerrel " "megerősítésre került.%%s" #. This last case should never happen, since we know #. * we're in ENCRYPTED. #: ../gtk-dialog.c:1778 #, c-format msgid "Successfully refreshed the not private conversation with %s.%s" msgstr "A nem bizalmas beszélgetés %s partnerrel megerősítésre került.%s" #: ../gtk-dialog.c:1810 #, c-format msgid "Attempting to refresh the private conversation with %s..." msgstr "%s partnerrel folyó bizalmas beszélgetés megerősítése…" #: ../gtk-dialog.c:1812 #, c-format msgid "Attempting to start a private conversation with %s..." msgstr "Bizalmas beszélgetés kezdeményezése %s partnerrel…" #: ../gtk-dialog.c:2021 ../gtk-dialog.c:2296 msgid "Not Private" msgstr "Nem bizalmas" #: ../gtk-dialog.c:2075 ../gtk-dialog.c:2482 msgid "_End private conversation" msgstr "Bizalmas beszélgetés _befejezése" #. #. * Don't show the Verify fingerprint menu option any more. You can #. * still get to the dialog through Authenticate connection -> #. * Advanced... #. * #. menuverf = gtk_menu_item_new_with_mnemonic(_("_Verify fingerprint")); #. gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuverf); #. gtk_widget_show(menuverf); #. #: ../gtk-dialog.c:2076 ../gtk-dialog.c:2500 msgid "_Authenticate buddy" msgstr "Partner _hitelesítése" #: ../gtk-dialog.c:2292 #, c-format msgid "" "The privacy status of the current conversation is now: %s" msgstr "A beszélgetés biztonságossága jelenleg %s" #: ../gtk-dialog.c:2455 msgid "OTR:" msgstr "OTR:" #: ../gtk-dialog.c:2475 msgid "OTR Messaging" msgstr "OTR üzenetküldés" #: ../gtk-ui.c:102 #, c-format msgid "Fingerprint: %.80s" msgstr "Ujjlenyomat: %.80s" #: ../gtk-ui.c:106 #, c-format msgid "No key present" msgstr "Nem érhető el kulcs" #: ../gtk-ui.c:111 #, c-format msgid "No account available" msgstr "Nem érhető el felhasználó" #: ../gtk-ui.c:171 msgid "Unused" msgstr "Használaton kívül" #: ../gtk-ui.c:177 msgid "Yes" msgstr "Igen" #: ../gtk-ui.c:177 msgid "No" msgstr "Nem" #: ../gtk-ui.c:403 msgid "Enable private messaging" msgstr "Bizalmas beszélgetés engedélyezése" #: ../gtk-ui.c:405 msgid "Automatically initiate private messaging" msgstr "Bizalmas beszélgetés automatikus kezdeményezése" #: ../gtk-ui.c:407 msgid "Require private messaging" msgstr "Bizalmas beszélgetés megkövetelése" #: ../gtk-ui.c:410 msgid "Don't log OTR conversations" msgstr "OTR beszélgetések ne kerüljenek naplózásra" #: ../gtk-ui.c:454 msgid "Show OTR button" msgstr "OTR gomb megjelenítése" #: ../gtk-ui.c:457 msgid "Show OTR button in toolbar" msgstr "OTR gomb megjelenítése az eszköztáron" #: ../gtk-ui.c:601 msgid "My private keys" msgstr "Saját személyes kulcsok" #: ../gtk-ui.c:610 msgid "Key for account:" msgstr "Kulcs a következő felhasználóhoz:" #: ../gtk-ui.c:635 msgid "Generate" msgstr "Generálás" #: ../gtk-ui.c:676 msgid "Default OTR Settings" msgstr "Alapértelmezett OTR beállítások" #: ../gtk-ui.c:703 msgid "OTR UI Options" msgstr "OTR megjelenési beállítások" #: ../gtk-ui.c:726 msgid "Screenname" msgstr "Kijelzett név" #: ../gtk-ui.c:727 msgid "Status" msgstr "Állapot" #: ../gtk-ui.c:728 msgid "Verified" msgstr "Ellenőrzött" #: ../gtk-ui.c:729 msgid "Fingerprint" msgstr "Ujjlenyomat" #: ../gtk-ui.c:730 msgid "Account" msgstr "Felhasználó" #: ../gtk-ui.c:766 msgid "Start private connection" msgstr "Bizalmas kapcsolat kezdeményezése" #: ../gtk-ui.c:774 msgid "End private connection" msgstr "Bizalmas kapcsolat befejezése" #: ../gtk-ui.c:790 msgid "Forget fingerprint" msgstr "Ujjlenyomat törlése" #: ../gtk-ui.c:841 msgid "Config" msgstr "Beállítás" #: ../gtk-ui.c:843 msgid "Known fingerprints" msgstr "Ismert ujjlenyomatok" #: ../gtk-ui.c:941 ../otr-plugin.c:606 msgid "OTR Settings" msgstr "OTR-beállítások" #. Set the title #: ../gtk-ui.c:959 #, c-format msgid "OTR Settings for %s" msgstr "%s OTR-beállításai" #. Make the cascaded checkboxes #: ../gtk-ui.c:976 msgid "Use default OTR settings for this buddy" msgstr "Alapértelmezett OTR-beállítások használata ezen partnerhez" #: ../otr-plugin.c:114 #, c-format msgid "You are not currently connected to account %s (%s)." msgstr "Jelenleg nincsen kapcsolódva %s (%s) felhasználó." #: ../otr-plugin.c:118 msgid "Not connected" msgstr "Kapcsolat nélkül" #: ../otr-plugin.c:162 #, c-format msgid "Out of memory building filenames!\n" msgstr "Állománynevek összeállítása közben elfogyott a memória.\n" #: ../otr-plugin.c:168 #, c-format msgid "Could not write private key file\n" msgstr "Nem írható a személyeskulcs-állomány.\n" #: ../otr-plugin.c:211 #, c-format msgid "Unknown account %s (%s)." msgstr "Ismeretlen felhasználó: %s (%s)." #: ../otr-plugin.c:215 msgid "Unknown account" msgstr "Ismeretlen felhasználó" #: ../otr-plugin.c:983 msgid "Off-the-Record Messaging" msgstr "Bizalmas üzenetküldés" #: ../otr-plugin.c:984 msgid "Provides private and secure conversations" msgstr "Bizalmas és biztonságos beszélgetéseket tesz lehetővé" #: ../otr-plugin.c:985 msgid "" "Preserves the privacy of IM communications by providing encryption, " "authentication, deniability, and perfect forward secrecy." msgstr "" "Biztosítja az azonnali üzenetek adatbiztonságát titkosítás, hitelesítés, " "bizonyíthatatlanság és megfelelő utólagos titkosság nyújtásával." #: ../ui.c:109 #, c-format msgid "Account %s (%s) could not be found" msgstr "%s (%s) felhasználó nem található" #: ../ui.c:113 msgid "Account not found" msgstr "A felhasználó nem található" #~ msgid "_More..." #~ msgstr "_Tovább…" #~ msgid "Advanced..." #~ msgstr "Haladó…" #~ msgid "" #~ "If your buddy uses multiple IM accounts or multiple computers, you may " #~ "have to authenticate multiple times. However, as long as they use an " #~ "account and computer that you've seen before, you don't need to " #~ "authenticate each individual conversation." #~ msgstr "" #~ "Ha partnere több azonnali üzenetküldő felhasználót vagy számítógépet " #~ "használ, lehetséges, hogy több alkalommal is hitelesíteni kell. Azonban " #~ "amíg azonos számítógépet és felhasználót használ, a hitelesítés " #~ "megismétlése nem szükséges." #~ msgid "Click here for more information about authentication in OTR." #~ msgstr "" #~ "Kattintson ide további információért az OTR hitelesítési módszeréről." #~ msgid "Enter a secret known only to %s and yourself.\n" #~ msgstr "Adjon meg egy titkot, amelyet csak ön és %s ismer.\n" pidgin-otr-4.0.0/po/README0000644000175000017500000000036712020421670012006 00000000000000To get the latest list of strings to translate: intltool-update --pot To merge the latest list into an existing translation file fr.po: intltool-update fr When updating a .po file, check it for sanity: msgfmt -c --check-accelerators=_ fr.po pidgin-otr-4.0.0/po/es.po0000644000175000017500000006114612020421670012077 00000000000000# Off-the-Record Messaging plugin for pidgin. # Copyright (C) 2004-2012 Ian Goldberg, Rob Smits, Chris Alexander, Willy Lew, # Lisa Du, Nikita Borisov # This file is distributed under the same license as the pidgin-otr package. # Ian Goldberg , 2012 # msgid "" msgstr "" "Project-Id-Version: pidgin-otr 4.0.0.es\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-06-14 09:45-0400\n" "PO-Revision-Date: 2012-06-24 14:35-0500\n" "Last-Translator: Juan Rodriguez \n" "Language-Team: ~Español~ Juan Rodriguez \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../gtk-dialog.c:332 ../gtk-dialog.c:1141 ../gtk-dialog.c:1145 #: ../gtk-dialog.c:1547 ../gtk-dialog.c:1584 ../gtk-dialog.c:1673 #: ../gtk-dialog.c:1748 ../gtk-dialog.c:2749 msgid "?lang=en" msgstr "?lang=es" #: ../gtk-dialog.c:480 msgid "" "Your buddy is attempting to determine if he or she is really talking to you, " "or if it's someone pretending to be you. Your buddy has asked a question, " "indicated below. To authenticate to your buddy, enter the answer and click " "OK." msgstr "" "Tú compañero/ra está tratando de determinar si realmente está hablando " "contigo, o si se trata de alguien haciéndose pasar por ti. Tú compañero/ra " "ha hecho una pregunta, la cual se indica a continuación. Para autenticar, " "introduce la respuesta y has clic en OK." #: ../gtk-dialog.c:487 msgid "" "To authenticate using a question, pick a question whose answer is known only " "to you and your buddy. Enter this question and this answer, then wait for " "your buddy to enter the answer too. If the answers don't match, then you " "may be talking to an imposter." msgstr "" "Para autenticar mediante una pregunta, escoge una pregunta cuya respuesta " "sea conocida solamente por ti y tú compañero/ra. Ingresa esta pregunta y su " "respuesta, ahora espera que tú compañero/ra responda la pregunta. Si las " "respuestas no coinciden, entonces puede ser que estés hablando con un " "impostor." #: ../gtk-dialog.c:505 #, c-format msgid "This is the question asked by your buddy:" msgstr "Esta es la pregunta hecha por tú compañero/ra:" #: ../gtk-dialog.c:508 #, c-format msgid "Enter question here:" msgstr "Introduce la pregunta aquí:" #: ../gtk-dialog.c:540 ../gtk-dialog.c:624 msgid "This buddy is already authenticated." msgstr "Este compañero ya ha sido autenticado." #: ../gtk-dialog.c:552 #, c-format msgid "Enter secret answer here (case sensitive):" msgstr "Ingresa la respuesta secreta aquí (sensible a mayúsculas):" #: ../gtk-dialog.c:593 msgid "" "To authenticate, pick a secret known only to you and your buddy. Enter this " "secret, then wait for your buddy to enter it too. If the secrets don't " "match, then you may be talking to an imposter." msgstr "" "Para autenticar, escoge un secreto conocido solamente por ti y tú " "compañero/ra. Ingresa este secreto, ahora espera que tú compañero/ra lo " "ingrese también. Si el secreto no coincide, entonces puede ser que estés " "hablando con un impostor." #: ../gtk-dialog.c:607 #, c-format msgid "Enter secret here:" msgstr "Introduce el secreto aquí:" #: ../gtk-dialog.c:657 ../gtk-dialog.c:1408 msgid "" "To verify the fingerprint, contact your buddy via some other " "authenticated channel, such as the telephone or GPG-signed email. Each of " "you should tell your fingerprint to the other." msgstr "" "Para verificar la huella digital, contacta a tú compañero/ra por medio de " "otro canal seguro, como el teléfono o correo electrónico firmado por " "GPG. Cada uno deberá decirse la huella digital del otro." #: ../gtk-dialog.c:661 msgid "" "If everything matches up, you should chose I have in the menu below." msgstr "" "Si todo concuerda, deberás indicarlo en el menú posterior eligiendo yo he " "Verificado la huella digital." #: ../gtk-dialog.c:672 ../gtk-dialog.c:1397 msgid "[none]" msgstr "[nada]" #: ../gtk-dialog.c:679 ../gtk-dialog.c:1051 ../gtk-dialog.c:1404 #: ../gtk-dialog.c:1453 ../gtk-ui.c:212 ../otr-plugin.c:127 #: ../otr-plugin.c:300 ../ui.c:112 msgid "Unknown" msgstr "Desconocido" #: ../gtk-dialog.c:680 #, c-format msgid "" "Fingerprint for you, %s (%s):\n" "%s\n" "\n" "Purported fingerprint for %s:\n" "%s\n" msgstr "" "Huella digital para ti, %s (%s):\n" "%s\n" "\n" "Huella digital pretendida para %s:\n" "%s\n" #: ../gtk-dialog.c:736 msgid "How would you like to authenticate your buddy?" msgstr "¿Cómo te gustaría autenticar a tú compañero/ra?" #: ../gtk-dialog.c:745 msgid "Question and answer" msgstr "Pregunta y respuesta" #: ../gtk-dialog.c:748 msgid "Shared secret" msgstr "Secreto compartido" #: ../gtk-dialog.c:751 msgid "Manual fingerprint verification" msgstr "Verificación manual de la huella digital" #: ../gtk-dialog.c:802 msgid "_Authenticate" msgstr "_Autenticar" #: ../gtk-dialog.c:836 msgid "" "Authenticating a buddy helps ensure that the person you are talking to is " "who he or she claims to be." msgstr "" "Autenticar a un compañero/ra te asegura que la persona con la que " "supuestamente estás hablando es quien dice ser." #. Translators: you are asked to authenticate yourself #: ../gtk-dialog.c:946 msgid "Authenticating to Buddy" msgstr "Autenticando tu identidad a tú Compañero/ra" #. Translators: you asked your buddy to authenticate him/herself #: ../gtk-dialog.c:948 msgid "Authenticating Buddy" msgstr "Autenticando la identidad de tú compañero/ra" #: ../gtk-dialog.c:975 #, c-format msgid "Authenticating to %s" msgstr "Autenticando hacia %s" #: ../gtk-dialog.c:976 #, c-format msgid "Authenticating %s" msgstr "Autenticando a %s" #: ../gtk-dialog.c:1009 msgid "Waiting for buddy..." msgstr "Esperando por tú compañero/ra..." #: ../gtk-dialog.c:1042 msgid "Generating private key" msgstr "Generando la llave privada" #: ../gtk-dialog.c:1043 msgid "Please wait" msgstr "Por favor, espere" #. Create the Please Wait... dialog #: ../gtk-dialog.c:1054 #, c-format msgid "Generating private key for %s (%s)..." msgstr "Generando la llave privada para %s (%s)..." #: ../gtk-dialog.c:1099 #, c-format msgid "%s Done." msgstr "%s Terminado." #: ../gtk-dialog.c:1139 #, c-format msgid "" "%s is contacting you from an unrecognized computer. You should authenticate this buddy." msgstr "" "%s te esta contactando desde una computadora desconocida. Deberías de " "autenticar a este compañero/ra." #: ../gtk-dialog.c:1143 #, c-format msgid "" "%s has not been authenticated yet. You should authenticate this buddy." msgstr "" "%s todavía no ha sido autenticado. Deberías " "autenticar a este compañero/ra." #: ../gtk-dialog.c:1195 ../gtk-dialog.c:1969 ../gtk-dialog.c:2745 #: ../gtk-ui.c:83 msgid "Finished" msgstr "Terminado" #: ../gtk-dialog.c:1196 ../gtk-dialog.c:1966 ../gtk-dialog.c:2742 #: ../gtk-ui.c:82 msgid "Private" msgstr "Privado" #: ../gtk-dialog.c:1197 ../gtk-dialog.c:1963 ../gtk-dialog.c:2739 #: ../gtk-ui.c:81 msgid "Unverified" msgstr "No verificado" #: ../gtk-dialog.c:1198 ../gtk-ui.c:80 msgid "Not private" msgstr "No privado" #: ../gtk-dialog.c:1201 msgid "OTR" msgstr "OTR" #. Translators: the following four messages should give alternative #. * sentences. The user selects the first or second message in a combo box; #. * the third message, a new line, a fingerprint, a new line, and #. * the fourth message will follow it. #: ../gtk-dialog.c:1351 msgid "I have not" msgstr "Yo no he" #. 2nd message #: ../gtk-dialog.c:1353 msgid "I have" msgstr "Yo he" #. 3rd message #: ../gtk-dialog.c:1356 msgid " verified that this is in fact the correct" msgstr " verificado que en verdad esta es la correcta" #. 4th message #: ../gtk-dialog.c:1366 #, c-format msgid "fingerprint for %s." msgstr "huella digital para %s." #: ../gtk-dialog.c:1393 #, c-format msgid "Verify fingerprint for %s" msgstr "Verificar huella digital para %s" #: ../gtk-dialog.c:1405 #, c-format msgid "" "%s %s\n" "\n" "Fingerprint for you, %s (%s):\n" "%s\n" "\n" "Purported fingerprint for %s:\n" "%s\n" msgstr "" "%s %s\n" "\n" "Huella digital para ti, %s (%s):\n" "%s\n" "\n" "Huella digital pretendida para %s:\n" "%s\n" #: ../gtk-dialog.c:1412 msgid "" "If everything matches up, you should indicate in the above dialog that you " "have verified the fingerprint." msgstr "" "Si todo coincide, tendrás que indicar en el cuadro de diálogo que tu " "has verificado la huella digital." #: ../gtk-dialog.c:1418 ../gtk-ui.c:844 msgid "Verify fingerprint" msgstr "Verificar la huella digital" #: ../gtk-dialog.c:1445 #, c-format msgid "Authentication from %s" msgstr "Autenticación de %s" #: ../gtk-dialog.c:1448 #, c-format msgid "Authenticate %s" msgstr "Autenticar %s" #: ../gtk-dialog.c:1456 msgid "Authenticate Buddy" msgstr "Autentica a tú Compañero/ra" #: ../gtk-dialog.c:1487 msgid "An error occurred during authentication." msgstr "A ocurrido un error durante la autenticación." #: ../gtk-dialog.c:1502 msgid "Authentication successful." msgstr "Autenticación exitosa." #: ../gtk-dialog.c:1505 msgid "" "Your buddy has successfully authenticated you. You may want to authenticate " "your buddy as well by asking your own question." msgstr "" "Tú Compañero/ra ha logrado autenticar tu identidad. Tu también deberías de " "autenticar a tú compañero/ra haciéndole una pregunta." #: ../gtk-dialog.c:1511 msgid "Authentication failed." msgstr "Autenticación fallida." #: ../gtk-dialog.c:1541 #, c-format msgid "Private conversation with %s started.%s%s" msgstr "Conversación privada con %s iniciada.%s%s" #: ../gtk-dialog.c:1545 #, c-format msgid "Unverified conversation with %%s started.%%s%%s" msgstr "Conversación No verificada con %%s started.%%s%%s" #. This last case should never happen, since we know #. * we're in ENCRYPTED. #: ../gtk-dialog.c:1553 #, c-format msgid "Not private conversation with %s started.%s%s" msgstr "Conversación NO Privada con %s iniciada.%s%s" #: ../gtk-dialog.c:1559 ../gtk-dialog.c:1686 msgid " Warning: using old protocol version 1." msgstr " Cuidado: utilizando el protocolo antiguo version 1." #: ../gtk-dialog.c:1561 msgid " Your client is logging this conversation." msgstr " Tu cliente de mensajería instantánea está transcribiendo la " "conversación" #: ../gtk-dialog.c:1562 msgid " Your client is not logging this conversation." msgstr " Tu cliente de mensajería no está transcribiendo la conversación." #: ../gtk-dialog.c:1581 #, c-format msgid "" "Your buddy is logged in multiple times and OTR has established multiple sessions. Use the icon menu above if you wish to select the " "outgoing session." msgstr "" "Tú compañero/ra esta conectado/da múltiples veces y OTR ha establecido " "múltiple sesiones. Si deseas seleccionar otra sesión " "de salida, utiliza el menú del icono en la parte superior." #: ../gtk-dialog.c:1601 #, c-format msgid "Private conversation with %s lost." msgstr "Conversación privada con %s perdida." #: ../gtk-dialog.c:1638 #, c-format msgid "" "%s has ended his/her private conversation with you; you should do the same." msgstr "" "%s ha terminado su conversación privada; tu deberías de hacer lo mismo." #: ../gtk-dialog.c:1665 #, c-format msgid "Successfully refreshed the private conversation with %s.%s" msgstr "Se ha actualizado correctamente la conversación privada con %s.%s" #: ../gtk-dialog.c:1670 #, c-format msgid "" "Successfully refreshed the unverified conversation with " "%%s.%%s" msgstr "" "Se ha actualizado correctamente la conversación " "no verificada con %%s.%%s" #. This last case should never happen, since we know #. * we're in ENCRYPTED. #: ../gtk-dialog.c:1679 #, c-format msgid "Successfully refreshed the not private conversation with %s.%s" msgstr "Se ha actualizado correctamente la conversación no privada con %s.%s" #: ../gtk-dialog.c:1712 #, c-format msgid "Attempting to refresh the private conversation with %s..." msgstr "Intentando actualizar la conversación privada con %s..." #: ../gtk-dialog.c:1714 #, c-format msgid "Attempting to start a private conversation with %s..." msgstr "Intentando iniciar una conversación privada con %s..." #: ../gtk-dialog.c:1899 ../gtk-dialog.c:2026 msgid "Start _private conversation" msgstr "Iniciar conversación _privada" #: ../gtk-dialog.c:1900 msgid "Refresh _private conversation" msgstr "Actualizar conversación _privada" #: ../gtk-dialog.c:1905 msgid "Re_authenticate buddy" msgstr "Re_autentica tú compañero/ra" #: ../gtk-dialog.c:1906 ../gtk-dialog.c:2030 msgid "_Authenticate buddy" msgstr "_Autentica tú compañero/ra" #: ../gtk-dialog.c:1960 ../gtk-dialog.c:2736 msgid "Not Private" msgstr "No Privado" #: ../gtk-dialog.c:1982 msgid "_What's this?" msgstr "¿_Qué es esto?" #: ../gtk-dialog.c:2028 msgid "_End private conversation" msgstr "_Terminar la conversación privada" #: ../gtk-dialog.c:2207 ../gtk-dialog.c:2255 #, c-format msgid "" "Warning: The selected outgoing OTR session (%u) is not the most recently " "active one (%u). Your buddy may not receive your messages. Use the icon menu " "above to select a different outgoing session." msgstr "" "Cuidado: La sesión OTR de salida seleccionada (%u) no es la más " "recientemente activada (% u). Puede ser que tú compañero/ra no pueda recibir " "tus mensajes. Para seleccionar otra sesión de salida, utiliza el menú del " "icono en la parte superior." #: ../gtk-dialog.c:2271 msgid "Send to most secure" msgstr "Enviar al más seguro" #: ../gtk-dialog.c:2273 msgid "Send to most recent" msgstr "Enviar al más reciente" #: ../gtk-dialog.c:2377 #, c-format msgid "Session %u" msgstr "Sesión %u" #: ../gtk-dialog.c:2395 ../gtk-dialog.c:2506 msgid "Select" msgstr "Seleccionar" #: ../gtk-dialog.c:2410 msgid "Selected" msgstr "Seleccionado" #: ../gtk-dialog.c:2731 #, c-format msgid "" "The privacy status of the current conversation is now: %s" msgstr "" "El estado de privacidad de la conversación actual ahora es: %s" #: ../gtk-dialog.c:2956 msgid "OTR Messaging" msgstr "Mensajería OTR" #: ../gtk-ui.c:103 #, c-format msgid "Fingerprint: %.80s" msgstr "Huella digital %.80s" #: ../gtk-ui.c:107 #, c-format msgid "No key present" msgstr "No existe una llave" #: ../gtk-ui.c:112 #, c-format msgid "No account available" msgstr "No hay cuenta disponible" #: ../gtk-ui.c:179 msgid "Unused" msgstr "Sin utilizar" #: ../gtk-ui.c:208 msgid "Yes" msgstr "Sí" #: ../gtk-ui.c:208 msgid "No" msgstr "No" #: ../gtk-ui.c:473 msgid "Enable private messaging" msgstr "Habilitar mensajes privados" #: ../gtk-ui.c:475 msgid "Automatically initiate private messaging" msgstr "Iniciar automáticamente mensajes privados" #: ../gtk-ui.c:477 msgid "Require private messaging" msgstr "Requerir mensajes privados" #: ../gtk-ui.c:480 msgid "Don't log OTR conversations" msgstr "No transcribir conversaciones OTR" #: ../gtk-ui.c:524 msgid "Show OTR button in toolbar" msgstr "Mostrar el botón de OTR en la barra de herramientas" #: ../gtk-ui.c:663 msgid "My private keys" msgstr "Mis llaves privadas" #: ../gtk-ui.c:672 msgid "Key for account:" msgstr "Llave para cuenta:" #: ../gtk-ui.c:697 msgid "Generate" msgstr "Generar" #: ../gtk-ui.c:738 msgid "Default OTR Settings" msgstr "Restaurar la configuración predeterminada de OTR" #: ../gtk-ui.c:765 msgid "OTR UI Options" msgstr "Opciones de interfaz de usario OTR" #: ../gtk-ui.c:788 msgid "Screenname" msgstr "Nombre de usuario" #: ../gtk-ui.c:789 msgid "Status" msgstr "Estado" #: ../gtk-ui.c:790 msgid "Verified" msgstr "Verificado" #: ../gtk-ui.c:791 msgid "Fingerprint" msgstr "Huella digital" #: ../gtk-ui.c:792 msgid "Account" msgstr "Cuenta" #: ../gtk-ui.c:828 msgid "Start private connection" msgstr "Iniciar conexión privada" #: ../gtk-ui.c:836 msgid "End private connection" msgstr "Terminar conexión privada" #: ../gtk-ui.c:852 msgid "Forget fingerprint" msgstr "Olvidar huella digital" #: ../gtk-ui.c:903 msgid "Config" msgstr "Config" #: ../gtk-ui.c:905 msgid "Known fingerprints" msgstr "Huellas digitales conocidas" #: ../gtk-ui.c:1003 ../otr-plugin.c:964 msgid "OTR Settings" msgstr "Configuración de OTR" #. Set the title #: ../gtk-ui.c:1021 #, c-format msgid "OTR Settings for %s" msgstr "Configuración OTR para %s" #. Make the cascaded checkboxes #: ../gtk-ui.c:1038 msgid "Use default OTR settings for this buddy" msgstr "Utilizar configuración predeterminada de OTR para este compañero/ra" #: ../otr-plugin.c:125 #, c-format msgid "You are not currently connected to account %s (%s)." msgstr "Actualmente no estas conectado a la cuenta %s (%s)." #: ../otr-plugin.c:129 msgid "Not connected" msgstr "No está conectado" #: ../otr-plugin.c:212 ../otr-plugin.c:254 #, c-format msgid "Out of memory building filenames!\n" msgstr "No hay memoria suficiente para construir nombres de archivo!\n" #: ../otr-plugin.c:224 ../otr-plugin.c:260 #, c-format msgid "Could not write private key file\n" msgstr "No se pudo escribir el archivo de la llave privada\n" #: ../otr-plugin.c:298 #, c-format msgid "Unknown account %s (%s)." msgstr "Cuenta desconocida %s (%s)." #: ../otr-plugin.c:302 msgid "Unknown account" msgstr "Cuenta desconocida" #: ../otr-plugin.c:364 msgid "Error occurred encrypting message." msgstr "Ocurrió un error durante el cifrado de mensaje." #: ../otr-plugin.c:368 #, c-format msgid "You sent encrypted data to %s, who wasn't expecting it." msgstr "Enviaste datos cifrados a %s, quien no lo estaba esperando." #: ../otr-plugin.c:374 msgid "You transmitted an unreadable encrypted message." msgstr "Transmitiste un ilegible mensaje cifrado." #: ../otr-plugin.c:377 msgid "You transmitted a malformed data message." msgstr "Transmitiste un mensage de datos mal formado" #: ../otr-plugin.c:390 msgid "[resent]" msgstr "[resentir]" #: ../otr-plugin.c:459 #, c-format msgid "You attempted to send an unencrypted message to %s" msgstr "Has intentado enviar un mensaje sin cifrar a %s" #: ../otr-plugin.c:462 msgid "Attempting to start a private conversation..." msgstr "Intentando iniciar una conversación privada..." #: ../otr-plugin.c:464 msgid "OTR Policy Violation" msgstr "Violación de la Póliza de OTR" #: ../otr-plugin.c:465 msgid "" "Unencrypted messages to this recipient are not allowed. Attempting to start " "a private conversation.\n" "\n" "Your message will be retransmitted when the private conversation starts." msgstr "" "Mensajes sin cifrar a este destinatario no están permitidos. Intentando " "iniciar una conversación privada.\n" "\n" "Tu mensaje será retransmitido cuando la conversación privada sea iniciada." #: ../otr-plugin.c:474 msgid "" "An error occurred when encrypting your message. The message was not sent." msgstr "Ocurrió un error durante el cifrado de tu mensaje. El mensaje no fue " "enviado." #: ../otr-plugin.c:476 msgid "Error encrypting message" msgstr "Error durante el cifrado del mensaje" #: ../otr-plugin.c:477 msgid "An error occurred when encrypting your message" msgstr "Ocurrió un error durante el cifrado de tu mensaje" #: ../otr-plugin.c:478 msgid "The message was not sent." msgstr "El mensaje no fue enviado." #: ../otr-plugin.c:481 #, c-format msgid "%s has already closed his/her private connection to you" msgstr "%s ya ha cerrado su conexión privada" #: ../otr-plugin.c:484 msgid "" "Your message was not sent. Either end your private conversation, or restart " "it." msgstr "" "Tu mensaje no fue enviado. Termina o reinicia la conversación privada" #: ../otr-plugin.c:487 msgid "Private connection closed" msgstr "Conexión privada cerrada" #: ../otr-plugin.c:488 msgid "" "Your message was not sent. Either close your private connection to him, or " "refresh it." msgstr "" "Tu mensaje no fue enviado. Termina o actualiza la conversación privada" #: ../otr-plugin.c:498 msgid "Error setting up private conversation: Malformed message received" msgstr "Error al configurar la conversación privada: Mensaje mal formado " "recibido" #: ../otr-plugin.c:502 #, c-format msgid "Error setting up private conversation: %s" msgstr "Error al configurar la conversación privada: %s" #: ../otr-plugin.c:509 ../otr-plugin.c:520 ../otr-plugin.c:547 #: ../otr-plugin.c:555 ../otr-plugin.c:573 msgid "OTR Error" msgstr "OTR Error" #: ../otr-plugin.c:516 msgid "" "We are receiving our own OTR messages. You are either trying to talk to " "yourself, or someone is reflecting your messages back at you." msgstr "" "Estamos recibiendo nuestros propios mensajes de OTR. O estas tratando de " "hablar contigo mismo, o alguien te esta reflejando tus mensajes." #: ../otr-plugin.c:520 msgid "We are receiving our own OTR messages." msgstr "Estamos recibiendo nuestros propios mensajes de OTR" #: ../otr-plugin.c:521 msgid "" "You are either trying to talk to yourself, or someone is reflecting your " "messages back at you." msgstr "" "O estas tratando de hablar contigo mismo, o alguien te esta reflejando tus " "mensajes." #: ../otr-plugin.c:526 #, c-format msgid "The last message to %s was resent." msgstr "El último mensaje a %s ha sido reenviado." #: ../otr-plugin.c:530 msgid "Message resent" msgstr "Mensaje reenviado" #: ../otr-plugin.c:534 #, c-format msgid "" "The encrypted message received from %s is unreadable, as you are not " "currently communicating privately." msgstr "" "El mensaje cifrado recibido de %s es ilegible, ya que actualmente tu no " "estas comunicandote privadamente." #: ../otr-plugin.c:539 msgid "Unreadable message" msgstr "Ilegible mensaje" #: ../otr-plugin.c:543 #, c-format msgid "We received an unreadable encrypted message from %s." msgstr "Hemos recibido un ilegible mensaje cifrado de %s." #: ../otr-plugin.c:551 #, c-format msgid "We received a malformed data message from %s." msgstr "Hemos recibido datos mal formados de %s." #: ../otr-plugin.c:559 #, c-format msgid "Heartbeat received from %s.\n" msgstr "Latido recibido de %s.\n" #: ../otr-plugin.c:565 #, c-format msgid "Heartbeat sent to %s.\n" msgstr "Latido enviado a %s.\n" #: ../otr-plugin.c:576 #, c-format msgid "" "The following message received from %s was not encrypted: [%" "s]" msgstr "" "El siguiente mensaje recibido de %s no está cifrado: [%s]" "" #: ../otr-plugin.c:581 msgid "Received unencrypted message" msgstr "Recibido mensage no cifrado" #: ../otr-plugin.c:587 #, c-format msgid "Unrecognized OTR message received from %s.\n" msgstr "Desconocido mensaje de OTR recibido de %s.\n" #: ../otr-plugin.c:596 #, c-format msgid "" "%s has sent a message intended for a different session. If you are logged in " "multiple times, another session may have received the message." msgstr "" "%s ha enviado un mensaje destinado a una sesión diferente. Si estás " "conectado múltiples veces, puede ser que otra sesión ha recibido el mensaje." #: ../otr-plugin.c:602 msgid "Received message for a different session" msgstr "Recibí un mensaje para una sesión diferente" #. 2013-01-01 #: ../otr-plugin.c:1193 ../otr-plugin.c:1220 #, c-format msgid "OTR PLUGIN v%s" msgstr "OTR COMPLEMENTO v%s" #: ../otr-plugin.c:1202 #, c-format msgid "" "This beta copy of the Off-the-Record Messaging v%s Pidgin plugin has expired " "as of 2013-01-01. Please look for an updated release at http://otr." "cypherpunks.ca/" msgstr "" "Esta copia de la beta del complemento Off-the-Record mensajería para v%s " "Pidgin ha expirado a partir de 2013-01-01. Por favor, busque una versión " "actualizada a http://otr.cypherpunks.ca/" #: ../otr-plugin.c:1229 #, c-format msgid "" "You have enabled a beta version of the Off-the-Record Messaging v%s Pidgin " "plugin. This version is intended for testing purposes only and is not for " "general purpose use." msgstr "" "Has activado una version beta del complemento Off-the-Record Mensajería para " "v%s Pidgin. Esta versión está diseñada, solamente, para propósitos de prueba " "y no para uso general." #: ../otr-plugin.c:1414 msgid "Off-the-Record Messaging" msgstr "Off-the-Record Mensajería" #: ../otr-plugin.c:1415 msgid "Provides private and secure conversations" msgstr "Proporciona conversaciones privadas y seguras" #: ../otr-plugin.c:1416 msgid "" "Preserves the privacy of IM communications by providing encryption, " "authentication, deniability, and perfect forward secrecy." msgstr "" "Conserva la privacidad de las comunicaciones de mensajería instantánea, " "proporcionando cifrado, autenticación, negación, y confidencialidad directa " "perfecta." #: ../ui.c:110 #, c-format msgid "Account %s (%s) could not be found" msgstr "La cuenta %s (%s) no fue encontrada" #: ../ui.c:114 msgid "Account not found" msgstr "La cuenta no ha sido encontrada" pidgin-otr-4.0.0/po/nn.po0000644000175000017500000005742612020421670012111 00000000000000# Off-the-Record Messaging plugin for pidgin. # Copyright (C) 2004-2012 Ian Goldberg, Rob Smits, Chris Alexander, Willy Lew, # Lisa Du, Nikita Borisov # This file is distributed under the same license as the pidgin-otr package. # Ian Goldberg , 2012 # msgid "" msgstr "" "Project-Id-Version: pidgin-otr 4.0.0.nn\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-06-08 22:00+0200\n" "PO-Revision-Date: 2012-06-26 22:01+0200\n" "Last-Translator: Yngve Spjeld Landro \n" "Language-Team: Norsk (nynorsk) <>\n" "Language: nn\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n!=1);\n" #: ../gtk-dialog.c:332 ../gtk-dialog.c:1141 ../gtk-dialog.c:1145 #: ../gtk-dialog.c:1547 ../gtk-dialog.c:1584 ../gtk-dialog.c:1673 #: ../gtk-dialog.c:1748 ../gtk-dialog.c:2749 msgid "?lang=en" msgstr "?lang=nn" #: ../gtk-dialog.c:480 msgid "" "Your buddy is attempting to determine if he or she is really talking to you, " "or if it's someone pretending to be you. Your buddy has asked a question, " "indicated below. To authenticate to your buddy, enter the answer and click " "OK." msgstr "" "Kontakten din prøver å avgjera om han/ho verkeleg taler med deg eller om det " "er nokon som gjev seg ut for å vera deg. Kontakten har stilt eit spørsmål " "nedanfor. For å autentisera deg mot vedkomande må du skriva inn svaret og " "klikka OK." #: ../gtk-dialog.c:487 msgid "" "To authenticate using a question, pick a question whose answer is known only " "to you and your buddy. Enter this question and this answer, then wait for " "your buddy to enter the answer too. If the answers don't match, then you " "may be talking to an imposter." msgstr "" "Du kan autentisera ved å stilla eit spørsmål som berre du og kontakten din " "kjenner svaret på. Skriv inn spørsmålet og svaret. Vent deretter på at " "kontakten svarer. Om svara ikkje samsvarer kan det vera at du taler med ein " "svindlar." #: ../gtk-dialog.c:505 #, c-format msgid "This is the question asked by your buddy:" msgstr "Dette er spørsmålet kontakten din stilte:" #: ../gtk-dialog.c:508 #, c-format msgid "Enter question here:" msgstr "Skriv spørsmålet her:" #: ../gtk-dialog.c:540 ../gtk-dialog.c:624 msgid "This buddy is already authenticated." msgstr "Kontakten er allereie autentisert." #: ../gtk-dialog.c:552 #, c-format msgid "Enter secret answer here (case sensitive):" msgstr "" "Skriv inn det hemmelege svaret her (skil mellom store og små bokstavar):" #: ../gtk-dialog.c:593 msgid "" "To authenticate, pick a secret known only to you and your buddy. Enter this " "secret, then wait for your buddy to enter it too. If the secrets don't " "match, then you may be talking to an imposter." msgstr "" "Du autentiserer kontakten ved å velja ein løyndom som berre du og kontakten " "kjenner til. Skriv inn løyndomen, vent deretter på at kontakten skriv det " "same. Om dei ikkje samsvarer kan det vera at du taler med ein svindlar." #: ../gtk-dialog.c:607 #, c-format msgid "Enter secret here:" msgstr "Skriv løyndommen her:" #: ../gtk-dialog.c:657 ../gtk-dialog.c:1408 msgid "" "To verify the fingerprint, contact your buddy via some other " "authenticated channel, such as the telephone or GPG-signed email. Each of " "you should tell your fingerprint to the other." msgstr "" "For å stadfesta fingeravtrykket vender du deg til kontakten din ved hjelp av " "ein annan autentisert kanal som t.d. telefonen eller ei gpg-signert e-" "postmelding. Begge må opplysa den andre om fingeravtrykket sitt." #: ../gtk-dialog.c:661 msgid "" "If everything matches up, you should chose I have in the menu below." msgstr "Om alt samsvarer, bør du velja Eg har i menyen nedanfor." #: ../gtk-dialog.c:672 ../gtk-dialog.c:1397 msgid "[none]" msgstr "[ingen]" #: ../gtk-dialog.c:679 ../gtk-dialog.c:1051 ../gtk-dialog.c:1404 #: ../gtk-dialog.c:1453 ../gtk-ui.c:212 ../otr-plugin.c:127 #: ../otr-plugin.c:300 ../ui.c:112 msgid "Unknown" msgstr "Ukjend" #: ../gtk-dialog.c:680 #, c-format msgid "" "Fingerprint for you, %s (%s):\n" "%s\n" "\n" "Purported fingerprint for %s:\n" "%s\n" msgstr "" "Fingeravtrykket ditt, %s (%s):\n" "%s\n" "\n" "Påstått fingeravtrykk for %s:\n" "%s\n" #: ../gtk-dialog.c:736 msgid "How would you like to authenticate your buddy?" msgstr "Korleis vil du autentisera kontakten din?" #: ../gtk-dialog.c:745 msgid "Question and answer" msgstr "Spørsmål og svar" #: ../gtk-dialog.c:748 msgid "Shared secret" msgstr "Delt løyndom" #: ../gtk-dialog.c:751 msgid "Manual fingerprint verification" msgstr "Manuell stadfesting av fingeravtrykk" #: ../gtk-dialog.c:802 msgid "_Authenticate" msgstr "_Autentiser" #: ../gtk-dialog.c:836 msgid "" "Authenticating a buddy helps ensure that the person you are talking to is " "who he or she claims to be." msgstr "" "Du sikrar at personen du taler med verkeleg er den han/ho seier vedkomande " "er ved å autentisera kontakten." #. Translators: you are asked to authenticate yourself #: ../gtk-dialog.c:946 msgid "Authenticating to Buddy" msgstr "Autentiserer deg mot kontakten din" #. Translators: you asked your buddy to authenticate him/herself #: ../gtk-dialog.c:948 msgid "Authenticating Buddy" msgstr "Autentiserer kontakten" #: ../gtk-dialog.c:975 #, c-format msgid "Authenticating to %s" msgstr "Autentiserer deg mot %s" #: ../gtk-dialog.c:976 #, c-format msgid "Authenticating %s" msgstr "Autentiserer %s" #: ../gtk-dialog.c:1009 msgid "Waiting for buddy..." msgstr "Ventar på kontakten …" #: ../gtk-dialog.c:1042 msgid "Generating private key" msgstr "Lagar den private nøkkelen" #: ../gtk-dialog.c:1043 msgid "Please wait" msgstr "Vent …" #. Create the Please Wait... dialog #: ../gtk-dialog.c:1054 #, c-format msgid "Generating private key for %s (%s)..." msgstr "Lagar den private nøkkelen for %s (%s) …" #: ../gtk-dialog.c:1099 #, c-format msgid "%s Done." msgstr "%s utført." #: ../gtk-dialog.c:1139 #, c-format msgid "" "%s is contacting you from an unrecognized computer. You should authenticate this buddy." msgstr "" "%s kontaktar deg frå ei ukjend datamaskin. Du bør autentisera denne kontakten." #: ../gtk-dialog.c:1143 #, c-format msgid "" "%s has not been authenticated yet. You should authenticate this buddy." msgstr "" "%s er enno ikkje vorten autentisert. Du bør autentisera " "denne kontakten." #: ../gtk-dialog.c:1195 ../gtk-dialog.c:1969 ../gtk-dialog.c:2745 #: ../gtk-ui.c:83 msgid "Finished" msgstr "Avslutta" #: ../gtk-dialog.c:1196 ../gtk-dialog.c:1966 ../gtk-dialog.c:2742 #: ../gtk-ui.c:82 msgid "Private" msgstr "Privat" #: ../gtk-dialog.c:1197 ../gtk-dialog.c:1963 ../gtk-dialog.c:2739 #: ../gtk-ui.c:81 msgid "Unverified" msgstr "Ikkje stadfesta" #: ../gtk-dialog.c:1198 ../gtk-ui.c:80 msgid "Not private" msgstr "Ikkje privat" #: ../gtk-dialog.c:1201 msgid "OTR" msgstr "OTR" #. Translators: the following four messages should give alternative #. * sentences. The user selects the first or second message in a combo box; #. * the third message, a new line, a fingerprint, a new line, and #. * the fourth message will follow it. #: ../gtk-dialog.c:1351 msgid "I have not" msgstr "Eg har ikkje" #. 2nd message #: ../gtk-dialog.c:1353 msgid "I have" msgstr "Eg har" #. 3rd message #: ../gtk-dialog.c:1356 msgid " verified that this is in fact the correct" msgstr " stadfesta at dette verkeleg er det rette" #. 4th message #: ../gtk-dialog.c:1366 #, c-format msgid "fingerprint for %s." msgstr "fingeravtrykket for %s." #: ../gtk-dialog.c:1393 #, c-format msgid "Verify fingerprint for %s" msgstr "Stadfest fingeravtrykket for %s" #: ../gtk-dialog.c:1405 #, c-format msgid "" "%s %s\n" "\n" "Fingerprint for you, %s (%s):\n" "%s\n" "\n" "Purported fingerprint for %s:\n" "%s\n" msgstr "" "%s %s\n" "\n" "Fingeravtrykket ditt, %s (%s):\n" "%s\n" "\n" "Påstått fingeravtrykk for %s:\n" "%s\n" #: ../gtk-dialog.c:1412 msgid "" "If everything matches up, you should indicate in the above dialog that you " "have verified the fingerprint." msgstr "" "Om alt samsvarer, bør du visa i vindauget ovanfor at du verkeleg har " "stadfesta fingeravtrykket." #: ../gtk-dialog.c:1418 ../gtk-ui.c:844 msgid "Verify fingerprint" msgstr "Stadfest fingeravtrykket" #: ../gtk-dialog.c:1445 #, c-format msgid "Authentication from %s" msgstr "Autentiser frå %s" #: ../gtk-dialog.c:1448 #, c-format msgid "Authenticate %s" msgstr "Autentiser %s" #: ../gtk-dialog.c:1456 msgid "Authenticate Buddy" msgstr "Autentiser kontakten" #: ../gtk-dialog.c:1487 msgid "An error occurred during authentication." msgstr "Det oppstod ein feil under autentiseringa." #: ../gtk-dialog.c:1502 msgid "Authentication successful." msgstr "Autentiseringa var vellykka." #: ../gtk-dialog.c:1505 msgid "" "Your buddy has successfully authenticated you. You may want to authenticate " "your buddy as well by asking your own question." msgstr "" "Kontakten din har autentisert deg. Du vil kanskje autentisera han/ho du òg " "ved å stilla ditt eige spørsmål." #: ../gtk-dialog.c:1511 msgid "Authentication failed." msgstr "Autentiseringa feila." #: ../gtk-dialog.c:1541 #, c-format msgid "Private conversation with %s started.%s%s" msgstr "Privat samtale med %s er starta.%s%s" #: ../gtk-dialog.c:1545 #, c-format msgid "Unverified conversation with %%s started.%%s%%s" msgstr "Ikkje-stadfesta samtale med %%s er starta.%%s%%s" #. This last case should never happen, since we know #. * we're in ENCRYPTED. #: ../gtk-dialog.c:1553 #, c-format msgid "Not private conversation with %s started.%s%s" msgstr "Ikkje-private samtale med %s er starta.%s%s" #: ../gtk-dialog.c:1559 ../gtk-dialog.c:1686 msgid " Warning: using old protocol version 1." msgstr " Åtvaring: bruker gammal protokollutgåve 1." #: ../gtk-dialog.c:1561 msgid " Your client is logging this conversation." msgstr " Klienten din loggar denne samtalen." #: ../gtk-dialog.c:1562 msgid " Your client is not logging this conversation." msgstr " Klienten din loggar ikkje denne samtalen." #: ../gtk-dialog.c:1581 #, c-format msgid "" "Your buddy is logged in multiple times and OTR has established multiple sessions. Use the icon menu above if you wish to select the " "outgoing session." msgstr "" "Kontakten din har logga på fleire gonger og OTR har oppretta fleire økter. Bruk ikonmenyen over om du vil velja den utgåande økta." #: ../gtk-dialog.c:1601 #, c-format msgid "Private conversation with %s lost." msgstr "Har mist den private samtalen med %s." #: ../gtk-dialog.c:1638 #, c-format msgid "" "%s has ended his/her private conversation with you; you should do the same." msgstr "%s har avslutta den private samtalen med deg.Du bør gjera det same." #: ../gtk-dialog.c:1665 #, c-format msgid "Successfully refreshed the private conversation with %s.%s" msgstr "Vellykka oppfrisking av den private samtalen med %s.%s" #: ../gtk-dialog.c:1670 #, c-format msgid "" "Successfully refreshed the unverified conversation with " "%%s.%%s" msgstr "" "Vellykka oppfrisking av den ikkje-stadfesta samtalen " "med %%s.%%s" #. This last case should never happen, since we know #. * we're in ENCRYPTED. #: ../gtk-dialog.c:1679 #, c-format msgid "Successfully refreshed the not private conversation with %s.%s" msgstr "Vellykka oppfrisking av den ikkje-private samtalen med %s.%s" #: ../gtk-dialog.c:1712 #, c-format msgid "Attempting to refresh the private conversation with %s..." msgstr "Prøver å friska opp den private samtalen med %s …" #: ../gtk-dialog.c:1714 #, c-format msgid "Attempting to start a private conversation with %s..." msgstr "Prøver å starta opp ein privat samtale med %s …" #: ../gtk-dialog.c:1899 ../gtk-dialog.c:2026 msgid "Start _private conversation" msgstr "Start _privat samtale" #: ../gtk-dialog.c:1900 msgid "Refresh _private conversation" msgstr "Friskar opp den _private samtalen" #: ../gtk-dialog.c:1905 msgid "Re_authenticate buddy" msgstr "Re-a_utentiserer kontakten" #: ../gtk-dialog.c:1906 ../gtk-dialog.c:2030 msgid "_Authenticate buddy" msgstr "_Autentiserer kontakten" #: ../gtk-dialog.c:1960 ../gtk-dialog.c:2736 msgid "Not Private" msgstr "Ikkje privat" #: ../gtk-dialog.c:1982 msgid "_What's this?" msgstr "_Kva er dette?" #: ../gtk-dialog.c:2028 msgid "_End private conversation" msgstr "Avsl_utt den private samtalen" #: ../gtk-dialog.c:2207 ../gtk-dialog.c:2255 #, c-format msgid "" "Warning: The selected outgoing OTR session (%u) is not the most recently " "active one (%u). Your buddy may not receive your messages. Use the icon menu " "above to select a different outgoing session." msgstr "" "Åtvaring: den valde utgåande OTR-økta (%u) er ikkje den som sist var aktiv " "(%u). Det kan vera at kontakten din ikkje mottek meldingane dine. Bruk " "ikonmenyen over til å velja ei anna utgåande økt." #: ../gtk-dialog.c:2271 msgid "Send to most secure" msgstr "Send til den mest sikre" #: ../gtk-dialog.c:2273 msgid "Send to most recent" msgstr "Send til den aller nyaste" #: ../gtk-dialog.c:2377 #, c-format msgid "Session %u" msgstr "Økt %u" #: ../gtk-dialog.c:2395 ../gtk-dialog.c:2506 msgid "Select" msgstr "Vel" #: ../gtk-dialog.c:2410 msgid "Selected" msgstr "Vald" #: ../gtk-dialog.c:2731 #, c-format msgid "" "The privacy status of the current conversation is now: %s" msgstr "" "Personvernstatusen til den gjeldande samtalen er no: %s" #: ../gtk-dialog.c:2956 msgid "OTR Messaging" msgstr "OTR-meldingsteneste" #: ../gtk-ui.c:103 #, c-format msgid "Fingerprint: %.80s" msgstr "Fingeravtrykk: %.80s" #: ../gtk-ui.c:107 #, c-format msgid "No key present" msgstr "Ingen nøkkel er til stades" #: ../gtk-ui.c:112 #, c-format msgid "No account available" msgstr "Ingen konto er tilgjengeleg" #: ../gtk-ui.c:179 msgid "Unused" msgstr "Ikkje brukt" #: ../gtk-ui.c:208 msgid "Yes" msgstr "Ja" #: ../gtk-ui.c:208 msgid "No" msgstr "Nei" #: ../gtk-ui.c:473 msgid "Enable private messaging" msgstr "Ta i bruk privat meldingsteneste" #: ../gtk-ui.c:475 msgid "Automatically initiate private messaging" msgstr "Ta automatisk i bruk privat meldingsteneste" #: ../gtk-ui.c:477 msgid "Require private messaging" msgstr "Krev privat meldingsteneste" #: ../gtk-ui.c:480 msgid "Don't log OTR conversations" msgstr "Logg ikkje OTR-samtalar" #: ../gtk-ui.c:524 msgid "Show OTR button in toolbar" msgstr "Syn OTR-knapp på verktøylinja" #: ../gtk-ui.c:663 msgid "My private keys" msgstr "Dei private nøklane mine" #: ../gtk-ui.c:672 msgid "Key for account:" msgstr "Nøkkel for kontoen:" #: ../gtk-ui.c:697 msgid "Generate" msgstr "Lag" #: ../gtk-ui.c:738 msgid "Default OTR Settings" msgstr "Standard OTR-innstillingar" #: ../gtk-ui.c:765 msgid "OTR UI Options" msgstr "OTR-grensesnittval" #: ../gtk-ui.c:788 msgid "Screenname" msgstr "Kallenamn" #: ../gtk-ui.c:789 msgid "Status" msgstr "Status" #: ../gtk-ui.c:790 msgid "Verified" msgstr "Stadfesta" #: ../gtk-ui.c:791 msgid "Fingerprint" msgstr "Fingeravtrykk" #: ../gtk-ui.c:792 msgid "Account" msgstr "Konto" #: ../gtk-ui.c:828 msgid "Start private connection" msgstr "Start privat tilkopling" #: ../gtk-ui.c:836 msgid "End private connection" msgstr "Avslutt privat tilkoping" #: ../gtk-ui.c:852 msgid "Forget fingerprint" msgstr "Gløym fingeravtrykket" #: ../gtk-ui.c:903 msgid "Config" msgstr "Innstillingar" #: ../gtk-ui.c:905 msgid "Known fingerprints" msgstr "Kjende fingeravtrykk" #: ../gtk-ui.c:1003 ../otr-plugin.c:964 msgid "OTR Settings" msgstr "OTR-innstillingar" #. Set the title #: ../gtk-ui.c:1021 #, c-format msgid "OTR Settings for %s" msgstr "OTR-innstillingar for %s" #. Make the cascaded checkboxes #: ../gtk-ui.c:1038 msgid "Use default OTR settings for this buddy" msgstr "Bruk standard OTR-innstillingar for denne kontakten" #: ../otr-plugin.c:125 #, c-format msgid "You are not currently connected to account %s (%s)." msgstr "Du er ikkje tilkopla kontoen %s (%s)." #: ../otr-plugin.c:129 msgid "Not connected" msgstr "Ikkje tilkopla" #: ../otr-plugin.c:212 ../otr-plugin.c:254 #, c-format msgid "Out of memory building filenames!\n" msgstr "Gjekk tom for minne under filnamnopplistinga!\n" #: ../otr-plugin.c:224 ../otr-plugin.c:260 #, c-format msgid "Could not write private key file\n" msgstr "Klarte ikkje å skriva den private nøkkelfila\n" #: ../otr-plugin.c:298 #, c-format msgid "Unknown account %s (%s)." msgstr "Ukjend konto %s (%s)." #: ../otr-plugin.c:302 msgid "Unknown account" msgstr "Ukjend konto" #: ../otr-plugin.c:364 msgid "Error occurred encrypting message." msgstr "Det oppstod ein feil under meldingskrypteringa." #: ../otr-plugin.c:368 #, c-format msgid "You sent encrypted data to %s, who wasn't expecting it." msgstr "Du sende krypterte data til %s som ikkje venta det." #: ../otr-plugin.c:374 msgid "You transmitted an unreadable encrypted message." msgstr "Du sende ei uleseleg kryptert melding." #: ../otr-plugin.c:377 msgid "You transmitted a malformed data message." msgstr "Du sende ei ugyldig datamelding." #: ../otr-plugin.c:390 msgid "[resent]" msgstr "[sendt om att]" #: ../otr-plugin.c:459 #, c-format msgid "You attempted to send an unencrypted message to %s" msgstr "Du prøvde å senda ei ikkje-kryptert melding til %s" #: ../otr-plugin.c:462 msgid "Attempting to start a private conversation..." msgstr "Prøver å starta ei privat samtale …" #: ../otr-plugin.c:464 msgid "OTR Policy Violation" msgstr "OTR-regelbrot" #: ../otr-plugin.c:465 msgid "" "Unencrypted messages to this recipient are not allowed. Attempting to start " "a private conversation.\n" "\n" "Your message will be retransmitted when the private conversation starts." msgstr "" "Meldingane du sender til denne mottakaren må vera krypterte. Prøver å starta " "ein privat samtale.\n" "\n" "Meldinga di vil verta sendt om att når den private samtalen startar." #: ../otr-plugin.c:474 msgid "" "An error occurred when encrypting your message. The message was not sent." msgstr "" "Det oppstod ein feil under krypteringa av meldinga di. Meldinga vart ikkje " "sendt." #: ../otr-plugin.c:476 msgid "Error encrypting message" msgstr "Meldinga vart ikkje kryptert" #: ../otr-plugin.c:477 msgid "An error occurred when encrypting your message" msgstr "Det oppstod ein feil under krypteringa av meldinga" #: ../otr-plugin.c:478 msgid "The message was not sent." msgstr "Meldinga vart ikkje sendt." #: ../otr-plugin.c:481 #, c-format msgid "%s has already closed his/her private connection to you" msgstr "%s har allereie lukka den private tilkoplinga til deg" #: ../otr-plugin.c:484 msgid "" "Your message was not sent. Either end your private conversation, or restart " "it." msgstr "" "Meldinga di vart ikkje sendt. Avslutt den private samtalen eller start han " "om att." #: ../otr-plugin.c:487 msgid "Private connection closed" msgstr "Den private tilkoplinga er lukka" #: ../otr-plugin.c:488 msgid "" "Your message was not sent. Either close your private connection to him, or " "refresh it." msgstr "" "Meldinga di vart ikkje sendt. Avslutt den private tilkoplinga eller frisk " "han opp att." #: ../otr-plugin.c:498 msgid "Error setting up private conversation: Malformed message received" msgstr "Klarte ikkje å laga ein privat samtale: mottok ei ugyldig melding" #: ../otr-plugin.c:502 #, c-format msgid "Error setting up private conversation: %s" msgstr "Klarte ikkje å laga ein privat samtale: %s" #: ../otr-plugin.c:509 ../otr-plugin.c:520 ../otr-plugin.c:547 #: ../otr-plugin.c:555 ../otr-plugin.c:573 msgid "OTR Error" msgstr "OTR-feil" #: ../otr-plugin.c:516 msgid "" "We are receiving our own OTR messages. You are either trying to talk to " "yourself, or someone is reflecting your messages back at you." msgstr "" "Vi tek i mot våre eigne OTR-meldingar. Du prøver anten å tala med deg sjølv " "eller så vidaresender nokon meldingane attende til deg." #: ../otr-plugin.c:520 msgid "We are receiving our own OTR messages." msgstr "Vi tek i mot våre eigne OTR-meldingar." #: ../otr-plugin.c:521 msgid "" "You are either trying to talk to yourself, or someone is reflecting your " "messages back at you." msgstr "" "Du prøver anten å tala med deg sjølv eller så vidaresender nokon meldingane " "attende til deg." #: ../otr-plugin.c:526 #, c-format msgid "The last message to %s was resent." msgstr "Den siste meldinga til %s vart sendt om att." #: ../otr-plugin.c:530 msgid "Message resent" msgstr "Meldinga vart sendt på nytt" #: ../otr-plugin.c:534 #, c-format msgid "" "The encrypted message received from %s is unreadable, as you are not " "currently communicating privately." msgstr "" "Kan ikkje lesa den krypterte meldinga som kom frå %s sidan samtalen ikkje " "er privat." #: ../otr-plugin.c:539 msgid "Unreadable message" msgstr "Meldinga ikkje lesast" #: ../otr-plugin.c:543 #, c-format msgid "We received an unreadable encrypted message from %s." msgstr "Vi mottok ei uleseleg kryptert melding frå %s." #: ../otr-plugin.c:551 #, c-format msgid "We received a malformed data message from %s." msgstr "Vi mottok ei ugyldig datamelding frå %s." #: ../otr-plugin.c:559 #, c-format msgid "Heartbeat received from %s.\n" msgstr "Livsteikn motteke frå %s.\n" #: ../otr-plugin.c:565 #, c-format msgid "Heartbeat sent to %s.\n" msgstr "Livsteikn sendt til %s.\n" #: ../otr-plugin.c:576 #, c-format msgid "" "The following message received from %s was not encrypted: [" "%s]" msgstr "" "Denne meldinga, som vart motteken frå %s, var ikkje kryptert: [" "%s]" #: ../otr-plugin.c:581 msgid "Received unencrypted message" msgstr "Mottok ei ikkje-kryptert melding" #: ../otr-plugin.c:587 #, c-format msgid "Unrecognized OTR message received from %s.\n" msgstr "Ukjend OTR-melding motteken frå %s.\n" #: ../otr-plugin.c:596 #, c-format msgid "" "%s has sent a message intended for a different session. If you are logged in " "multiple times, another session may have received the message." msgstr "" "%s har sendt ei melding som var meint til ei anna økt. Om du er pålogga " "fleire gonger, kan det vera at ei anna mottok meldinga." #: ../otr-plugin.c:602 msgid "Received message for a different session" msgstr "Mottok ei melding som var meint for ei anna økt" #. 2013-01-01 #: ../otr-plugin.c:1193 ../otr-plugin.c:1220 #, c-format msgid "OTR PLUGIN v%s" msgstr "OTR-programtillegg v%s" #: ../otr-plugin.c:1202 #, c-format msgid "" "This beta copy of the Off-the-Record Messaging v%s Pidgin plugin has expired " "as of 2013-01-01. Please look for an updated release at http://otr." "cypherpunks.ca/" msgstr "" "Denne betakopien av Off-the-Record-meldingsteneste v%s Pidgin-programtillegg " "er ikkje gyldig etter 2013-01-01. Du finn ei oppdatert utgåve hos http://otr." "cypherpunks.ca/" #: ../otr-plugin.c:1229 #, c-format msgid "" "You have enabled a beta version of the Off-the-Record Messaging v%s Pidgin " "plugin. This version is intended for testing purposes only and is not for " "general purpose use." msgstr "" "Du har teke i bruk ei betautgåve av Off-the-Record-meldingsteneste v%s " "Pidgin-programtillegg. Utgåva er berre meint for testformål og er ikkje " "tenkt verta nytta til vanleg bruk." #: ../otr-plugin.c:1414 msgid "Off-the-Record Messaging" msgstr "Off-the-Record-meldingsteneste" #: ../otr-plugin.c:1415 msgid "Provides private and secure conversations" msgstr "Gjev private og trygge samtalar" #: ../otr-plugin.c:1416 msgid "" "Preserves the privacy of IM communications by providing encryption, " "authentication, deniability, and perfect forward secrecy." msgstr "" "Tek vare på personvernet ditt når du nyttar lynmeldingstenester ved å tilby " "kryptering, autentisering, avvising og framtidssikring (PFS)." #: ../ui.c:110 #, c-format msgid "Account %s (%s) could not be found" msgstr "Fann ikkje kontoen %s (%s)" #: ../ui.c:114 msgid "Account not found" msgstr "Fann ikkje kontoen" pidgin-otr-4.0.0/po/fr.po0000644000175000017500000006106512020421670012077 00000000000000# Off-the-Record Messaging plugin for pidgin. # Copyright (C) 2004-2012 Ian Goldberg, Rob Smits, Chris Alexander, Willy Lew, # Lisa Du, Nikita Borisov # This file is distributed under the same license as the pidgin-otr package. # Ian Goldberg , 2012 # msgid "" msgstr "" "Project-Id-Version: pidgin-otr 4.0.0.fr\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-06-14 09:45-0400\n" "PO-Revision-Date: 2012-06-26 12:00-0400\n" "Last-Translator: Paul Hendry \n" "Language-Team: Paul Hendry \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../gtk-dialog.c:332 ../gtk-dialog.c:1141 ../gtk-dialog.c:1145 #: ../gtk-dialog.c:1547 ../gtk-dialog.c:1584 ../gtk-dialog.c:1673 #: ../gtk-dialog.c:1748 ../gtk-dialog.c:2749 msgid "?lang=en" msgstr "?lang=fr" #: ../gtk-dialog.c:480 msgid "" "Your buddy is attempting to determine if he or she is really talking to you, " "or if it's someone pretending to be you. Your buddy has asked a question, " "indicated below. To authenticate to your buddy, enter the answer and click " "OK." msgstr "" "Votre contact tente de s'assurer de votre identité. Il ou elle vous a posé " "une question, indiquée ci-dessous. Pour vous authentifier auprès de lui, " "écrivez la réponse et cliquez sur \"Authentification\"." #: ../gtk-dialog.c:487 msgid "" "To authenticate using a question, pick a question whose answer is known only " "to you and your buddy. Enter this question and this answer, then wait for " "your buddy to enter the answer too. If the answers don't match, then you " "may be talking to an imposter." msgstr "" "Pour l'authentification en utilisant une question-réponse, choisissez une " "question dont seuls votre contact et vous connaissez la réponse. Écrivez la " "question et sa réponse, cliquez sur \"Authentifier\", puis attendez que votre " "contact donne sa réponse. Si vos réponses ne sont pas identiques, il est " "possible que votre interlocuteur ne soit pas celui qu'il prétend être." #: ../gtk-dialog.c:505 #, c-format msgid "This is the question asked by your buddy:" msgstr "Ceci est la question posée par votre contact :" #: ../gtk-dialog.c:508 #, c-format msgid "Enter question here:" msgstr "Écrivez ici votre question :" #: ../gtk-dialog.c:540 ../gtk-dialog.c:624 msgid "This buddy is already authenticated." msgstr "Ce contact est déja authentifié." #: ../gtk-dialog.c:552 #, c-format msgid "Enter secret answer here (case sensitive):" msgstr "Écrivez ici la réponse (attention aux majuscules et minuscules) :" #: ../gtk-dialog.c:593 msgid "" "To authenticate, pick a secret known only to you and your buddy. Enter this " "secret, then wait for your buddy to enter it too. If the secrets don't " "match, then you may be talking to an imposter." msgstr "Pour l'authentification par secret partagé, écrivez un code secret " "connu uniquement par vous et votre contact, et cliquez sur \"Authentification\", " "puis attendez que votre contact l'ait écrit à son tour. Si vos secrets ne sont " "pas identiques, votre interlocuteur n'est peut-être pas celui qu'il prétend être." #: ../gtk-dialog.c:607 #, c-format msgid "Enter secret here:" msgstr "Écrivez votre secret ici :" #: ../gtk-dialog.c:657 ../gtk-dialog.c:1408 msgid "" "To verify the fingerprint, contact your buddy via some other " "authenticated channel, such as the telephone or GPG-signed email. Each of " "you should tell your fingerprint to the other." msgstr "" "Pour vérifier l'empreinte, contactez votre contact par un autre canal " "authentifié, comme le téléphone ou un courriel signé par GnuPG. Chacun de vous " "doit donner son empreinte à l'autre." #: ../gtk-dialog.c:661 msgid "" "If everything matches up, you should chose I have in the menu below." msgstr "" "Si les empreintes sont identiques, indiquez que vous avez verifié " "l'empreinte." #: ../gtk-dialog.c:672 ../gtk-dialog.c:1397 msgid "[none]" msgstr "[rien]" #: ../gtk-dialog.c:679 ../gtk-dialog.c:1051 ../gtk-dialog.c:1404 #: ../gtk-dialog.c:1453 ../gtk-ui.c:212 ../otr-plugin.c:127 #: ../otr-plugin.c:300 ../ui.c:112 msgid "Unknown" msgstr "Inconnu" #: ../gtk-dialog.c:680 #, c-format msgid "" "Fingerprint for you, %s (%s):\n" "%s\n" "\n" "Purported fingerprint for %s:\n" "%s\n" msgstr "" "Votre empreinte, %s (%s):\n" "%s\n" "\n" "Empreinte prétendue pour %s:\n" "%s\n" #: ../gtk-dialog.c:736 msgid "How would you like to authenticate your buddy?" msgstr "Comment désirez-vous authentifier votre contact ?" #: ../gtk-dialog.c:745 msgid "Question and answer" msgstr "Question-réponse" #: ../gtk-dialog.c:748 msgid "Shared secret" msgstr "Secret partagé" #: ../gtk-dialog.c:751 msgid "Manual fingerprint verification" msgstr "Vérification manuelle d'empreinte" #: ../gtk-dialog.c:802 msgid "_Authenticate" msgstr "_Authentifie" #: ../gtk-dialog.c:836 msgid "" "Authenticating a buddy helps ensure that the person you are talking to is " "who he or she claims to be." msgstr "" "L'authentification d'un contact vous permet de vous assurer que la personne " "avec qui vous dialoguez est bien celle qu'elle prétend être." #. Translators: you are asked to authenticate yourself #: ../gtk-dialog.c:946 msgid "Authenticating to Buddy" msgstr "Authentification auprès de votre contact" #. Translators: you asked your buddy to authenticate him/herself #: ../gtk-dialog.c:948 msgid "Authenticating Buddy" msgstr "Authentification de votre contact" #: ../gtk-dialog.c:975 #, c-format msgid "Authenticating to %s" msgstr "Authentification auprès de %s" #: ../gtk-dialog.c:976 #, c-format msgid "Authenticating %s" msgstr "Authentification de %s" #: ../gtk-dialog.c:1009 msgid "Waiting for buddy..." msgstr "En attente de votre contact" #: ../gtk-dialog.c:1042 msgid "Generating private key" msgstr "Génération de la clé privée" #: ../gtk-dialog.c:1043 msgid "Please wait" msgstr "Attendez SVP" #. Create the Please Wait... dialog #: ../gtk-dialog.c:1054 #, c-format msgid "Generating private key for %s (%s)..." msgstr "Génération d'une clé privée pour %s (%s)..." #: ../gtk-dialog.c:1099 #, c-format msgid "%s Done." msgstr "%s effectué." #: ../gtk-dialog.c:1139 #, c-format msgid "" "%s is contacting you from an unrecognized computer. You should authenticate this buddy." msgstr "" "%s vous contacte d'un ordinateur inconnu. Vous devriez " "authentifier ce contact." #: ../gtk-dialog.c:1143 #, c-format msgid "" "%s has not been authenticated yet. You should authenticate this buddy." msgstr "" "%s n'a pas encore été authentifié. Vous devriez authentifier ce contact." #: ../gtk-dialog.c:1195 ../gtk-dialog.c:1969 ../gtk-dialog.c:2745 #: ../gtk-ui.c:83 msgid "Finished" msgstr "Terminé" #: ../gtk-dialog.c:1196 ../gtk-dialog.c:1966 ../gtk-dialog.c:2742 #: ../gtk-ui.c:82 msgid "Private" msgstr "Privé" #: ../gtk-dialog.c:1197 ../gtk-dialog.c:1963 ../gtk-dialog.c:2739 #: ../gtk-ui.c:81 msgid "Unverified" msgstr "Non-verifié" #: ../gtk-dialog.c:1198 ../gtk-ui.c:80 msgid "Not private" msgstr "Non-privé" #: ../gtk-dialog.c:1201 msgid "OTR" msgstr "OTR" #. Translators: the following four messages should give alternative #. * sentences. The user selects the first or second message in a combo box; #. * the third message, a new line, a fingerprint, a new line, and #. * the fourth message will follow it. #: ../gtk-dialog.c:1351 msgid "I have not" msgstr "Je n'ai pas" #. 2nd message #: ../gtk-dialog.c:1353 msgid "I have" msgstr "J'ai" #. 3rd message #: ../gtk-dialog.c:1356 msgid " verified that this is in fact the correct" msgstr " verifié que c'est en effet" #. 4th message #: ../gtk-dialog.c:1366 #, c-format msgid "fingerprint for %s." msgstr "l'empreinte pour %s." #: ../gtk-dialog.c:1393 #, c-format msgid "Verify fingerprint for %s" msgstr "Vérifier l'empreinte pour %s" #: ../gtk-dialog.c:1405 #, c-format msgid "" "%s %s\n" "\n" "Fingerprint for you, %s (%s):\n" "%s\n" "\n" "Purported fingerprint for %s:\n" "%s\n" msgstr "" "%s %s\n" "\n" "Votre empreinte, %s (%s):\n" "%s\n" "\n" "Empreinte prétendue de %s:\n" "%s\n" #: ../gtk-dialog.c:1412 msgid "" "If everything matches up, you should indicate in the above dialog that you " "have verified the fingerprint." msgstr "" #: ../gtk-dialog.c:1418 ../gtk-ui.c:844 msgid "Verify fingerprint" msgstr "" "Si les empreintes sont identiques, indiquez que vous avez verifié " "l'empreinte." #: ../gtk-dialog.c:1445 #, c-format msgid "Authentication from %s" msgstr "Authentifier auprès de %s" #: ../gtk-dialog.c:1448 #, c-format msgid "Authenticate %s" msgstr "Authentifier %s" #: ../gtk-dialog.c:1456 msgid "Authenticate Buddy" msgstr "Authentifier contact" #: ../gtk-dialog.c:1487 msgid "An error occurred during authentication." msgstr "Une erreur s'est produite durant l'authentification." #: ../gtk-dialog.c:1502 msgid "Authentication successful." msgstr "Authentification réussie." #: ../gtk-dialog.c:1505 msgid "" "Your buddy has successfully authenticated you. You may want to authenticate " "your buddy as well by asking your own question." msgstr "" "Votre contact vous a authentifié avec succès ; Vous devriez l'authentifier " "à votre tour en lui posant votre propre question." #: ../gtk-dialog.c:1511 msgid "Authentication failed." msgstr "Authentification non réussie." #: ../gtk-dialog.c:1541 #, c-format msgid "Private conversation with %s started.%s%s" msgstr "Une conversation privée avec %s a commencé.%s%s" #: ../gtk-dialog.c:1545 #, c-format msgid "Unverified conversation with %%s started.%%s%%s" msgstr "Une conversation non-verifiée avec %%s a commencé.%%s%%s" #. This last case should never happen, since we know #. * we're in ENCRYPTED. #: ../gtk-dialog.c:1553 #, c-format msgid "Not private conversation with %s started.%s%s" msgstr "Une conversation non-privée avec %s a commencé.%s%s" #: ../gtk-dialog.c:1559 ../gtk-dialog.c:1686 msgid " Warning: using old protocol version 1." msgstr " Attention : utilisation du protocole obsolète version 1." #: ../gtk-dialog.c:1561 msgid " Your client is logging this conversation." msgstr " Votre client est configuré pour archiver cette conversation." #: ../gtk-dialog.c:1562 msgid " Your client is not logging this conversation." msgstr " Votre client est configuré pour ne pas archiver cette conversation." #: ../gtk-dialog.c:1581 #, c-format msgid "" "Your buddy is logged in multiple times and OTR has established multiple sessions. Use the icon menu above if you wish to select the " "outgoing session." msgstr "" "Votre contact est connecté plusieurs fois et OTR s'est établi plusieurs sessions. Utilisez le menu d'icônes si vous désirez sélectionner " "la session sortante." #: ../gtk-dialog.c:1601 #, c-format msgid "Private conversation with %s lost." msgstr "La conversation privée avec %s est interrompue." #: ../gtk-dialog.c:1638 #, c-format msgid "" "%s has ended his/her private conversation with you; you should do the same." msgstr "%s a arrêté sa conversation privée avec vous ; vous devriez faire de même." #: ../gtk-dialog.c:1665 #, c-format msgid "Successfully refreshed the private conversation with %s.%s" msgstr "La conversation privée avec %s a été rafraîchie avec succès.%s" #: ../gtk-dialog.c:1670 #, c-format msgid "" "Successfully refreshed the unverified conversation with " "%%s.%%s" msgstr "" "La conversation non-verifiée avec %%s a été rafraîchie " "avec succès.%%s" #. This last case should never happen, since we know #. * we're in ENCRYPTED. #: ../gtk-dialog.c:1679 #, c-format msgid "Successfully refreshed the not private conversation with %s.%s" msgstr "La conversation non-privée avec %s a été rafraîchie avec succès.%s" #: ../gtk-dialog.c:1712 #, c-format msgid "Attempting to refresh the private conversation with %s..." msgstr "Rafraîchissement de la conversation privée avec %s..." #: ../gtk-dialog.c:1714 #, c-format msgid "Attempting to start a private conversation with %s..." msgstr "Création d'une conversation privée avec %s..." #: ../gtk-dialog.c:1899 ../gtk-dialog.c:2026 msgid "Start _private conversation" msgstr "Commencer une conversation _privée" #: ../gtk-dialog.c:1900 msgid "Refresh _private conversation" msgstr "Rafraîchir la conversation _privée" #: ../gtk-dialog.c:1905 msgid "Re_authenticate buddy" msgstr "" #: ../gtk-dialog.c:1906 ../gtk-dialog.c:2030 msgid "_Authenticate buddy" msgstr "Ré-_Authentifier contact" #: ../gtk-dialog.c:1960 ../gtk-dialog.c:2736 msgid "Not Private" msgstr "Non-privé" #: ../gtk-dialog.c:1982 msgid "_What's this?" msgstr "_Qu'est que c'est ?" #: ../gtk-dialog.c:2028 msgid "_End private conversation" msgstr "" #: ../gtk-dialog.c:2207 ../gtk-dialog.c:2255 #, c-format msgid "" "Warning: The selected outgoing OTR session (%u) is not the most recently " "active one (%u). Your buddy may not receive your messages. Use the icon menu " "above to select a different outgoing session." msgstr "" "Attention : La session sortante OTR sélectionnée (%u) n'est pas celui qui est " "le plus récemment actif (%u). Votre contact ne recevra peut-être pas vos " "messages. Utilisez le menu d'icônes ci-dessus pour sélectionner une autre " "session sortante." #: ../gtk-dialog.c:2271 msgid "Send to most secure" msgstr "Envoyer au plus sécurisé" #: ../gtk-dialog.c:2273 msgid "Send to most recent" msgstr "Envoyer au plus récent" #: ../gtk-dialog.c:2377 #, c-format msgid "Session %u" msgstr "Session %u" #: ../gtk-dialog.c:2395 ../gtk-dialog.c:2506 msgid "Select" msgstr "Choisir" #: ../gtk-dialog.c:2410 msgid "Selected" msgstr "Choisi" #: ../gtk-dialog.c:2731 #, c-format msgid "" "The privacy status of the current conversation is now: %s" msgstr "" "La confidentialité de cette conversation est désormais : " "%s" #: ../gtk-dialog.c:2956 msgid "OTR Messaging" msgstr "Messagerie OTR" #: ../gtk-ui.c:103 #, c-format msgid "Fingerprint: %.80s" msgstr "L'empreinte : %.80s" #: ../gtk-ui.c:107 #, c-format msgid "No key present" msgstr "Aucune clé présente" #: ../gtk-ui.c:112 #, c-format msgid "No account available" msgstr "Aucun compte disponible" #: ../gtk-ui.c:179 msgid "Unused" msgstr "Inutilisé" #: ../gtk-ui.c:208 msgid "Yes" msgstr "Oui" #: ../gtk-ui.c:208 msgid "No" msgstr "Non" #: ../gtk-ui.c:473 msgid "Enable private messaging" msgstr "Permettre messagerie privée" #: ../gtk-ui.c:475 msgid "Automatically initiate private messaging" msgstr "Commencer messagerie privée automatiquement" #: ../gtk-ui.c:477 msgid "Require private messaging" msgstr "Exiger messagerie privée" #: ../gtk-ui.c:480 msgid "Don't log OTR conversations" msgstr "Ne pas archiver les conversations d'OTR" #: ../gtk-ui.c:524 msgid "Show OTR button in toolbar" msgstr "Montrer le bouton OTR dans la barre des tâches" #: ../gtk-ui.c:663 msgid "My private keys" msgstr "Mes clés privées" #: ../gtk-ui.c:672 msgid "Key for account:" msgstr "Clé pour le compte :" #: ../gtk-ui.c:697 msgid "Generate" msgstr "Produire" #: ../gtk-ui.c:738 msgid "Default OTR Settings" msgstr "Paramètres d'OTR par défaut" #: ../gtk-ui.c:765 msgid "OTR UI Options" msgstr "Paramètres d'OTR" #: ../gtk-ui.c:788 msgid "Screenname" msgstr "Nom d'utilisateur" #: ../gtk-ui.c:789 msgid "Status" msgstr "État" #: ../gtk-ui.c:790 msgid "Verified" msgstr "Vérifié" #: ../gtk-ui.c:791 msgid "Fingerprint" msgstr "L'empreinte" #: ../gtk-ui.c:792 msgid "Account" msgstr "Compte" #: ../gtk-ui.c:828 msgid "Start private connection" msgstr "Commencer connexion privée" #: ../gtk-ui.c:836 msgid "End private connection" msgstr "Finir connexion privée" #: ../gtk-ui.c:852 msgid "Forget fingerprint" msgstr "Oublier l'empreinte" #: ../gtk-ui.c:903 msgid "Config" msgstr "Configuration" #: ../gtk-ui.c:905 msgid "Known fingerprints" msgstr "Empreintes connues" #: ../gtk-ui.c:1003 ../otr-plugin.c:964 msgid "OTR Settings" msgstr "Paramètres d'OTR" #. Set the title #: ../gtk-ui.c:1021 #, c-format msgid "OTR Settings for %s" msgstr "Paramètres d'OTR pour %s" #. Make the cascaded checkboxes #: ../gtk-ui.c:1038 msgid "Use default OTR settings for this buddy" msgstr "Utiliser les paramètres par défaut d'OTR pour ce contact" #: ../otr-plugin.c:125 #, c-format msgid "You are not currently connected to account %s (%s)." msgstr "Vous n'êtes pas actuellement connecté au compte %s (%s)." #: ../otr-plugin.c:129 msgid "Not connected" msgstr "Non connecté" #: ../otr-plugin.c:212 ../otr-plugin.c:254 #, c-format msgid "Out of memory building filenames!\n" msgstr "Manque de mémoire lors de la construction des noms de fichiers !\n" #: ../otr-plugin.c:224 ../otr-plugin.c:260 #, c-format msgid "Could not write private key file\n" msgstr "Échec lors de l'écriture du fichier des clés privées\n" #: ../otr-plugin.c:298 #, c-format msgid "Unknown account %s (%s)." msgstr "Compte %s inconnu (%s)." #: ../otr-plugin.c:302 msgid "Unknown account" msgstr "Compte inconnu" #: ../otr-plugin.c:364 msgid "Error occurred encrypting message." msgstr "Échec lors du cryptage du message." #: ../otr-plugin.c:368 #, c-format msgid "You sent encrypted data to %s, who wasn't expecting it." msgstr "Vous avez envoyé à %s des données cryptés, mail il ou elle ne s'y" "attendait pas." #: ../otr-plugin.c:374 msgid "You transmitted an unreadable encrypted message." msgstr "Vous avez transmi un message crypté illisible." #: ../otr-plugin.c:377 msgid "You transmitted a malformed data message." msgstr "Vous avez transmi un message de données malformé." #: ../otr-plugin.c:390 msgid "[resent]" msgstr "[envoyé de nouveau]" #: ../otr-plugin.c:459 #, c-format msgid "You attempted to send an unencrypted message to %s" msgstr "Vous avez tenté d'envoyer à %s un message non-crypté" #: ../otr-plugin.c:462 msgid "Attempting to start a private conversation..." msgstr "Création d'une conversation privée..." #: ../otr-plugin.c:464 msgid "OTR Policy Violation" msgstr "Violation de Politique OTR" #: ../otr-plugin.c:465 msgid "" "Unencrypted messages to this recipient are not allowed. Attempting to start " "a private conversation.\n" "\n" "Your message will be retransmitted when the private conversation starts." msgstr "" "L'envoi à ce destinaire de messages non-cryptés est interdit. Création d'une " "conversation privée...\n" "\n" "Votre message sera transmi de nouveau suite au début de la conversation " "privée." #: ../otr-plugin.c:474 msgid "" "An error occurred when encrypting your message. The message was not sent." msgstr "" "Une erreur s'est produite durant le cryptage de votre message. Le message n'a " "pas été envoyé." #: ../otr-plugin.c:476 msgid "Error encrypting message" msgstr "Échec lors du cryptage du message" #: ../otr-plugin.c:477 msgid "An error occurred when encrypting your message" msgstr "Une erreur s'est produite durant le cryptage de votre message" #: ../otr-plugin.c:478 msgid "The message was not sent." msgstr "Le message n'a pas été envoyé." #: ../otr-plugin.c:481 #, c-format msgid "%s has already closed his/her private connection to you" msgstr "%s a déjà fermé la connexion entre vous deux." #: ../otr-plugin.c:484 msgid "" "Your message was not sent. Either end your private conversation, or restart " "it." msgstr "" "Votre message n'a pas été envoyé. Soit mettre fin à votre session ou " "redémarrer-le." #: ../otr-plugin.c:487 msgid "Private connection closed" msgstr "Connexion privée fermé." #: ../otr-plugin.c:488 msgid "" "Your message was not sent. Either close your private connection to him, or " "refresh it." msgstr "" "Votre message n'a pas été envoyé. Soit mettre fin à votre session ou rafraîchir-le." #: ../otr-plugin.c:498 msgid "Error setting up private conversation: Malformed message received" msgstr "Échec lors de la mise en place d'une conversation privée : Message malformé reçu." #: ../otr-plugin.c:502 #, c-format msgid "Error setting up private conversation: %s" msgstr "Échec lors de la mise en place d'une conversatation privée : %s" #: ../otr-plugin.c:509 ../otr-plugin.c:520 ../otr-plugin.c:547 #: ../otr-plugin.c:555 ../otr-plugin.c:573 msgid "OTR Error" msgstr "Échec OTR" #: ../otr-plugin.c:516 msgid "" "We are receiving our own OTR messages. You are either trying to talk to " "yourself, or someone is reflecting your messages back at you." msgstr "" "Nous reçevons nos propres messages OTR. Soit que vous tentez parler à " "vous-même, ou que quelqu'un vous renvoie vos messages." #: ../otr-plugin.c:520 msgid "We are receiving our own OTR messages." msgstr "Nous reçevons nos propres messages OTR." #: ../otr-plugin.c:521 msgid "" "You are either trying to talk to yourself, or someone is reflecting your " "messages back at you." msgstr "" "Soit que vous tentez parler à vous-même, ou que quelqu'un vous renvoie vos messages." #: ../otr-plugin.c:526 #, c-format msgid "The last message to %s was resent." msgstr "Le dernier message pour %s a été envoyé de nouveau." #: ../otr-plugin.c:530 msgid "Message resent" msgstr "Message envoyé de nouveau" #: ../otr-plugin.c:534 #, c-format msgid "" "The encrypted message received from %s is unreadable, as you are not " "currently communicating privately." msgstr "" "Le message crypté reçu de %s est illisible, puisque vous ne communiquez pas en " "privé à présent." #: ../otr-plugin.c:539 msgid "Unreadable message" msgstr "Message illisible" #: ../otr-plugin.c:543 #, c-format msgid "We received an unreadable encrypted message from %s." msgstr "Nous avons reçu de %s un message crypté illisible." #: ../otr-plugin.c:551 #, c-format msgid "We received a malformed data message from %s." msgstr "Nous avons reçu de %s un message malformé." #: ../otr-plugin.c:559 #, c-format msgid "Heartbeat received from %s.\n" msgstr "Pulsation reçu de %s.\n" #: ../otr-plugin.c:565 #, c-format msgid "Heartbeat sent to %s.\n" msgstr "Pulsation envoyé à %s.\n" #: ../otr-plugin.c:576 #, c-format msgid "" "The following message received from %s was not encrypted: [%" "s]" msgstr "" "Le message suivant reçu de %s n'a pas été crypté : [%s]" #: ../otr-plugin.c:581 msgid "Received unencrypted message" msgstr "Message non-crypté reçu" #: ../otr-plugin.c:587 #, c-format msgid "Unrecognized OTR message received from %s.\n" msgstr "Message OTR non-reconnu reçu de %s.\n" #: ../otr-plugin.c:596 #, c-format msgid "" "%s has sent a message intended for a different session. If you are logged in " "multiple times, another session may have received the message." msgstr "" "%s a envoyé un message destiné à une autre session. Si vous êtez connectés plusieurs " "fois, il se peut qu'une autre session a reçu le message." #: ../otr-plugin.c:602 msgid "Received message for a different session" msgstr "Message destiné à une autre session reçu" #. 2013-01-01 #: ../otr-plugin.c:1193 ../otr-plugin.c:1220 #, c-format msgid "OTR PLUGIN v%s" msgstr "PLUGIN OTR v%s" #: ../otr-plugin.c:1202 #, c-format msgid "" "This beta copy of the Off-the-Record Messaging v%s Pidgin plugin has expired " "as of 2013-01-01. Please look for an updated release at http://otr." "cypherpunks.ca/" msgstr "" "Cette copie béta du plugin pour Pidgin Messagerie Confidentielle 'Off-the-Record' " "v%s est expiré depuis 2013-01-01. SVP rechercher la version actuelle à " "http://otr.cypherpunks.ca/" #: ../otr-plugin.c:1229 #, c-format msgid "" "You have enabled a beta version of the Off-the-Record Messaging v%s Pidgin " "plugin. This version is intended for testing purposes only and is not for " "general purpose use." msgstr "" "Vous avez activé une version béta du plugin pour Pidgin Messagerie Confidentielle " "'Off-the-Record' v%s. Cette version est conçu uniquement pour la mise en essai et " "non pour l'usage général." #: ../otr-plugin.c:1414 msgid "Off-the-Record Messaging" msgstr "Messagerie Confidentielle 'Off-the-Record'" #: ../otr-plugin.c:1415 msgid "Provides private and secure conversations" msgstr "Propose des conversations confidentielles et sûres" #: ../otr-plugin.c:1416 msgid "" "Preserves the privacy of IM communications by providing encryption, " "authentication, deniability, and perfect forward secrecy." msgstr "" "Préserve l'intimité de votre messagerie instantanée en offrant le chiffrement, " "l'authentification, la possibilité de dénégation, et un secret durable " "('perfect forward secrecy')." #: ../ui.c:110 #, c-format msgid "Account %s (%s) could not be found" msgstr "Le compte %s (%s) n'a pas pu être trouvé" #: ../ui.c:114 msgid "Account not found" msgstr "Le compte n'a pas pu être trouvé" pidgin-otr-4.0.0/po/it.po0000644000175000017500000003413311767120042012106 00000000000000# Off-the-Record Messaging plugin for pidgin. # Copyright (C) 2004-2007 Ian Goldberg, Chris Alexander, Nikita Borisov # This file is distributed under the same license as the pidgin-otr package. # Ian Goldberg , 2007. # msgid "" msgstr "" "Project-Id-Version: pidgin-otr\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-07-24 15:47-0400\n" "PO-Revision-Date: 2008-09-24 17:11+0100\n" "Last-Translator: Vincenzo Reale \n" "Language-Team: Vincenzo Reale \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Language: Italian\n" "X-Poedit-Country: ITALY\n" #: ../gtk-dialog.c:913 #: ../gtk-dialog.c:2095 msgid "_What's this?" msgstr "_Cos'è?" #: ../gtk-dialog.c:924 msgid "_More..." msgstr "_Altro..." #. Create the Advanced... button, and left-justify it. This #. * involves adding the button, and a blank label as a spacer, and #. * reordering them so that they're at the beginning. #: ../gtk-dialog.c:980 msgid "Advanced..." msgstr "Avanzate..." #: ../gtk-dialog.c:1025 msgid "Enter secret here" msgstr "Inserisci qui la chiave segreta" #: ../gtk-dialog.c:1030 msgid "This buddy is already authenticated." msgstr "Questo contatto è già autenticato." #: ../gtk-dialog.c:1049 msgid "To authenticate, pick a secret known only to you and your buddy. Enter this secret, then wait for your buddy to enter it too. If the secrets don't match, then you may be talking to an imposter." msgstr "Per autenticare, scegli una chiave segreta conosciuta solo a te e al tuo contatto. Inserisci la chiave segreta, poi attendi che il contatto faccia lo stesso. Se la chiave segreta non corrisponde, potrebbe essere un impostore." #: ../gtk-dialog.c:1053 msgid "If your buddy uses multiple IM accounts or multiple computers, you may have to authenticate multiple times. However, as long as they use an account and computer that you've seen before, you don't need to authenticate each individual conversation." msgstr "Se il contatto utilizza diversi account IM o diversi computer, potresti dover autenticarlo diverse volte. In ogni caso, finché utilizzerà un account e un computer già conosciuto, non sarà necessario autenticare ogni singola conversazione." #: ../gtk-dialog.c:1058 #: ../gtk-dialog.c:1322 #: ../gtk-dialog.c:1326 #: ../gtk-dialog.c:1423 #: ../gtk-dialog.c:1590 #: ../gtk-dialog.c:1750 #: ../gtk-dialog.c:1850 #: ../gtk-dialog.c:1935 msgid "?lang=en" msgstr "?lang=it" #: ../gtk-dialog.c:1059 msgid "Click here for more information about authentication in OTR." msgstr "Fai clic qui per ulteriori informazioni sull'autenticazione OTR." #: ../gtk-dialog.c:1063 msgid "Authenticating a buddy helps ensure that the person you are talking to is who they claim to be." msgstr "L'autenticazione di una contatto ti assicura che la persona con cui stai parlando è chi afferma di essere." #: ../gtk-dialog.c:1113 msgid "Authenticating Buddy" msgstr "Autenticazione contatto" #: ../gtk-dialog.c:1140 msgid "Authenticating" msgstr "Autenticazione" #: ../gtk-dialog.c:1201 msgid "Generating private key" msgstr "Generazione chiave privata" #: ../gtk-dialog.c:1202 msgid "Please wait" msgstr "Attendere" #: ../gtk-dialog.c:1210 #: ../gtk-dialog.c:1627 #: ../gtk-dialog.c:1664 #: ../gtk-ui.c:175 #: ../otr-plugin.c:115 #: ../otr-plugin.c:212 #: ../ui.c:110 msgid "Unknown" msgstr "Sconosciuto" #. Create the Please Wait... dialog #: ../gtk-dialog.c:1213 #, c-format msgid "Generating private key for %s (%s)..." msgstr "Generazione della chiave privata per %s (%s)..." #: ../gtk-dialog.c:1258 #, c-format msgid "%s Done." msgstr "%s completato." #: ../gtk-dialog.c:1320 #, c-format msgid "%s is contacting you from an unrecognized computer. You should authenticate this buddy." msgstr "%s ti sta contattando da un computer sconosciuto. Dovresti autenticare questo contatto." #: ../gtk-dialog.c:1324 #, c-format msgid "%s has not been authenticated yet. You should authenticate this buddy." msgstr "%s non è stato ancora autenticato. Dovresti autenticare questo contatto." #: ../gtk-dialog.c:1365 #: ../gtk-ui.c:76 msgid "Finished" msgstr "Completato" #: ../gtk-dialog.c:1366 #: ../gtk-ui.c:75 msgid "Private" msgstr "Privata" #: ../gtk-dialog.c:1367 #: ../gtk-ui.c:74 msgid "Unverified" msgstr "Non verificata" #: ../gtk-dialog.c:1368 #: ../gtk-ui.c:73 msgid "Not private" msgstr "Non privata" #: ../gtk-dialog.c:1370 msgid "Start a private conversation" msgstr "Avvia una conversazione privata" #: ../gtk-dialog.c:1371 msgid "Refresh the private conversation" msgstr "Aggiorna la conversazione privata" #: ../gtk-dialog.c:1375 msgid "Start _private conversation" msgstr "Avvia conversazione _privata" #: ../gtk-dialog.c:1376 msgid "Refresh _private conversation" msgstr "Aggiorna conversazione _privata" #: ../gtk-dialog.c:1555 msgid "I have not" msgstr "Non la ho" #: ../gtk-dialog.c:1556 msgid "I have" msgstr "La ho" #: ../gtk-dialog.c:1558 msgid " verified that this is in fact the correct" msgstr " verificato che sia effettivamenta quella corretta" #: ../gtk-dialog.c:1567 #, c-format msgid "fingerprint for %s." msgstr "impronta digitale per %s." #: ../gtk-dialog.c:1579 msgid "To verify the fingerprint, contact your buddy via some other authenticated channel, such as the telephone or GPG-signed email. Each of you should tell your fingerprint to the other." msgstr "Per verificare l'impronta digitale, contatta la persona attraverso un altro canale autenticato, come il telefono o un'email firmata con GPG. Ognuno dovrà comunicare l'impronta digitale all'altro." #: ../gtk-dialog.c:1583 msgid "If everything matches up, you should indicate in the above dialog that you have verified the fingerprint." msgstr "Se tutto corrisponde, dovresti indicare nella finestra precedente che hai verificato l'impronta digitale." #: ../gtk-dialog.c:1585 msgid "If your buddy has more than one IM account, or uses more than one computer, he may have multiple fingerprints." msgstr "Se il contatto ha più di un account IM, o utilizza più di un computer, potrebbe avere diverse impronte digitali." #: ../gtk-dialog.c:1587 msgid "However, the only way an imposter could duplicate one of your buddy's fingerprints is by stealing information from her/his computer." msgstr "In ogni caso, il solo modo con cui un impostore può duplicare le impronte digitali di un tuo contatto è rubare informazioni dal suo computer." #: ../gtk-dialog.c:1591 msgid "Click here for more information about fingerprints." msgstr "Fai clic qui per ulteriori informazioni sulle impronte digitali." #: ../gtk-dialog.c:1594 msgid "A fingerprint is a unique identifier that you should use to authenticate your buddy." msgstr "Un'impronta digitale è un identificatore univoco che dovresti utilizzare per autenticare un contatto." #: ../gtk-dialog.c:1616 #, c-format msgid "Verify fingerprint for %s" msgstr "Verifica l'impronta digitale per %s" #: ../gtk-dialog.c:1620 msgid "[none]" msgstr "[nessuna]" #: ../gtk-dialog.c:1628 #, c-format msgid "" "Fingerprint for you, %s (%s):\n" "%s\n" "\n" "Purported fingerprint for %s:\n" "%s\n" msgstr "" "Tua impronta digitale, %s (%s):\n" "%s\n" "\n" "Impronta digitale definita per %s:\n" "%s\n" #: ../gtk-dialog.c:1633 #: ../gtk-ui.c:681 msgid "Verify fingerprint" msgstr "Verifica l'impronta digitale" #: ../gtk-dialog.c:1660 #, c-format msgid "Authenticate %s" msgstr "Autentica %s" #: ../gtk-dialog.c:1665 #, c-format msgid "Enter a secret known only to %s and yourself.\n" msgstr "Inserisci una chiave segreta conosciuta solo a %s e a te.\n" #: ../gtk-dialog.c:1668 msgid "Authenticate buddy" msgstr "Autentica il contatto" #: ../gtk-dialog.c:1700 msgid "An error occurred during authentication." msgstr "Si è verificato un errore durante l'autenticazione." #: ../gtk-dialog.c:1716 msgid "Authentication successful." msgstr "Autenticazione avvenuta." #: ../gtk-dialog.c:1719 msgid "Authentication failed." msgstr "Autenticazione non riuscita." #: ../gtk-dialog.c:1744 #, c-format msgid "Private conversation with %s started.%s" msgstr "Conversazione privata avviata con %s. %s" #: ../gtk-dialog.c:1748 #, c-format msgid "Unverified conversation with %%s started.%%s" msgstr "Conversazione non verificata avviata con %%s.%%s" #. This last case should never happen, since we know #. * we're in ENCRYPTED. #: ../gtk-dialog.c:1756 #, c-format msgid "Not private conversation with %s started.%s" msgstr "Conversazione non privata avviata con %s. %s" #: ../gtk-dialog.c:1762 #: ../gtk-dialog.c:1863 msgid " Warning: using old protocol version 1." msgstr " Attenzione: utilizza la vecchia versione 1 del protocollo." #: ../gtk-dialog.c:1782 #, c-format msgid "Private conversation with %s lost." msgstr "Conversazione privata con %s persa." #: ../gtk-dialog.c:1817 #, c-format msgid "%s has ended his/her private conversation with you; you should do the same." msgstr "%s ha terminato la sua conversazione privata con te; dovresti fare lo stesso." #: ../gtk-dialog.c:1842 #, c-format msgid "Successfully refreshed the private conversation with %s.%s" msgstr "Conversazione privata con %s aggiornata con successo. %s" #: ../gtk-dialog.c:1847 #, c-format msgid "Successfully refreshed the unverified conversation with %%s.%%s" msgstr "Conversazione non verificata con %%s aggiornata con successo. %%s" #. This last case should never happen, since we know #. * we're in ENCRYPTED. #: ../gtk-dialog.c:1856 #, c-format msgid "Successfully refreshed the not private conversation with %s.%s" msgstr "Conversazione non privata con %s aggiornata con successo. %s" #: ../gtk-dialog.c:1883 #, c-format msgid "Attempting to refresh the private conversation with %s..." msgstr "Tentativo di aggiornare una conversazione privata con %s..." #: ../gtk-dialog.c:1885 #, c-format msgid "Attempting to start a private conversation with %s..." msgstr "Tentativo di avviare una conversazione privata con %s..." #: ../gtk-dialog.c:2045 msgid "OTR:" msgstr "OTR:" #: ../gtk-dialog.c:2054 msgid "OTR Messaging" msgstr "Messaggistica OTR" #: ../gtk-dialog.c:2060 msgid "_End private conversation" msgstr "_Termina conversazione privata" #. #. * Don't show the Verify fingerprint menu option any more. You can #. * still get to the dialog through Authenticate connection -> #. * Advanced... #. * #. menuverf = gtk_menu_item_new_with_mnemonic(_("_Verify fingerprint")); #. gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuverf); #. gtk_widget_show(menuverf); #. #: ../gtk-dialog.c:2078 msgid "_Authenticate buddy" msgstr "_Autentica contatto" #: ../gtk-ui.c:96 #, c-format msgid "Fingerprint: %.80s" msgstr "Impronta digitale: %.80s" #: ../gtk-ui.c:100 #, c-format msgid "No key present" msgstr "Nessuna chiave presente" #: ../gtk-ui.c:105 #, c-format msgid "No account available" msgstr "Nessun account disponibile" #: ../gtk-ui.c:165 msgid "Unused" msgstr "Inutilizzato" #: ../gtk-ui.c:171 msgid "Yes" msgstr "Sì" #: ../gtk-ui.c:171 msgid "No" msgstr "No" #: ../gtk-ui.c:396 msgid "Enable private messaging" msgstr "Abilita messaggistica privata" #: ../gtk-ui.c:398 msgid "Automatically initiate private messaging" msgstr "Avvia automaticamente la messaggistica privata" #: ../gtk-ui.c:400 msgid "Require private messaging" msgstr "Richiede messaggistica privata" #: ../gtk-ui.c:403 msgid "Don't log OTR conversations" msgstr "Non registrare le conversazioni OTR" #: ../gtk-ui.c:531 msgid "My private keys" msgstr "Le mie chiavi private" #: ../gtk-ui.c:540 msgid "Key for account:" msgstr "Chiave per l'account:" #: ../gtk-ui.c:565 msgid "Generate" msgstr "Genera" #: ../gtk-ui.c:596 msgid "Default OTR Settings" msgstr "Impostazioni OTR predefinite" #: ../gtk-ui.c:625 msgid "Screenname" msgstr "Nome visualizzato" #: ../gtk-ui.c:626 msgid "Status" msgstr "Stato" #: ../gtk-ui.c:627 msgid "Verified" msgstr "Verificato" #: ../gtk-ui.c:628 msgid "Fingerprint" msgstr "Impronta digitale" #: ../gtk-ui.c:629 msgid "Account" msgstr "Account" #: ../gtk-ui.c:665 msgid "Start private connection" msgstr "Avvia connessione privata" #: ../gtk-ui.c:673 msgid "End private connection" msgstr "Termina connessione privata" #: ../gtk-ui.c:689 msgid "Forget fingerprint" msgstr "Scarta l'impronta digitale" #: ../gtk-ui.c:738 msgid "Config" msgstr "Configurazione" #: ../gtk-ui.c:740 msgid "Known fingerprints" msgstr "Impronte digitali conosciute" #: ../gtk-ui.c:838 #: ../otr-plugin.c:577 msgid "OTR Settings" msgstr "Impostazioni OTR" #. Set the title #: ../gtk-ui.c:856 #, c-format msgid "OTR Settings for %s" msgstr "Impostazioni OTR per %s" #. Make the cascaded checkboxes #: ../gtk-ui.c:873 msgid "Use default OTR settings for this buddy" msgstr "Utilizza impostazioni OTR predefinite per questo contatto" #: ../otr-plugin.c:113 #, c-format msgid "You are not currently connected to account %s (%s)." msgstr "Non sei attualmente connesso all'account %s (%s)." #: ../otr-plugin.c:117 msgid "Not connected" msgstr "Non connesso" #: ../otr-plugin.c:161 #, c-format msgid "Out of memory building filenames!\n" msgstr "Memoria insufficiente per la creazione dei nomi dei file!\n" #: ../otr-plugin.c:167 #, c-format msgid "Could not write private key file\n" msgstr "Impossibile scrivere il file della chiave privata\n" #: ../otr-plugin.c:210 #, c-format msgid "Unknown account %s (%s)." msgstr "Account %s sconosciuto (%s)." #: ../otr-plugin.c:214 msgid "Unknown account" msgstr "Account sconosciuto" #: ../otr-plugin.c:953 msgid "Off-the-Record Messaging" msgstr "Messaggistica 'Off-the-Record'" #: ../otr-plugin.c:954 msgid "Provides private and secure conversations" msgstr "Fornisce conversazioni private e sicure" #: ../otr-plugin.c:955 msgid "Preserves the privacy of IM communications by providing encryption, authentication, deniability, and perfect forward secrecy." msgstr "Garantisce la riservatezza delle comunicazioni IM fornendo cifratura, autenticazione, non ripudio e segretezza perfetta in avanti." #: ../ui.c:108 #, c-format msgid "Account %s (%s) could not be found" msgstr "Impossibile trovare l'account %s (%s) " #: ../ui.c:112 msgid "Account not found" msgstr "Account non trovato" pidgin-otr-4.0.0/po/fa.po0000644000175000017500000007023412020421670012054 00000000000000# Off-the-Record Messaging plugin for pidgin. # Copyright (C) 2004-2012 Ian Goldberg, Rob Smits, Chris Alexander, Willy Lew, # Lisa Du, Nikita Borisov # This file is distributed under the same license as the pidgin-otr package. # Ian Goldberg , 2012 # msgid "" msgstr "" "Project-Id-Version: pidgin-otr 4.0.0.fa\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-06-14 09:45-0400\n" "PO-Revision-Date: 2012-06-25 11:08-0400\n" "Last-Translator: Hooman Mohajeri Moghaddam هومن مهاجری مقدم \n" "Language-Team: Hooman Mohajeri Moghaddam هومن مهاجری مقدم \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../gtk-dialog.c:332 ../gtk-dialog.c:1141 ../gtk-dialog.c:1145 #: ../gtk-dialog.c:1547 ../gtk-dialog.c:1584 ../gtk-dialog.c:1673 #: ../gtk-dialog.c:1748 ../gtk-dialog.c:2749 msgid "?lang=en" msgstr "?lang=fa" #: ../gtk-dialog.c:480 msgid "" "Your buddy is attempting to determine if he or she is really talking to you, " "or if it's someone pretending to be you. Your buddy has asked a question, " "indicated below. To authenticate to your buddy, enter the answer and click " "OK." msgstr "دوست شما قصد دارد اطمینان حاصل کند که در حال مکالمه با شماست و نه با فرد دیگری که قصد دارد خود را به جای شما معرفی نماید. دوست شما سوالی را ‏مطرح کرده است که در زیر آمده است. برا احراز هویت خود جواب سوال را وارد نمود و کلید OK را کلیک کنید." #: ../gtk-dialog.c:487 msgid "" "To authenticate using a question, pick a question whose answer is known only " "to you and your buddy. Enter this question and this answer, then wait for " "your buddy to enter the answer too. If the answers don't match, then you " "may be talking to an imposter." msgstr "برای احراز هویت به وسیله سوال، سوالی را که جواب آن را تنها شما و دوستتان می‌دانید انتخاب کنید. این سوال و جواب را وارد کرده و منتظر شوید که دوستتان نیز جواب را وارد کند. اگر جواب درست را دریافت نکردید ممکن است که با فرد دیگری (مهاجم) در حال مکالمه باشید! " #: ../gtk-dialog.c:505 #, c-format msgid "This is the question asked by your buddy:" msgstr "سوالی که توسط دوستتان پرسیده شده است:" #: ../gtk-dialog.c:508 #, c-format msgid "Enter question here:" msgstr "سوال را اینجا وارد نمایید:" #: ../gtk-dialog.c:540 ../gtk-dialog.c:624 msgid "This buddy is already authenticated." msgstr "هویت این دوست قبلاً احراز شده است." #: ../gtk-dialog.c:552 #, c-format msgid "Enter secret answer here (case sensitive):" msgstr "جواب سوال (مخفی) را اینجا وارد نمایید (حساس به حروف کوچک و بزرگ):" #: ../gtk-dialog.c:593 msgid "" "To authenticate, pick a secret known only to you and your buddy. Enter this " "secret, then wait for your buddy to enter it too. If the secrets don't " "match, then you may be talking to an imposter." msgstr "برای احراز هویت ، پیام محرمانه را که تنها شما و دوستتان آن را می‌دانید انتخاب کنید. این پیام را وارد کرده و منتظر شوید که دوستتان نیز آن را وارد کند. اگر پیام درست را دریافت نکردید ممکن است که با فرد دیگری (مهاجم) در حال مکالمه باشید! " #: ../gtk-dialog.c:607 #, c-format msgid "Enter secret here:" msgstr "پیام محرمانه را اینجا وارد نمایید:" #: ../gtk-dialog.c:657 ../gtk-dialog.c:1408 msgid "" "To verify the fingerprint, contact your buddy via some other " "authenticated channel, such as the telephone or GPG-signed email. Each of " "you should tell your fingerprint to the other." msgstr "برای اینکه دوست شما از اثرانگشت الکترونیکی شما مطلع شود از طریق یک کانال ارتباطی امن" "دیگر" "مانند تلفن یا ایمیلی که توسط GPG امضا شده است با او تماس بگیرید. هریک از شما باشد اثرانگشت خود را به دیگری بگویید." #: ../gtk-dialog.c:661 msgid "" "If everything matches up, you should chose I have in the menu below." msgstr "اگر همه چیز صحیح است باید در منوی زیر تایید می‌کنم را انتخاب نمایید." #: ../gtk-dialog.c:672 ../gtk-dialog.c:1397 msgid "[none]" msgstr "[هیچ]" #: ../gtk-dialog.c:679 ../gtk-dialog.c:1051 ../gtk-dialog.c:1404 #: ../gtk-dialog.c:1453 ../gtk-ui.c:212 ../otr-plugin.c:127 #: ../otr-plugin.c:300 ../ui.c:112 msgid "Unknown" msgstr "نامشخص" #: ../gtk-dialog.c:680 #, c-format msgid "" "Fingerprint for you, %s (%s):\n" "%s\n" "\n" "Purported fingerprint for %s:\n" "%s\n" msgstr "" "اثر انگشت برای شما، %s (%s):\n " "%s\n" "\n" "اثر انگشت ادّعا شده برای %s:\n" "%s\n" #: ../gtk-dialog.c:736 msgid "How would you like to authenticate your buddy?" msgstr "چگونه قصد دارید هویت خود را به دوستتان ثابت نمایید؟" #: ../gtk-dialog.c:745 msgid "Question and answer" msgstr "پرسش و پاسخ" #: ../gtk-dialog.c:748 msgid "Shared secret" msgstr "پیام محرمانه " #: ../gtk-dialog.c:751 msgid "Manual fingerprint verification" msgstr "تایید اثر انگشت به صورت دستی" #: ../gtk-dialog.c:802 msgid "_Authenticate" msgstr "" #: ../gtk-dialog.c:836 msgid "" "Authenticating a buddy helps ensure that the person you are talking to is " "who he or she claims to be." msgstr " احراز هویت یک دوست به شما این امکان را می‌دهد که اطمینان حاصل کنید که کسی با او در حال مکالمه هستید همان کسی است که ادعا می‌کند." #. Translators: you are asked to authenticate yourself #: ../gtk-dialog.c:946 msgid "Authenticating to Buddy" msgstr "در حال اثبات هویت به دوست شما" #. Translators: you asked your buddy to authenticate him/herself #: ../gtk-dialog.c:948 msgid "Authenticating Buddy" msgstr "در حال احراز هویت دوست شما" #: ../gtk-dialog.c:975 #, c-format msgid "Authenticating to %s" msgstr "در حال اثبات هویت به %s" #: ../gtk-dialog.c:976 #, c-format msgid "Authenticating %s" msgstr "در حال احراز هویت %s" #: ../gtk-dialog.c:1009 msgid "Waiting for buddy..." msgstr "منتظر دوست شما..." #: ../gtk-dialog.c:1042 msgid "Generating private key" msgstr "در حال تولید کلید خصوصی" #: ../gtk-dialog.c:1043 msgid "Please wait" msgstr "لطفا صبر کنید" #. Create the Please Wait... dialog #: ../gtk-dialog.c:1054 #, c-format msgid "Generating private key for %s (%s)..." msgstr "%s (%s) در حال تولید کلید خصوصی برای " #: ../gtk-dialog.c:1099 #, c-format msgid "%s Done." msgstr " .پایان %s" #: ../gtk-dialog.c:1139 #, c-format msgid "" "%s is contacting you from an unrecognized computer. You should authenticate this buddy." msgstr " از یک کامپیوتر ناشناس در حال برقراری ارتباط با شماست. شما باید او را %s" "احراز حویت" "نمایید." #: ../gtk-dialog.c:1143 #, c-format msgid "" "%s has not been authenticated yet. You should authenticate this buddy." msgstr " %s هویت " "هنوز تایید نشده است." "شما باید او را " "احراز حویت" "نمایید." #: ../gtk-dialog.c:1195 ../gtk-dialog.c:1969 ../gtk-dialog.c:2745 #: ../gtk-ui.c:83 msgid "Finished" msgstr "پایان یافت" #: ../gtk-dialog.c:1196 ../gtk-dialog.c:1966 ../gtk-dialog.c:2742 #: ../gtk-ui.c:82 msgid "Private" msgstr "محرمانه" #: ../gtk-dialog.c:1197 ../gtk-dialog.c:1963 ../gtk-dialog.c:2739 #: ../gtk-ui.c:81 msgid "Unverified" msgstr "تایید نشده" #: ../gtk-dialog.c:1198 ../gtk-ui.c:80 msgid "Not private" msgstr "غیر محرمانه" #: ../gtk-dialog.c:1201 msgid "OTR" msgstr "OTR" #. Translators: the following four messages should give alternative #. * sentences. The user selects the first or second message in a combo box; #. * the third message, a new line, a fingerprint, a new line, and #. * the fourth message will follow it. #: ../gtk-dialog.c:1351 msgid "I have not" msgstr "تایید نمی‌کنم" #. 2nd message #: ../gtk-dialog.c:1353 msgid "I have" msgstr "تایید می‌کنم" #. 3rd message #: ../gtk-dialog.c:1356 msgid " verified that this is in fact the correct" msgstr "تایید شد که این درست است" #. 4th message #: ../gtk-dialog.c:1366 #, c-format msgid "fingerprint for %s." msgstr "اثرانگشت برای %s" #: ../gtk-dialog.c:1393 #, c-format msgid "Verify fingerprint for %s" msgstr "اثر انگشت برای %s را تایید کنید" #: ../gtk-dialog.c:1405 #, c-format msgid "" "%s %s\n" "\n" "Fingerprint for you, %s (%s):\n" "%s\n" "\n" "Purported fingerprint for %s:\n" "%s\n" msgstr "" "%s %s\n" "\n" "اثر انگشت برای شما, %s (%s):\n" "%s\n" "\n" "اثر انگشت ادّعا شده برای %s:\n" "%s\n" #: ../gtk-dialog.c:1412 msgid "" "If everything matches up, you should indicate in the above dialog that you " "have verified the fingerprint." msgstr " شمااگر همه چیز درست است باید در پنجره بالا مشخص کنید که شما اثرانگشت را" "تایید کرده‌اید." #: ../gtk-dialog.c:1418 ../gtk-ui.c:844 msgid "Verify fingerprint" msgstr "اثر انگشت را تایید کنید" #: ../gtk-dialog.c:1445 #, c-format msgid "Authentication from %s" msgstr "احراز هویت از طرف %s" #: ../gtk-dialog.c:1448 #, c-format msgid "Authenticate %s" msgstr "هویت %s را تایید کنید" #: ../gtk-dialog.c:1456 msgid "Authenticate Buddy" msgstr "هویت دوست خود را تایید کنید " #: ../gtk-dialog.c:1487 msgid "An error occurred during authentication." msgstr "اشکالی در احراز هویت اتفاق افتاده است" #: ../gtk-dialog.c:1502 msgid "Authentication successful." msgstr "احراز هویت موفقیت‌آمیز انجام شد." #: ../gtk-dialog.c:1505 msgid "" "Your buddy has successfully authenticated you. You may want to authenticate " "your buddy as well by asking your own question." msgstr "دوست شما با موفقیت هویت شما را تایید کرده است. شما هم می‌توانید با پرسیدن سوال هویت دوستتان را تایید کنید." #: ../gtk-dialog.c:1511 msgid "Authentication failed." msgstr "احراز هویت انجام نشد" #: ../gtk-dialog.c:1541 #, c-format msgid "Private conversation with %s started.%s%s" msgstr "مکالمه محرمانه با %s آغاز شد.%s%s" #: ../gtk-dialog.c:1545 #, c-format msgid "Unverified conversation with %%s started.%%s%%s" msgstr "یک مکالمهتایید نشده با %%s آغاز شد.%%s%%s" #. This last case should never happen, since we know #. * we're in ENCRYPTED. #: ../gtk-dialog.c:1553 #, c-format msgid "Not private conversation with %s started.%s%s" msgstr "مکالمه غیر محرمانه با %s آغاز شد. %s%s" #: ../gtk-dialog.c:1559 ../gtk-dialog.c:1686 msgid " Warning: using old protocol version 1." msgstr " هشدار: در حال استفاده از پروتکل قدیمی ۱." #: ../gtk-dialog.c:1561 msgid " Your client is logging this conversation." msgstr " دستگاه شما این مکالمه را ثبت می‌کند." #: ../gtk-dialog.c:1562 msgid " Your client is not logging this conversation." msgstr " دستگاه شما این مکالمه را ثبت نمی‌کند." #: ../gtk-dialog.c:1581 #, c-format msgid "" "Your buddy is logged in multiple times and OTR has established multiple sessions. Use the icon menu above if you wish to select the " "outgoing session." msgstr "ودوست شما از چند محل مختلف لاگین کرده‌است و OTR چندین نشست برقرار کرده‌است. می‌توانید از منوهای بالا نشست خود را انتخاب کنید." #: ../gtk-dialog.c:1601 #, c-format msgid "Private conversation with %s lost." msgstr "نشست محرمانه با %s قطع شد." #: ../gtk-dialog.c:1638 #, c-format msgid "" "%s has ended his/her private conversation with you; you should do the same." msgstr ".نشست محرمانه خود را با شما پایان داده‌است؛ شما نیز باید همین کار را انجام دهید %s" #: ../gtk-dialog.c:1665 #, c-format msgid "Successfully refreshed the private conversation with %s.%s" msgstr " مکالمه محرمانه با %s با موفقیت رفرش شد.%s" #: ../gtk-dialog.c:1670 #, c-format msgid "" "Successfully refreshed the unverified conversation with " "%%s.%%s" msgstr "با موفقیت مکالمه تایید نشده با " "%%s رفرش شد.%%s" #. This last case should never happen, since we know #. * we're in ENCRYPTED. #: ../gtk-dialog.c:1679 #, c-format msgid "Successfully refreshed the not private conversation with %s.%s" msgstr " مکالمه غیرمحرمانه با %s با موفقیت رفرش گردید. %s" #: ../gtk-dialog.c:1712 #, c-format msgid "Attempting to refresh the private conversation with %s..." msgstr "... %s در حال تلاش برای رفرش کردن مکالمه محرمانه با" #: ../gtk-dialog.c:1714 #, c-format msgid "Attempting to start a private conversation with %s..." msgstr ".%s در حال تلاش برای رفرش کردن مکالمه محرمانه با " #: ../gtk-dialog.c:1899 ../gtk-dialog.c:2026 msgid "Start _private conversation" msgstr "آغاز مکالکه _محرمانه" #: ../gtk-dialog.c:1900 msgid "Refresh _private conversation" msgstr "رفرش مکالمه _محرمانه" #: ../gtk-dialog.c:1905 msgid "Re_authenticate buddy" msgstr "_احراز هویت مجدد دوست" #: ../gtk-dialog.c:1906 ../gtk-dialog.c:2030 msgid "_Authenticate buddy" msgstr "_احراز هویت دوست" #: ../gtk-dialog.c:1960 ../gtk-dialog.c:2736 msgid "Not Private" msgstr "غیر محرمانه" #: ../gtk-dialog.c:1982 msgid "_What's this?" msgstr "_این چیست؟" #: ../gtk-dialog.c:2028 msgid "_End private conversation" msgstr "_پایان مکالکه محرمانه" #: ../gtk-dialog.c:2207 ../gtk-dialog.c:2255 #, c-format msgid "" "Warning: The selected outgoing OTR session (%u) is not the most recently " "active one (%u). Your buddy may not receive your messages. Use the icon menu " "above to select a different outgoing session." msgstr "هشدار: نشست خروجی" "OTR" "که هم‌اکنون انتخاب شده (%u) جدیدترین نشست فعال نیست (%u). دوست شما ممکن است پیام‌های شما را دریافت نکند. " "برای تغییر نشست خروجی از منوی بالا استفاده کنید." #: ../gtk-dialog.c:2271 msgid "Send to most secure" msgstr "به امن‌ترین بفرست" #: ../gtk-dialog.c:2273 msgid "Send to most recent" msgstr "به جدیدترین بفرست" #: ../gtk-dialog.c:2377 #, c-format msgid "Session %u" msgstr "نشست %u" #: ../gtk-dialog.c:2395 ../gtk-dialog.c:2506 msgid "Select" msgstr "انتخاب کنید" #: ../gtk-dialog.c:2410 msgid "Selected" msgstr "انتخاب شده" #: ../gtk-dialog.c:2731 #, c-format msgid "" "The privacy status of the current conversation is now: %s" msgstr "وضعیت محرمانگی مکالمه کنونی: %s" #: ../gtk-dialog.c:2956 msgid "OTR Messaging" msgstr "سیستم پیام‌رسانی OTR" #: ../gtk-ui.c:103 #, c-format msgid "Fingerprint: %.80s" msgstr "اثر انگشت: %.80s" #: ../gtk-ui.c:107 #, c-format msgid "No key present" msgstr "کلیدی موجود نیست" #: ../gtk-ui.c:112 #, c-format msgid "No account available" msgstr "اکانتی موجود نیست." #: ../gtk-ui.c:179 msgid "Unused" msgstr "بلاستفاده" #: ../gtk-ui.c:208 msgid "Yes" msgstr "بلی" #: ../gtk-ui.c:208 msgid "No" msgstr "نه" #: ../gtk-ui.c:473 msgid "Enable private messaging" msgstr "پیام‌دهی محرمانه را فعال کن" #: ../gtk-ui.c:475 msgid "Automatically initiate private messaging" msgstr "به صورت خودکار پیام‌دهی محرمانه را فعال کن" #: ../gtk-ui.c:477 msgid "Require private messaging" msgstr "پیام‌دهی محرمانه را الزامی کن" #: ../gtk-ui.c:480 msgid "Don't log OTR conversations" msgstr "پیام‌های OTR را ثبت نکن" #: ../gtk-ui.c:524 msgid "Show OTR button in toolbar" msgstr "دکمه OTR را در نوار ابزار نمایش بده" #: ../gtk-ui.c:663 msgid "My private keys" msgstr "کلیدهای خصوصی من" #: ../gtk-ui.c:672 msgid "Key for account:" msgstr "کلید برای اکانت:" #: ../gtk-ui.c:697 msgid "Generate" msgstr "تولید کن" #: ../gtk-ui.c:738 msgid "Default OTR Settings" msgstr "تنظیمات اولیه OTR" #: ../gtk-ui.c:765 msgid "OTR UI Options" msgstr "امکانات واسط گرافیکی OTR" #: ../gtk-ui.c:788 msgid "Screenname" msgstr "اسم‌نمایش" #: ../gtk-ui.c:789 msgid "Status" msgstr "وضعیت" #: ../gtk-ui.c:790 msgid "Verified" msgstr "تایید شده" #: ../gtk-ui.c:791 msgid "Fingerprint" msgstr "اثرانگشت" #: ../gtk-ui.c:792 msgid "Account" msgstr "اکانت" #: ../gtk-ui.c:828 msgid "Start private connection" msgstr "مکالمه خصوصی را آغاز کن" #: ../gtk-ui.c:836 msgid "End private connection" msgstr "مکالمه خصوصی را تمام کن" #: ../gtk-ui.c:852 msgid "Forget fingerprint" msgstr "اثرانگشت را فراموش کن" #: ../gtk-ui.c:903 msgid "Config" msgstr "تنظیمات" #: ../gtk-ui.c:905 msgid "Known fingerprints" msgstr "اثرهای انگشت شناخته شده" #: ../gtk-ui.c:1003 ../otr-plugin.c:964 msgid "OTR Settings" msgstr "تنظیمات OTR" #. Set the title #: ../gtk-ui.c:1021 #, c-format msgid "OTR Settings for %s" msgstr "تنظیمات OTR برای %s" #. Make the cascaded checkboxes #: ../gtk-ui.c:1038 msgid "Use default OTR settings for this buddy" msgstr "برای این دوست تنظیمات اولیه OTR را استفاده کن" #: ../otr-plugin.c:125 #, c-format msgid "You are not currently connected to account %s (%s)." msgstr "شما در حال حاضر به اکانت %s متصل نیستید (%s)." #: ../otr-plugin.c:129 msgid "Not connected" msgstr "ارتباط برقرار نیست" #: ../otr-plugin.c:212 ../otr-plugin.c:254 #, c-format msgid "Out of memory building filenames!\n" msgstr "حافظه لازم برای ساختن نام فایل موجود نمی‌باشد! \n" #: ../otr-plugin.c:224 ../otr-plugin.c:260 #, c-format msgid "Could not write private key file\n" msgstr "امکان نوشتن فایل کلید خصوصی نیست \n" #: ../otr-plugin.c:298 #, c-format msgid "Unknown account %s (%s)." msgstr "اکانت نامشخص %s (%s)." #: ../otr-plugin.c:302 msgid "Unknown account" msgstr "اکانت نامشخص" #: ../otr-plugin.c:364 msgid "Error occurred encrypting message." msgstr "خطا در هنگام رمزکردن پیام." #: ../otr-plugin.c:368 #, c-format msgid "You sent encrypted data to %s, who wasn't expecting it." msgstr "شما پیامی رمز شده به %s فرستادید که انتظار آن را نداشته‌است." #: ../otr-plugin.c:374 msgid "You transmitted an unreadable encrypted message." msgstr "شما پیامی رمز شده فرستادید که قابل خواندن نبوده‌است." #: ../otr-plugin.c:377 msgid "You transmitted a malformed data message." msgstr "شما پیامی ناقص فرستاده‌اید." #: ../otr-plugin.c:390 msgid "[resent]" msgstr "[دوباره فرستاده شد]" #: ../otr-plugin.c:459 #, c-format msgid "You attempted to send an unencrypted message to %s" msgstr "شما تلاش کردید یک پیام رمزنشده به %s بفرستید." #: ../otr-plugin.c:462 msgid "Attempting to start a private conversation..." msgstr "در حال تلاش برای آغاز یک مکالمه محرمانه..." #: ../otr-plugin.c:464 msgid "OTR Policy Violation" msgstr "تخلف از قوانین OTR" #: ../otr-plugin.c:465 msgid "" "Unencrypted messages to this recipient are not allowed. Attempting to start " "a private conversation.\n" "\n" "Your message will be retransmitted when the private conversation starts." msgstr "ارسال پیام‌های رمزنشده به این گیرنده امکان‌پذیر نمی‌باشد. در حال تلاش برای " "برقراری یک مکالمه محرمانه.\n" "\n" "پیام‌های شما پس از برقراری مکالمه محرمانه مجدداً فرستاده‌ خواهندشد." #: ../otr-plugin.c:474 msgid "" "An error occurred when encrypting your message. The message was not sent." msgstr "اشکالی در رمزکردن پیام شما رخ داده‌است. پیام فرستاده نشد." #: ../otr-plugin.c:476 msgid "Error encrypting message" msgstr "اشکال در رمزکردن پیام " #: ../otr-plugin.c:477 msgid "An error occurred when encrypting your message" msgstr "اشکالی در رمزکردن پیام شما رخ داده‌است." #: ../otr-plugin.c:478 msgid "The message was not sent." msgstr " پیام فرستاده نشد" #: ../otr-plugin.c:481 #, c-format msgid "%s has already closed his/her private connection to you" msgstr "%s مکالمه محرمانه خود را با شما پایان داده‌است." #: ../otr-plugin.c:484 msgid "" "Your message was not sent. Either end your private conversation, or restart " "it." msgstr " پیام شما فرستاده نشد. مکالمه محرمانه خود را پایان دهید یا آن را دوباره آغاز کنید." #: ../otr-plugin.c:487 msgid "Private connection closed" msgstr "ارتباط محرمانه قطع شد" #: ../otr-plugin.c:488 msgid "" "Your message was not sent. Either close your private connection to him, or " "refresh it." msgstr " پیام شما فرستاده نشد. ارتباط محرمانه خود را با وی پایان دهید یا آن را دوباره آغاز کنید." #: ../otr-plugin.c:498 msgid "Error setting up private conversation: Malformed message received" msgstr "اشکال در راه‌اندازی مکالمه محرمانه: پیام ناقص دریافت شد" #: ../otr-plugin.c:502 #, c-format msgid "Error setting up private conversation: %s" msgstr "اشکال در راه‌اندازی مکالمه محرمانه: %s" #: ../otr-plugin.c:509 ../otr-plugin.c:520 ../otr-plugin.c:547 #: ../otr-plugin.c:555 ../otr-plugin.c:573 msgid "OTR Error" msgstr "اشکال در OTR" #: ../otr-plugin.c:516 msgid "" "We are receiving our own OTR messages. You are either trying to talk to " "yourself, or someone is reflecting your messages back at you." msgstr "شما در حال دریافت پیام‌های OTR خودتان هستید." #: ../otr-plugin.c:520 msgid "We are receiving our own OTR messages." msgstr "شما در حال دریافت پیام‌های OTR خودتان هستید." "شما در حال صحبت با خودتان هستید، یا کسی پیام‌های شما را به خودتان باز می‌گرداند." #: ../otr-plugin.c:521 msgid "" "You are either trying to talk to yourself, or someone is reflecting your " "messages back at you." msgstr "شما در حال صحبت با خودتان هستید، یا کسی پیام‌های شما را به خودتان باز می‌گرداند." #: ../otr-plugin.c:526 #, c-format msgid "The last message to %s was resent." msgstr "پیام قبلی به %s دوباره فرستاده شد." #: ../otr-plugin.c:530 msgid "Message resent" msgstr "پیام دوباره فرستاده شد" #: ../otr-plugin.c:534 #, c-format msgid "" "The encrypted message received from %s is unreadable, as you are not " "currently communicating privately." msgstr "پیام رمزشده از طرف %s قابل خواندن نیست زیرا که شما در حال مکالمه محرمانه نیستید." #: ../otr-plugin.c:539 msgid "Unreadable message" msgstr "پیام غیرقابل خواندن" #: ../otr-plugin.c:543 #, c-format msgid "We received an unreadable encrypted message from %s." msgstr "ما پیامی رمز شده از %s دریافت کردیم که قابل خواندن نیست." #: ../otr-plugin.c:551 #, c-format msgid "We received a malformed data message from %s." msgstr "ما پیامی ناقص از %s دریافت کردیم." #: ../otr-plugin.c:559 #, c-format msgid "Heartbeat received from %s.\n" msgstr "پیام خالی از %s دریافت شد. \n" #: ../otr-plugin.c:565 #, c-format msgid "Heartbeat sent to %s.\n" msgstr "پیام خالی به %s فرستاده شد. \n" #: ../otr-plugin.c:576 #, c-format msgid "" "The following message received from %s was not encrypted: [%" "s]" msgstr "" "پیام زیر از طرف %s دریافت شده رمز نشده است. [%" "s]" #: ../otr-plugin.c:581 msgid "Received unencrypted message" msgstr "پیامی رمز نشده دریافت شد" #: ../otr-plugin.c:587 #, c-format msgid "Unrecognized OTR message received from %s.\n" msgstr "یک پیام ناشناخته OTR از %s دریافت شد. \n" #: ../otr-plugin.c:596 #, c-format msgid "" "%s has sent a message intended for a different session. If you are logged in " "multiple times, another session may have received the message." msgstr "%s پیامی برای نشستی دیگر فرستاد است. اگر در چندجای مختلف لاگین شده اید ممکن است نشستی دیگر پیام را دریافت کرده باشد." #: ../otr-plugin.c:602 msgid "Received message for a different session" msgstr "پیامی از نشست دیگری دریافت شد" #. 2013-01-01 #: ../otr-plugin.c:1193 ../otr-plugin.c:1220 #, c-format msgid "OTR PLUGIN v%s" msgstr "افزونه OTR ورژن %s" #: ../otr-plugin.c:1202 #, c-format msgid "" "This beta copy of the Off-the-Record Messaging v%s Pidgin plugin has expired " "as of 2013-01-01. Please look for an updated release at http://otr." "cypherpunks.ca/" msgstr " این کپی بتا از افزونه سیستم پیام‌رسانی Off-the-Record ورژن %s برای Pidgin از تاریخ 2013-01-01 منقضی شده است. " "لطفا برای دریافت نسخه ارتقاء یافته به /http://otr.cypherpunks.ca مراجع کنید " #: ../otr-plugin.c:1229 #, c-format msgid "" "You have enabled a beta version of the Off-the-Record Messaging v%s Pidgin " "plugin. This version is intended for testing purposes only and is not for " "general purpose use." msgstr "شما ورژنی بتا از افزونه Off-the-Record %s برای Pidgin را فعال کرده‌اید. این ورژن تنها برای تست است و نباید برای کاربردهای عمومی استفاده شود. " #: ../otr-plugin.c:1414 msgid "Off-the-Record Messaging" msgstr "سیستم پیام‌دهی Off-the-Record" #: ../otr-plugin.c:1415 msgid "Provides private and secure conversations" msgstr "مکالمات محرمانه و امن را امکان‌پذیر می‌کند" #: ../otr-plugin.c:1416 msgid "" "Preserves the privacy of IM communications by providing encryption, " "authentication, deniability, and perfect forward secrecy." msgstr "محرمانگی مکالمات IM را از طریق رمزنگاری، احراز هویت، قابلیت انکار و امکان محرمانگی رو به جلو را فراهم می‌سازد." #: ../ui.c:110 #, c-format msgid "Account %s (%s) could not be found" msgstr "اکانت %s (%s) پیدا نشد." #: ../ui.c:114 msgid "Account not found" msgstr "اکانت پیدا نشد." pidgin-otr-4.0.0/po/Makefile.in.in0000644000175000017500000001537712021367770013622 00000000000000# Makefile for program source directory in GNU NLS utilities package. # Copyright (C) 1995, 1996, 1997 by Ulrich Drepper # Copyright (C) 2004-2008 Rodney Dawes # # This file may be copied and used freely without restrictions. It may # be used in projects which are not available under a GNU Public License, # but which still want to provide support for the GNU gettext functionality. # # - Modified by Owen Taylor to use GETTEXT_PACKAGE # instead of PACKAGE and to look for po2tbl in ./ not in intl/ # # - Modified by jacob berkman to install # Makefile.in.in and po2tbl.sed.in for use with glib-gettextize # # - Modified by Rodney Dawes for use with intltool # # We have the following line for use by intltoolize: # INTLTOOL_MAKEFILE GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ PACKAGE = @PACKAGE@ VERSION = @VERSION@ SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ top_builddir = @top_builddir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ datadir = @datadir@ datarootdir = @datarootdir@ libdir = @libdir@ DATADIRNAME = @DATADIRNAME@ itlocaledir = $(prefix)/$(DATADIRNAME)/locale subdir = po install_sh = @install_sh@ # Automake >= 1.8 provides @mkdir_p@. # Until it can be supposed, use the safe fallback: mkdir_p = $(install_sh) -d INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ GMSGFMT = @GMSGFMT@ MSGFMT = @MSGFMT@ XGETTEXT = @XGETTEXT@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ MSGMERGE = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist GENPOT = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot ALL_LINGUAS = @ALL_LINGUAS@ PO_LINGUAS=$(shell if test -r $(srcdir)/LINGUAS; then grep -v "^\#" $(srcdir)/LINGUAS; else echo "$(ALL_LINGUAS)"; fi) USER_LINGUAS=$(shell if test -n "$(LINGUAS)"; then LLINGUAS="$(LINGUAS)"; ALINGUAS="$(ALL_LINGUAS)"; for lang in $$LLINGUAS; do if test -n "`grep \^$$lang$$ $(srcdir)/LINGUAS 2>/dev/null`" -o -n "`echo $$ALINGUAS|tr ' ' '\n'|grep \^$$lang$$`"; then printf "$$lang "; fi; done; fi) USE_LINGUAS=$(shell if test -n "$(USER_LINGUAS)" -o -n "$(LINGUAS)"; then LLINGUAS="$(USER_LINGUAS)"; else if test -n "$(PO_LINGUAS)"; then LLINGUAS="$(PO_LINGUAS)"; else LLINGUAS="$(ALL_LINGUAS)"; fi; fi; for lang in $$LLINGUAS; do printf "$$lang "; done) POFILES=$(shell LINGUAS="$(PO_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.po "; done) DISTFILES = Makefile.in.in POTFILES.in $(POFILES) EXTRA_DISTFILES = ChangeLog POTFILES.skip Makevars LINGUAS POTFILES = \ # This comment gets stripped out CATALOGS=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.gmo "; done) .SUFFIXES: .SUFFIXES: .po .pox .gmo .mo .msg .cat .po.pox: $(MAKE) $(GETTEXT_PACKAGE).pot $(MSGMERGE) $< $(GETTEXT_PACKAGE).pot -o $*.pox .po.mo: $(MSGFMT) -o $@ $< .po.gmo: file=`echo $* | sed 's,.*/,,'`.gmo \ && rm -f $$file && $(GMSGFMT) -o $$file $< .po.cat: sed -f ../intl/po2msg.sed < $< > $*.msg \ && rm -f $@ && gencat $@ $*.msg all: all-@USE_NLS@ all-yes: $(CATALOGS) all-no: $(GETTEXT_PACKAGE).pot: $(POTFILES) $(GENPOT) install: install-data install-data: install-data-@USE_NLS@ install-data-no: all install-data-yes: all linguas="$(USE_LINGUAS)"; \ for lang in $$linguas; do \ dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \ $(mkdir_p) $$dir; \ if test -r $$lang.gmo; then \ $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ echo "installing $$lang.gmo as $$dir/$(GETTEXT_PACKAGE).mo"; \ else \ $(INSTALL_DATA) $(srcdir)/$$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ echo "installing $(srcdir)/$$lang.gmo as" \ "$$dir/$(GETTEXT_PACKAGE).mo"; \ fi; \ if test -r $$lang.gmo.m; then \ $(INSTALL_DATA) $$lang.gmo.m $$dir/$(GETTEXT_PACKAGE).mo.m; \ echo "installing $$lang.gmo.m as $$dir/$(GETTEXT_PACKAGE).mo.m"; \ else \ if test -r $(srcdir)/$$lang.gmo.m ; then \ $(INSTALL_DATA) $(srcdir)/$$lang.gmo.m \ $$dir/$(GETTEXT_PACKAGE).mo.m; \ echo "installing $(srcdir)/$$lang.gmo.m as" \ "$$dir/$(GETTEXT_PACKAGE).mo.m"; \ else \ true; \ fi; \ fi; \ done # Empty stubs to satisfy archaic automake needs dvi info ctags tags CTAGS TAGS ID: # Define this as empty until I found a useful application. install-exec installcheck: uninstall: linguas="$(USE_LINGUAS)"; \ for lang in $$linguas; do \ rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ done check: all $(GETTEXT_PACKAGE).pot rm -f missing notexist srcdir=$(srcdir) $(INTLTOOL_UPDATE) -m if [ -r missing -o -r notexist ]; then \ exit 1; \ fi mostlyclean: rm -f *.pox $(GETTEXT_PACKAGE).pot *.old.po cat-id-tbl.tmp rm -f .intltool-merge-cache clean: mostlyclean distclean: clean rm -f Makefile Makefile.in POTFILES stamp-it rm -f *.mo *.msg *.cat *.cat.m *.gmo maintainer-clean: distclean @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." rm -f Makefile.in.in distdir = ../$(PACKAGE)-$(VERSION)/$(subdir) dist distdir: $(DISTFILES) dists="$(DISTFILES)"; \ extra_dists="$(EXTRA_DISTFILES)"; \ for file in $$extra_dists; do \ test -f $(srcdir)/$$file && dists="$$dists $(srcdir)/$$file"; \ done; \ for file in $$dists; do \ test -f $$file || file="$(srcdir)/$$file"; \ ln $$file $(distdir) 2> /dev/null \ || cp -p $$file $(distdir); \ done update-po: Makefile $(MAKE) $(GETTEXT_PACKAGE).pot tmpdir=`pwd`; \ linguas="$(USE_LINGUAS)"; \ for lang in $$linguas; do \ echo "$$lang:"; \ result="`$(MSGMERGE) -o $$tmpdir/$$lang.new.po $$lang`"; \ if $$result; then \ if cmp $(srcdir)/$$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ rm -f $$tmpdir/$$lang.new.po; \ else \ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ :; \ else \ echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ rm -f $$tmpdir/$$lang.new.po; \ exit 1; \ fi; \ fi; \ else \ echo "msgmerge for $$lang.gmo failed!"; \ rm -f $$tmpdir/$$lang.new.po; \ fi; \ done Makefile POTFILES: stamp-it @if test ! -f $@; then \ rm -f stamp-it; \ $(MAKE) stamp-it; \ fi stamp-it: Makefile.in.in $(top_builddir)/config.status POTFILES.in cd $(top_builddir) \ && CONFIG_FILES=$(subdir)/Makefile.in CONFIG_HEADERS= CONFIG_LINKS= \ $(SHELL) ./config.status # Tell versions [3.59,3.63) of GNU make not to export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: pidgin-otr-4.0.0/po/pl.po0000644000175000017500000004252411767120042012110 00000000000000# Off-the-Record Messaging plugin for pidgin. # Copyright (C) 2004-2008 Ian Goldberg, Rob Smits, # Chris Alexander, Nikita Borisov # This file is distributed under the same license as the pidgin-otr package. # Paweł Czochański , 2009. # msgid "" msgstr "" "Project-Id-Version: pidgin-otr 3.2.0-de\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2008-06-12 00:34+0200\n" "PO-Revision-Date: 2008-05-28 09:12+0200\n" "Last-Translator: Paweł Czochański \n" "Language-Team: Paweł Czochański \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../gtk-dialog.c:291 ../gtk-dialog.c:1144 ../gtk-dialog.c:1148 #: ../gtk-dialog.c:1310 ../gtk-dialog.c:1488 ../gtk-dialog.c:1669 #: ../gtk-dialog.c:1772 ../gtk-dialog.c:1863 ../gtk-dialog.c:2309 msgid "?lang=en" msgstr "?lang=pl" #: ../gtk-dialog.c:440 ../gtk-dialog.c:2043 ../gtk-dialog.c:2517 msgid "_What's this?" msgstr "_Co to jest?" #: ../gtk-dialog.c:475 msgid "" "Your buddy is attempting to determine if he or she is really talking to you, " "or if it's someone pretending to be you. Your buddy has asked a question, " "indicated below. To authenticate to your buddy, enter the answer and click " "OK." msgstr "" "Twój współrozmówca próbuje sprawdzić, czy rzeczywiście rozmawia z tobą, " "czy może z kimś kto podszywa się pod ciebie. By to sprawdzić pragnie zadać ci " "poniższe pytanie. By uwierzytelnić się wpisz poprawną odpowiedź i kliknij " "OK." #: ../gtk-dialog.c:482 msgid "" "To authenticate using a question, pick a question whose answer is known only " "to you and your buddy. Enter this question and this answer, then wait for " "your buddy to enter the answer too. If the answers don't match, then you " "may be talking to an imposter." msgstr "" "By uwierzytelnić rozmowę wymyśl pytanie na które odpowiedź znana jest tylko " "tobie i twojemu współrozmówcy. Wpisz swoje pytanie i odpowiedź, a następnie " "zaczekaj aż twój współrozmówca poda własną odpowiedź. Jeżeli odpowiedzi " "nie będą zgodne ze sobą może to oznaczać, że rozmawiasz z oszustem." #: ../gtk-dialog.c:500 msgid "This is the question asked by your buddy:" msgstr "Pytanie zadane przez twojego współrozmówcy to:" #: ../gtk-dialog.c:503 msgid "Enter question here:" msgstr "Tu wpisz swoje pytanie:" #: ../gtk-dialog.c:534 ../gtk-dialog.c:618 msgid "This buddy is already authenticated." msgstr "Ten rozmówca jest już uwierzytelniony." #: ../gtk-dialog.c:546 msgid "Enter secret answer here (case sensitive):" msgstr "Tu wpisz odpowiedź na pytanie: (wielkość liter ma znaczenie)" #: ../gtk-dialog.c:587 msgid "" "To authenticate, pick a secret known only to you and your buddy. Enter this " "secret, then wait for your buddy to enter it too. If the secrets don't " "match, then you may be talking to an imposter." msgstr "" "By uwierzytelnić rozmowę wybierz sekret znany jedynie tobie i twojemu współrozmówcy. " "Wpisz ten sekret i zaczekaj aż twój współrozmówca również go wprowadzi. Jeżeli " "wprowadzone sekrety nie będą się zgadzać, może to oznaczać, że rozmawiasz z oszustem." #: ../gtk-dialog.c:601 msgid "Enter secret here:" msgstr "Tu wprowadź sekret:" #: ../gtk-dialog.c:652 ../gtk-dialog.c:1477 ../gtk-dialog.c:1530 msgid "" "To verify the fingerprint, contact your buddy via some other " "authenticated channel, such as the telephone or GPG-signed email. Each of " "you should tell your fingerprint to the other." msgstr "" "By zweryfikować klucz, skontaktuj się ze swoim współrozmówcą " "wykorzystując jakiś inny uwierzytelniony kanał, jak np. telefon lub email z podpisem GPG, " "i wymieńcie się swoimi kluczami." #: ../gtk-dialog.c:656 ../gtk-dialog.c:1481 ../gtk-dialog.c:1534 msgid "" "If everything matches up, you should indicate in the above dialog that you " "have verified the fingerprint." msgstr "" "Jeżeli wszystko się zgodzi, powyższe okno powinno zasygnalizować ci, że " "weryfikacja przebiegła pomyślnie." #: ../gtk-dialog.c:667 ../gtk-dialog.c:1519 msgid "[none]" msgstr "[brak]" #: ../gtk-dialog.c:674 ../gtk-dialog.c:1032 ../gtk-dialog.c:1526 #: ../gtk-dialog.c:1577 ../gtk-ui.c:181 ../otr-plugin.c:116 #: ../otr-plugin.c:213 ../ui.c:111 msgid "Unknown" msgstr "Nieznany" #: ../gtk-dialog.c:675 #, c-format msgid "" "Fingerprint for you, %s (%s):\n" "%s\n" "\n" "Purported fingerprint for %s:\n" "%s\n" msgstr "" "Twój klucz, %s (%s):\n" "%s\n" "\n" "Rzekomy klucz %s:\n" "%s\n" #: ../gtk-dialog.c:727 msgid "How would you like to authenticate your buddy?" msgstr "Jaki sposób uwierzytelniania pragniesz zastosować?" #: ../gtk-dialog.c:736 msgid "Question and answer" msgstr "Pytanie i odpowiedź" #: ../gtk-dialog.c:739 msgid "Shared secret" msgstr "Współdzielony sekret" #: ../gtk-dialog.c:742 msgid "Manual fingerprint verification" msgstr "Ręczna wymiana kluczy" #: ../gtk-dialog.c:785 msgid "_Authenticate" msgstr "_Uwierzytelnij" #: ../gtk-dialog.c:818 msgid "" "Authenticating a buddy helps ensure that the person you are talking to is " "who he or she claims to be." msgstr "" "Uwierzytelnianie współrozmówcy umożliwia upewnienie się, że osoba, z którą rozmawiasz, " "jest tą, za którą się podaje." #. Translators: you are asked to authenticate yourself #: ../gtk-dialog.c:927 msgid "Authenticating to Buddy" msgstr "Uwierzytelnij się" #. Translators: you asked your buddy to authenticate him/herself #: ../gtk-dialog.c:929 msgid "Authenticating Buddy" msgstr "Uwierzytelnij" #: ../gtk-dialog.c:956 #, c-format msgid "Authenticating to %s" msgstr "Uwierzytelnianie dla %s" #: ../gtk-dialog.c:957 #, c-format msgid "Authenticating %s" msgstr "Uwierzytelnianie %s" #: ../gtk-dialog.c:990 msgid "Waiting for buddy..." msgstr "Oczekiwanie..." #: ../gtk-dialog.c:1023 msgid "Generating private key" msgstr "Generowanie klucza prywatnego" #: ../gtk-dialog.c:1024 msgid "Please wait" msgstr "Proszę czekać" #. Create the Please Wait... dialog #: ../gtk-dialog.c:1035 #, c-format msgid "Generating private key for %s (%s)..." msgstr "Generowanie klucza prywatnego dla %s (%s)..." #: ../gtk-dialog.c:1080 #, c-format msgid "%s Done." msgstr "%s Zakończono." #: ../gtk-dialog.c:1142 #, c-format msgid "" "%s is contacting you from an unrecognized computer. You should authenticate this buddy." msgstr "" "%s kontaktuje się z tobą z nierozpoznanego komputera. Powinieneś " "uwierzytelnić go." #: ../gtk-dialog.c:1146 #, c-format msgid "" "%s has not been authenticated yet. You should authenticate this buddy." msgstr "" "%s nie został jeszcze uwierzytelniony. Powinieneś uwierzytelnić go." #: ../gtk-dialog.c:1209 ../gtk-dialog.c:1240 ../gtk-dialog.c:2030 #: ../gtk-dialog.c:2305 ../gtk-ui.c:82 msgid "Finished" msgstr "Zakończono" #: ../gtk-dialog.c:1210 ../gtk-dialog.c:1241 ../gtk-dialog.c:2027 #: ../gtk-dialog.c:2302 ../gtk-ui.c:81 msgid "Private" msgstr "Prywatna" #: ../gtk-dialog.c:1211 ../gtk-dialog.c:1242 ../gtk-dialog.c:2024 #: ../gtk-dialog.c:2299 ../gtk-ui.c:80 msgid "Unverified" msgstr "Niezweryfikowana" #: ../gtk-dialog.c:1212 ../gtk-dialog.c:1243 ../gtk-ui.c:79 msgid "Not private" msgstr "Nieprywatna" #: ../gtk-dialog.c:1215 msgid "Start a private conversation" msgstr "Rozpocznij prywatną rozmowę" #: ../gtk-dialog.c:1216 msgid "Refresh the private conversation" msgstr "Odśwież prywatną rozmowę" #: ../gtk-dialog.c:1221 ../gtk-dialog.c:1979 ../gtk-dialog.c:2074 msgid "Start _private conversation" msgstr "Rozpocznij _prywatną rozmowę" #: ../gtk-dialog.c:1222 ../gtk-dialog.c:1980 msgid "Refresh _private conversation" msgstr "_Odśwież prywatna rozmowę." #: ../gtk-dialog.c:1246 msgid "OTR" msgstr "OTR" #. Translators: the following four messages should give alternative sentences. #. The user selects the first or second message in a combo box; #. the third message, a new line, a fingerprint, a new line, and #. the fourth message will follow it. #: ../gtk-dialog.c:1449 msgid "I have not" msgstr "Nie dokonałem" #. 2nd message #: ../gtk-dialog.c:1451 msgid "I have" msgstr "Dokonałem" #. 3rd message #: ../gtk-dialog.c:1454 msgid " verified that this is in fact the correct" msgstr " weryfikacji poprawności klucza." #. 4th message #: ../gtk-dialog.c:1464 #, c-format msgid "fingerprint for %s." msgstr "Klucz %s." #: ../gtk-dialog.c:1483 msgid "" "If your buddy has more than one IM account, or uses more than one computer, " "he may have multiple fingerprints." msgstr "Jeżeli twój współrozmówca ma więcej niż jedno konto lub korzysta nie tylko z jednego komputera " "może posiadać wiele kluczy." #: ../gtk-dialog.c:1485 msgid "" "However, the only way an imposter could duplicate one of your buddy's " "fingerprints is by stealing information from her/his computer." msgstr "" "Jednakże jedyny sposób by oszust mógł podszyć się pod klucz twojego współrozmówcy " "to kradzież danych z jego komputera." #: ../gtk-dialog.c:1489 msgid "Click here for more information about fingerprints." msgstr "Klicken Sie hier für zusätzliche Informationen über Fingerprints." #: ../gtk-dialog.c:1492 msgid "" "A fingerprint is a unique identifier that you should use to " "authenticate your buddy." msgstr "" "Klucz jest unikalnym identyfikatorem, którego powinieneś używać w celu " "uwierzytelniania swojego współrozmówce." #: ../gtk-dialog.c:1515 #, c-format msgid "Verify fingerprint for %s" msgstr "Weryfikowanie klucza dla %s" #: ../gtk-dialog.c:1527 #, c-format msgid "" "%s %s\n" "\n" "Fingerprint for you, %s (%s):\n" "%s\n" "\n" "Purported fingerprint for %s:\n" "%s\n" msgstr "" "%s %s\n" "\n" "Twój klucz %s (%s):\n" "%s\n" "\n" "Rzekomy klucz %s:\n" "%s\n" #: ../gtk-dialog.c:1540 ../gtk-ui.c:782 msgid "Verify fingerprint" msgstr "Weryfikuj klucz" #: ../gtk-dialog.c:1567 #, c-format msgid "Authentication from %s" msgstr "Uwierzytelnianie z %s" #: ../gtk-dialog.c:1570 #, c-format msgid "Authenticate %s" msgstr "Uwierzytelnij %s" #: ../gtk-dialog.c:1580 msgid "Authenticate Buddy" msgstr "Uwierzytelnij" #: ../gtk-dialog.c:1611 msgid "An error occurred during authentication." msgstr "Wystąpił błąd podczas uwierzytelniania." #: ../gtk-dialog.c:1626 msgid "Authentication successful." msgstr "Uwierzytelnianie zakończyło się pomyślnie." #: ../gtk-dialog.c:1629 msgid "" "Your buddy has successfully authenticated you. You may want to authenticate " "your buddy as well by asking your own question." msgstr "" "Twój współrozmówca pomyślnie uwierzytelnij ciebie. Prawdopodobnie ty również pragniesz " "uwierzytelnij swojego współrozmówcę zadając mu własne pytanie." #: ../gtk-dialog.c:1635 msgid "Authentication failed." msgstr "Uwierzytelnianie nie powiodło się." #: ../gtk-dialog.c:1663 #, c-format msgid "Private conversation with %s started.%s" msgstr "Prywatna rozmowa z %s rozpoczęła się.%s" #: ../gtk-dialog.c:1667 #, c-format msgid "Unverified conversation with %%s started.%%s" msgstr "" "Niezweryfikowany rozmowa z %%s rozpoczęta.%%s" #. This last case should never happen, since we know #. * we're in ENCRYPTED. #: ../gtk-dialog.c:1675 #, c-format msgid "Not private conversation with %s started.%s" msgstr "Nie prywatna rozmowa z %s rozpoczęta.%s" #: ../gtk-dialog.c:1681 ../gtk-dialog.c:1785 msgid " Warning: using old protocol version 1." msgstr " Uwaga: używasz przestarzałego protokołu w wersji 1." #: ../gtk-dialog.c:1701 #, c-format msgid "Private conversation with %s lost." msgstr "Prywatna rozmowa z %s stracona." #: ../gtk-dialog.c:1738 #, c-format msgid "" "%s has ended his/her private conversation with you; you should do the same." msgstr "" "%s zakończył prywatną rozmowę z tobą; powinieneś postąpić tak samo." #: ../gtk-dialog.c:1764 #, c-format msgid "Successfully refreshed the private conversation with %s.%s" msgstr "Pomyślnie odświeżono prywatną rozmowę z %s.%s" #: ../gtk-dialog.c:1769 #, c-format msgid "" "Successfully refreshed the unverified conversation with " "%%s.%%s" msgstr "" "Pomyślnie odświeżono niezweryfikowaną rozmowę z %%s.%%s" #. This last case should never happen, since we know #. * we're in ENCRYPTED. #: ../gtk-dialog.c:1778 #, c-format msgid "Successfully refreshed the not private conversation with %s.%s" msgstr "Pomyślnie odświeżono nieprywatną rozmowę z %s.%s" #: ../gtk-dialog.c:1810 #, c-format msgid "Attempting to refresh the private conversation with %s..." msgstr "Próba odświeżenia prywatnej rozmowy z %s..." #: ../gtk-dialog.c:1812 #, c-format msgid "Attempting to start a private conversation with %s..." msgstr "Próba rozpoczęcia prywatnej rozmowy z %s..." #: ../gtk-dialog.c:2021 ../gtk-dialog.c:2296 msgid "Not Private" msgstr "Nieprywatna" #: ../gtk-dialog.c:2075 ../gtk-dialog.c:2482 msgid "_End private conversation" msgstr "_Zakończ prywatną rozmowę" #. #. * Don't show the Verify fingerprint menu option any more. You can #. * still get to the dialog through Authenticate connection -> #. * Advanced... #. * #. menuverf = gtk_menu_item_new_with_mnemonic(_("_Verify fingerprint")); #. gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuverf); #. gtk_widget_show(menuverf); #. #: ../gtk-dialog.c:2076 ../gtk-dialog.c:2500 msgid "_Authenticate buddy" msgstr "_Uwierzytelnij" #: ../gtk-dialog.c:2292 #, c-format msgid "" "The privacy status of the current conversation is now: %s" msgstr "" "Status prywatności aktualnej rozmowy to: %s" #: ../gtk-dialog.c:2455 msgid "OTR:" msgstr "OTR:" #: ../gtk-dialog.c:2475 msgid "OTR Messaging" msgstr "Wiadomości OTR" #: ../gtk-ui.c:102 #, c-format msgid "Fingerprint: %.80s" msgstr "Klucz: %.80s" #: ../gtk-ui.c:106 #, c-format msgid "No key present" msgstr "Brak klucza" #: ../gtk-ui.c:111 #, c-format msgid "No account available" msgstr "Brak konta" #: ../gtk-ui.c:171 msgid "Unused" msgstr "Niewykorzystane" #: ../gtk-ui.c:177 msgid "Yes" msgstr "Tak" #: ../gtk-ui.c:177 msgid "No" msgstr "Nie" #: ../gtk-ui.c:403 msgid "Enable private messaging" msgstr "Włącz prywatne wiadomości" #: ../gtk-ui.c:405 msgid "Automatically initiate private messaging" msgstr "Automatycznie inicjalizuj prywatne wiadomości" #: ../gtk-ui.c:407 msgid "Require private messaging" msgstr "Wymagaj używania prywatnych wiadomości" #: ../gtk-ui.c:410 msgid "Don't log OTR conversations" msgstr "Nie zapisuj rozmów OTR do dziennika" #: ../gtk-ui.c:454 msgid "Show OTR button" msgstr "Pokazuj przycisk OTR" #: ../gtk-ui.c:457 msgid "Show OTR button in toolbar" msgstr "Pokazuj przycisk OTR na pasku narzędzi" #: ../gtk-ui.c:601 msgid "My private keys" msgstr "Moje klucze prywatne" #: ../gtk-ui.c:610 msgid "Key for account:" msgstr "Klucz dla konta:" #: ../gtk-ui.c:635 msgid "Generate" msgstr "Generuj" #: ../gtk-ui.c:676 msgid "Default OTR Settings" msgstr "Standardowe ustawienia OTR" #: ../gtk-ui.c:703 msgid "OTR UI Options" msgstr "Ustawienia UI" #: ../gtk-ui.c:726 msgid "Screenname" msgstr "Nazwa" #: ../gtk-ui.c:727 msgid "Status" msgstr "Status" #: ../gtk-ui.c:728 msgid "Verified" msgstr "Zweryfikowano" #: ../gtk-ui.c:729 msgid "Fingerprint" msgstr "Klucz" #: ../gtk-ui.c:730 msgid "Account" msgstr "Konto" #: ../gtk-ui.c:766 msgid "Start private connection" msgstr "Rozpocznij prywatne połączenie" #: ../gtk-ui.c:774 msgid "End private connection" msgstr "Zakończy prywatne połączenie" #: ../gtk-ui.c:790 msgid "Forget fingerprint" msgstr "Odrzuć klucz" #: ../gtk-ui.c:841 msgid "Config" msgstr "Ustawienia" #: ../gtk-ui.c:843 msgid "Known fingerprints" msgstr "Znane klucze" #: ../gtk-ui.c:941 ../otr-plugin.c:606 msgid "OTR Settings" msgstr "Ustawienia OTR" #. Set the title #: ../gtk-ui.c:959 #, c-format msgid "OTR Settings for %s" msgstr "Ustawienia OTR dla %s" #. Make the cascaded checkboxes #: ../gtk-ui.c:976 msgid "Use default OTR settings for this buddy" msgstr "Używaj standardowych ustawień OTR dla tego rozmówcy" #: ../otr-plugin.c:114 #, c-format msgid "You are not currently connected to account %s (%s)." msgstr "Aktualnie nie jesteś połączony z kontem %s (%s)." #: ../otr-plugin.c:118 msgid "Not connected" msgstr "Nie połączony" #: ../otr-plugin.c:162 #, c-format msgid "Out of memory building filenames!\n" msgstr "Skończyła się pamięć przy budowaniu nazw plików!\n" #: ../otr-plugin.c:168 #, c-format msgid "Could not write private key file\n" msgstr "Nie można zapisać klucza prywatnego do pliku\n" #: ../otr-plugin.c:211 #, c-format msgid "Unknown account %s (%s)." msgstr "Nieznane konto %s (%s)." #: ../otr-plugin.c:215 msgid "Unknown account" msgstr "Nieznane konto" #: ../otr-plugin.c:983 msgid "Off-the-Record Messaging" msgstr "Szyfrowanie Off-the-Record" #: ../otr-plugin.c:984 msgid "Provides private and secure conversations" msgstr "Zapewnia prywatne i bezpieczne rozmowy." #: ../otr-plugin.c:985 msgid "" "Preserves the privacy of IM communications by providing encryption, " "authentication, deniability, and perfect forward secrecy." msgstr "" "Zachowuje prywatność rozmów dzięki dostarczaniu szyfrowania, " "uwierzytelniania, zaprzeczalności i doskonałą poufność przesyłania." #: ../ui.c:109 #, c-format msgid "Account %s (%s) could not be found" msgstr "Konto %s (%s) nie może zostać znalezione" #: ../ui.c:113 msgid "Account not found" msgstr "Nie znaleziono konta" pidgin-otr-4.0.0/po/zh_CN.po0000644000175000017500000005560412020421670012473 00000000000000# Off-the-Record Messaging plugin for pidgin. # Copyright (C) 2004-2012 Ian Goldberg, Rob Smits, Chris Alexander, Willy Lew, # Lisa Du, Nikita Borisov # This file is distributed under the same license as the pidgin-otr package. # Ian Goldberg , 2012 # msgid "" msgstr "" "Project-Id-Version: pidgin-otr 4.0.0.zh_CN\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-06-14 09:45-0400\n" "PO-Revision-Date: 2012-06-17 13:45-0400\n" "Last-Translator: Bisheng Liu \n" "Language-Team: Bisheng Liu \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../gtk-dialog.c:332 ../gtk-dialog.c:1141 ../gtk-dialog.c:1145 #: ../gtk-dialog.c:1547 ../gtk-dialog.c:1584 ../gtk-dialog.c:1673 #: ../gtk-dialog.c:1748 ../gtk-dialog.c:2749 msgid "?lang=en" msgstr "?lang=zh_CN" #: ../gtk-dialog.c:480 msgid "" "Your buddy is attempting to determine if he or she is really talking to you, " "or if it's someone pretending to be you. Your buddy has asked a question, " "indicated below. To authenticate to your buddy, enter the answer and click " "OK." msgstr "" "你的好友正在尝试判断他是否真的是与你在交谈, " "而不是与一个伪装成你的人. 你的好友请你回答如下问题以验证你的身份, " "请输入答案并点击 " "OK. " #: ../gtk-dialog.c:487 msgid "" "To authenticate using a question, pick a question whose answer is known only " "to you and your buddy. Enter this question and this answer, then wait for " "your buddy to enter the answer too. If the answers don't match, then you " "may be talking to an imposter." msgstr "" "若采用提问方式来验证好友身份, 请选择一个只有你和好友才知道答案的问题. " "先输入这个问题和答案, 然后等待你的好友回答这个问题. " "如果你们的答案不一致, " "那么你可能正在与一个伪装成你好友的人交谈." #: ../gtk-dialog.c:505 #, c-format msgid "This is the question asked by your buddy:" msgstr "这是你的好友所提出的问题:" #: ../gtk-dialog.c:508 #, c-format msgid "Enter question here:" msgstr "在此处输入问题:" #: ../gtk-dialog.c:540 ../gtk-dialog.c:624 msgid "This buddy is already authenticated." msgstr "该好友已通过认证." #: ../gtk-dialog.c:552 #, c-format msgid "Enter secret answer here (case sensitive):" msgstr "在此处输入问题的答案(区分大小写):" #: ../gtk-dialog.c:593 msgid "" "To authenticate, pick a secret known only to you and your buddy. Enter this " "secret, then wait for your buddy to enter it too. If the secrets don't " "match, then you may be talking to an imposter." msgstr "" "为验证好友身份, 请选择一个只有你与好友知道的秘密. " "先输入这个秘密, 然后等待你的好友也输入该秘密. 如果你们的输入不一致, " "那么你可能正在与一个伪装成你好友的人交谈." #: ../gtk-dialog.c:607 #, c-format msgid "Enter secret here:" msgstr "在此处输入秘密:" #: ../gtk-dialog.c:657 ../gtk-dialog.c:1408 msgid "" "To verify the fingerprint, contact your buddy via some other " "authenticated channel, such as the telephone or GPG-signed email. Each of " "you should tell your fingerprint to the other." msgstr "" "为验证身份指纹, 请通过 其他 " "可靠渠道联系你的好友, 例如通过电话或者GPG签名的email. " "你们应该把各自的身份指纹告诉对方. " #: ../gtk-dialog.c:661 msgid "" "If everything matches up, you should chose I have in the menu below." msgstr "" "如果一切都匹配, 你应该在以下菜单中选择 我已经. " #: ../gtk-dialog.c:672 ../gtk-dialog.c:1397 msgid "[none]" msgstr "[无]" #: ../gtk-dialog.c:679 ../gtk-dialog.c:1051 ../gtk-dialog.c:1404 #: ../gtk-dialog.c:1453 ../gtk-ui.c:212 ../otr-plugin.c:127 #: ../otr-plugin.c:300 ../ui.c:112 msgid "Unknown" msgstr "未知" #: ../gtk-dialog.c:680 #, c-format msgid "" "Fingerprint for you, %s (%s):\n" "%s\n" "\n" "Purported fingerprint for %s:\n" "%s\n" msgstr "" "属于你的身份指纹, %s (%s):\n" "%s\n" "\n" "所声称的属于 %s 的身份指纹:\n" "%s\n" #: ../gtk-dialog.c:736 msgid "How would you like to authenticate your buddy?" msgstr "你选择如何来验证好友的身份?" #: ../gtk-dialog.c:745 msgid "Question and answer" msgstr "提问和回答" #: ../gtk-dialog.c:748 msgid "Shared secret" msgstr "共享的秘密" #: ../gtk-dialog.c:751 msgid "Manual fingerprint verification" msgstr "手动的身份指纹认证" #: ../gtk-dialog.c:802 msgid "_Authenticate" msgstr "_认证" #: ../gtk-dialog.c:836 msgid "" "Authenticating a buddy helps ensure that the person you are talking to is " "who he or she claims to be." msgstr "" "认证好友身份有助于确保你所正在交谈的对象" "是他所声称的那个人." #. Translators: you are asked to authenticate yourself #: ../gtk-dialog.c:946 msgid "Authenticating to Buddy" msgstr "正在向好友认证" #. Translators: you asked your buddy to authenticate him/herself #: ../gtk-dialog.c:948 msgid "Authenticating Buddy" msgstr "正在认证好友" #: ../gtk-dialog.c:975 #, c-format msgid "Authenticating to %s" msgstr "正在向 %s 认证" #: ../gtk-dialog.c:976 #, c-format msgid "Authenticating %s" msgstr "正在认证 %s" #: ../gtk-dialog.c:1009 msgid "Waiting for buddy..." msgstr "正在等待好友回复..." #: ../gtk-dialog.c:1042 msgid "Generating private key" msgstr "正在生成密钥" #: ../gtk-dialog.c:1043 msgid "Please wait" msgstr "请等待" #. Create the Please Wait... dialog #: ../gtk-dialog.c:1054 #, c-format msgid "Generating private key for %s (%s)..." msgstr "正在为 %s (%s) 生成密钥..." #: ../gtk-dialog.c:1099 #, c-format msgid "%s Done." msgstr "%s 完成." #: ../gtk-dialog.c:1139 #, c-format msgid "" "%s is contacting you from an unrecognized computer. You should authenticate this buddy." msgstr "" "%s 正在使用一台无法识别的计算机与你联系. 你应该d 认证 该好友的身份." #: ../gtk-dialog.c:1143 #, c-format msgid "" "%s has not been authenticated yet. You should authenticate this buddy." msgstr "" "%s 的身份还没有经过认证. 你应该 认证 该好友的身份. " #: ../gtk-dialog.c:1195 ../gtk-dialog.c:1969 ../gtk-dialog.c:2745 #: ../gtk-ui.c:83 msgid "Finished" msgstr "已完成" #: ../gtk-dialog.c:1196 ../gtk-dialog.c:1966 ../gtk-dialog.c:2742 #: ../gtk-ui.c:82 msgid "Private" msgstr "保密的" #: ../gtk-dialog.c:1197 ../gtk-dialog.c:1963 ../gtk-dialog.c:2739 #: ../gtk-ui.c:81 msgid "Unverified" msgstr "未认证的" #: ../gtk-dialog.c:1198 ../gtk-ui.c:80 msgid "Not private" msgstr "不保密的" #: ../gtk-dialog.c:1201 msgid "OTR" msgstr "OTR" #. Translators: the following four messages should give alternative #. * sentences. The user selects the first or second message in a combo box; #. * the third message, a new line, a fingerprint, a new line, and #. * the fourth message will follow it. #: ../gtk-dialog.c:1351 msgid "I have not" msgstr "我已经" #. 2nd message #: ../gtk-dialog.c:1353 msgid "I have" msgstr "我还没有" #. 3rd message #: ../gtk-dialog.c:1356 msgid " verified that this is in fact the correct" msgstr "确认这是正确的" #. 4th message #: ../gtk-dialog.c:1366 #, c-format msgid "fingerprint for %s." msgstr "属于 %s 的身份指纹." #: ../gtk-dialog.c:1393 #, c-format msgid "Verify fingerprint for %s" msgstr "认证属于 %s 的身份指纹" #: ../gtk-dialog.c:1405 #, c-format msgid "" "%s %s\n" "\n" "Fingerprint for you, %s (%s):\n" "%s\n" "\n" "Purported fingerprint for %s:\n" "%s\n" msgstr "" "%s %s\n" "\n" "属于你的身份指纹, %s (%s):\n" "%s\n" "\n" "所声称的属于 %s 的身份指纹: \n" "%s\n" #: ../gtk-dialog.c:1412 msgid "" "If everything matches up, you should indicate in the above dialog that you " "have verified the fingerprint." msgstr "" "如果一切都匹配, 你应该在以上对话框中表明你 " "已经 认证了该身份指纹." #: ../gtk-dialog.c:1418 ../gtk-ui.c:844 msgid "Verify fingerprint" msgstr "认证身份指纹" #: ../gtk-dialog.c:1445 #, c-format msgid "Authentication from %s" msgstr "来自 %s 的认证" #: ../gtk-dialog.c:1448 #, c-format msgid "Authenticate %s" msgstr "认证 %s" #: ../gtk-dialog.c:1456 msgid "Authenticate Buddy" msgstr "认证好友" #: ../gtk-dialog.c:1487 msgid "An error occurred during authentication." msgstr "在认证过程中发生了一个错误." #: ../gtk-dialog.c:1502 msgid "Authentication successful." msgstr "认证成功." #: ../gtk-dialog.c:1505 msgid "" "Your buddy has successfully authenticated you. You may want to authenticate " "your buddy as well by asking your own question." msgstr "" "你的好友已经成功地认证了你的身份. 你可以类似地提出一个你自己的问题" "来认证该好友的身份." #: ../gtk-dialog.c:1511 msgid "Authentication failed." msgstr "认证失败." #: ../gtk-dialog.c:1541 #, c-format msgid "Private conversation with %s started.%s%s" msgstr "与 %s 的私密对话开始.%s%s" #: ../gtk-dialog.c:1545 #, c-format msgid "Unverified conversation with %%s started.%%s%%s" msgstr "未认证的 与 %%s 的对话开始.%%s%%s" #. This last case should never happen, since we know #. * we're in ENCRYPTED. #: ../gtk-dialog.c:1553 #, c-format msgid "Not private conversation with %s started.%s%s" msgstr "不保密的与 %s 的对话开始.%s%s" #: ../gtk-dialog.c:1559 ../gtk-dialog.c:1686 msgid " Warning: using old protocol version 1." msgstr " 警告: 正在使用旧的协议版本 1." #: ../gtk-dialog.c:1561 msgid " Your client is logging this conversation." msgstr " 你的客户端正在记录这段对话." #: ../gtk-dialog.c:1562 msgid " Your client is not logging this conversation." msgstr " 你的客户端没有在记录这段对话." #: ../gtk-dialog.c:1581 #, c-format msgid "" "Your buddy is logged in multiple times and OTR has established multiple sessions. Use the icon menu above if you wish to select the " "outgoing session." msgstr "" "你的好友登录了多次, OTR已经建立了 多个会话. 如果你想选择其中一个会话, 请使用以上的图标菜单." #: ../gtk-dialog.c:1601 #, c-format msgid "Private conversation with %s lost." msgstr "与 %s 的私密对话丢失." #: ../gtk-dialog.c:1638 #, c-format msgid "" "%s has ended his/her private conversation with you; you should do the same." msgstr "" "%s 已经结束了与你的私密对话; 你也应该采取同样操作." #: ../gtk-dialog.c:1665 #, c-format msgid "Successfully refreshed the private conversation with %s.%s" msgstr "成功地刷新了与 %s 的私密对话.%s" #: ../gtk-dialog.c:1670 #, c-format msgid "" "Successfully refreshed the unverified conversation with " "%%s.%%s" msgstr "" "成功地刷新了 未认证的 对话与" "%%s.%%s" #. This last case should never happen, since we know #. * we're in ENCRYPTED. #: ../gtk-dialog.c:1679 #, c-format msgid "Successfully refreshed the not private conversation with %s.%s" msgstr "成功地刷新了与 %s 的不私密对话.%s" #: ../gtk-dialog.c:1712 #, c-format msgid "Attempting to refresh the private conversation with %s..." msgstr "正在尝试刷新与 %s 的私密对话..." #: ../gtk-dialog.c:1714 #, c-format msgid "Attempting to start a private conversation with %s..." msgstr "正在尝试启动与 %s 的私密对话..." #: ../gtk-dialog.c:1899 ../gtk-dialog.c:2026 msgid "Start _private conversation" msgstr "启动 _私密 对话" #: ../gtk-dialog.c:1900 msgid "Refresh _private conversation" msgstr "刷新 _私密 对话" #: ../gtk-dialog.c:1905 msgid "Re_authenticate buddy" msgstr "重_认证 好友身份" #: ../gtk-dialog.c:1906 ../gtk-dialog.c:2030 msgid "_Authenticate buddy" msgstr "_认证 好友身份" #: ../gtk-dialog.c:1960 ../gtk-dialog.c:2736 msgid "Not Private" msgstr "不保密的" #: ../gtk-dialog.c:1982 msgid "_What's this?" msgstr "_这是什么?" #: ../gtk-dialog.c:2028 msgid "_End private conversation" msgstr "_结束私密对话" #: ../gtk-dialog.c:2207 ../gtk-dialog.c:2255 #, c-format msgid "" "Warning: The selected outgoing OTR session (%u) is not the most recently " "active one (%u). Your buddy may not receive your messages. Use the icon menu " "above to select a different outgoing session." msgstr "" "警告: 所选择的OTR会话 (%u) 不是最近" "活跃的会话 (%u). 你的好友可能无法接受到你的消息. 请使用以上的图标菜单" "来选择一个不同的会话. " #: ../gtk-dialog.c:2271 msgid "Send to most secure" msgstr "发送给最安全的" #: ../gtk-dialog.c:2273 msgid "Send to most recent" msgstr "发送给最近的" #: ../gtk-dialog.c:2377 #, c-format msgid "Session %u" msgstr "会话 %u" #: ../gtk-dialog.c:2395 ../gtk-dialog.c:2506 msgid "Select" msgstr "选择" #: ../gtk-dialog.c:2410 msgid "Selected" msgstr "已选择的" #: ../gtk-dialog.c:2731 #, c-format msgid "" "The privacy status of the current conversation is now: %s" msgstr "" "当前会话的隐私状态是 %s" #: ../gtk-dialog.c:2956 msgid "OTR Messaging" msgstr "OTR消息中" #: ../gtk-ui.c:103 #, c-format msgid "Fingerprint: %.80s" msgstr "身份指纹: %.80s" #: ../gtk-ui.c:107 #, c-format msgid "No key present" msgstr "当前无密钥" #: ../gtk-ui.c:112 #, c-format msgid "No account available" msgstr "无可用帐号" #: ../gtk-ui.c:179 msgid "Unused" msgstr "未使用" #: ../gtk-ui.c:208 msgid "Yes" msgstr "是" #: ../gtk-ui.c:208 msgid "No" msgstr "否" #: ../gtk-ui.c:473 msgid "Enable private messaging" msgstr "启动私密消息" #: ../gtk-ui.c:475 msgid "Automatically initiate private messaging" msgstr "自动启用私密消息" #: ../gtk-ui.c:477 msgid "Require private messaging" msgstr "要求私密消息" #: ../gtk-ui.c:480 msgid "Don't log OTR conversations" msgstr "不记录OTR交谈" #: ../gtk-ui.c:524 msgid "Show OTR button in toolbar" msgstr "在工具条显示OTR按钮" #: ../gtk-ui.c:663 msgid "My private keys" msgstr "我的私钥" #: ../gtk-ui.c:672 msgid "Key for account:" msgstr "私钥属于帐号:" #: ../gtk-ui.c:697 msgid "Generate" msgstr "生成" #: ../gtk-ui.c:738 msgid "Default OTR Settings" msgstr "默认OTR设置" #: ../gtk-ui.c:765 msgid "OTR UI Options" msgstr "OTR界面选项" #: ../gtk-ui.c:788 msgid "Screenname" msgstr "昵称" #: ../gtk-ui.c:789 msgid "Status" msgstr "状态" #: ../gtk-ui.c:790 msgid "Verified" msgstr "已认证" #: ../gtk-ui.c:791 msgid "Fingerprint" msgstr "身份指纹" #: ../gtk-ui.c:792 msgid "Account" msgstr "帐号" #: ../gtk-ui.c:828 msgid "Start private connection" msgstr "启动私密连接" #: ../gtk-ui.c:836 msgid "End private connection" msgstr "结束私密连接" #: ../gtk-ui.c:852 msgid "Forget fingerprint" msgstr "忘记身份指纹" #: ../gtk-ui.c:903 msgid "Config" msgstr "配置" #: ../gtk-ui.c:905 msgid "Known fingerprints" msgstr "已知的身份指纹" #: ../gtk-ui.c:1003 ../otr-plugin.c:964 msgid "OTR Settings" msgstr "OTR设置" #. Set the title #: ../gtk-ui.c:1021 #, c-format msgid "OTR Settings for %s" msgstr "属于 %s 的OTR设置" #. Make the cascaded checkboxes #: ../gtk-ui.c:1038 msgid "Use default OTR settings for this buddy" msgstr "对该好友采用默认的OTR设置" #: ../otr-plugin.c:125 #, c-format msgid "You are not currently connected to account %s (%s)." msgstr "当前你没有连接到帐号 %s (%s)." #: ../otr-plugin.c:129 msgid "Not connected" msgstr "未连接" #: ../otr-plugin.c:212 ../otr-plugin.c:254 #, c-format msgid "Out of memory building filenames!\n" msgstr "创建文件名内存溢出!\n" #: ../otr-plugin.c:224 ../otr-plugin.c:260 #, c-format msgid "Could not write private key file\n" msgstr "无法写密钥文件\n" #: ../otr-plugin.c:298 #, c-format msgid "Unknown account %s (%s)." msgstr "未知帐号 %s (%s)." #: ../otr-plugin.c:302 msgid "Unknown account" msgstr "未知帐号" #: ../otr-plugin.c:364 msgid "Error occurred encrypting message." msgstr "在加密消息时出错." #: ../otr-plugin.c:368 #, c-format msgid "You sent encrypted data to %s, who wasn't expecting it." msgstr "你向没有准备的 %s 发送了加密的消息." #: ../otr-plugin.c:374 msgid "You transmitted an unreadable encrypted message." msgstr "你发送了一条不可读的加密消息." #: ../otr-plugin.c:377 msgid "You transmitted a malformed data message." msgstr "你发送了一条异常的数据消息." #: ../otr-plugin.c:390 msgid "[resent]" msgstr "[重新发送]" #: ../otr-plugin.c:459 #, c-format msgid "You attempted to send an unencrypted message to %s" msgstr "你尝试向 %s 发送一条未加密的消息" #: ../otr-plugin.c:462 msgid "Attempting to start a private conversation..." msgstr "尝试启动一个私密的对话..." #: ../otr-plugin.c:464 msgid "OTR Policy Violation" msgstr "OTR策略侵犯" #: ../otr-plugin.c:465 msgid "" "Unencrypted messages to this recipient are not allowed. Attempting to start " "a private conversation.\n" "\n" "Your message will be retransmitted when the private conversation starts." msgstr "" "不允许向对方发送未加密的消息. 正尝试启动" "一个私密的对话.\n" "\n" "当私密对话启动后, 你的消息将会被重新发送." #: ../otr-plugin.c:474 msgid "" "An error occurred when encrypting your message. The message was not sent." msgstr "在消息加密过程中出错. 该消息未被发送." #: ../otr-plugin.c:476 msgid "Error encrypting message" msgstr "在加密消息时出错" #: ../otr-plugin.c:477 msgid "An error occurred when encrypting your message" msgstr "在加密你的消息时出错" #: ../otr-plugin.c:478 msgid "The message was not sent." msgstr "该消息未被发送." #: ../otr-plugin.c:481 #, c-format msgid "%s has already closed his/her private connection to you" msgstr "%s 已经关闭了与你的私密连接" #: ../otr-plugin.c:484 msgid "" "Your message was not sent. Either end your private conversation, or restart " "it." msgstr "" "你的消息没有被发送. 请结束你的当前私密对话,或重启" "该对话." #: ../otr-plugin.c:487 msgid "Private connection closed" msgstr "私密连接关闭" #: ../otr-plugin.c:488 msgid "" "Your message was not sent. Either close your private connection to him, or " "refresh it." msgstr "" "你的消息没有被发送. 请关闭你与对方的私密连接,或" "刷新该连接." #: ../otr-plugin.c:498 msgid "Error setting up private conversation: Malformed message received" msgstr "建立私密对话出错: 收到异常消息" #: ../otr-plugin.c:502 #, c-format msgid "Error setting up private conversation: %s" msgstr "建立私密对话出错: %s" #: ../otr-plugin.c:509 ../otr-plugin.c:520 ../otr-plugin.c:547 #: ../otr-plugin.c:555 ../otr-plugin.c:573 msgid "OTR Error" msgstr "OTR出错" #: ../otr-plugin.c:516 msgid "" "We are receiving our own OTR messages. You are either trying to talk to " "yourself, or someone is reflecting your messages back at you." msgstr "" "收到了自己的OTR消息. 或者你正在与" "自己交谈, 或者有人正在把你的消息返送给你." #: ../otr-plugin.c:520 msgid "We are receiving our own OTR messages." msgstr "正在接受自己的OTR消息" #: ../otr-plugin.c:521 msgid "" "You are either trying to talk to yourself, or someone is reflecting your " "messages back at you." msgstr "" "或者你正在与自己交谈, 或者有人正在把你的消息" "返送给你." #: ../otr-plugin.c:526 #, c-format msgid "The last message to %s was resent." msgstr "给 %s 的最后一条消息被重新发送." #: ../otr-plugin.c:530 msgid "Message resent" msgstr "消息被重新发送" #: ../otr-plugin.c:534 #, c-format msgid "" "The encrypted message received from %s is unreadable, as you are not " "currently communicating privately." msgstr "" "来自 %s 的加密消息不可读, 因为你们" "当前没有在私密地交流." #: ../otr-plugin.c:539 msgid "Unreadable message" msgstr "不可读的消息" #: ../otr-plugin.c:543 #, c-format msgid "We received an unreadable encrypted message from %s." msgstr "收到了一条来自 %s 的不可读的加密的消息." #: ../otr-plugin.c:551 #, c-format msgid "We received a malformed data message from %s." msgstr "收到了一条来自 %s 的异常的数据消息." #: ../otr-plugin.c:559 #, c-format msgid "Heartbeat received from %s.\n" msgstr "收到了来自 %s 的心跳消息.\n" #: ../otr-plugin.c:565 #, c-format msgid "Heartbeat sent to %s.\n" msgstr "心跳消息已发送给 %s.\n" #: ../otr-plugin.c:576 #, c-format msgid "" "The following message received from %s was not encrypted: [%" "s]" msgstr "" "以下来自 %s 的消息 没有 被加密: [%" "s]" #: ../otr-plugin.c:581 msgid "Received unencrypted message" msgstr "收到未加密的消息" #: ../otr-plugin.c:587 #, c-format msgid "Unrecognized OTR message received from %s.\n" msgstr "收到来自 %s 的无法识别的OTR消息.\n" #: ../otr-plugin.c:596 #, c-format msgid "" "%s has sent a message intended for a different session. If you are logged in " "multiple times, another session may have received the message." msgstr "" "%s 已经向另一个不同的会话发送了一条消息. 如果你登录了" "多次, 另一个会话可能接收到了该消息." #: ../otr-plugin.c:602 msgid "Received message for a different session" msgstr "收到了另一会话的消息" #. 2013-01-01 #: ../otr-plugin.c:1193 ../otr-plugin.c:1220 #, c-format msgid "OTR PLUGIN v%s" msgstr "OTR 插件 v%s" #: ../otr-plugin.c:1202 #, c-format msgid "" "This beta copy of the Off-the-Record Messaging v%s Pidgin plugin has expired " "as of 2013-01-01. Please look for an updated release at http://otr." "cypherpunks.ca/" msgstr "" "这个 Off-the-Record Messaging v%s Pidgin 插件的测试版本已于" "2013-01-01过期. 请在 http://otr." "cypherpunks.ca/ 找到更新版本" #: ../otr-plugin.c:1229 #, c-format msgid "" "You have enabled a beta version of the Off-the-Record Messaging v%s Pidgin " "plugin. This version is intended for testing purposes only and is not for " "general purpose use." msgstr "" "你正在使用一个 Off-the-Record Messaging v%s Pidgin " "插件的测试版本. 该版本只用于测试目的, 不适用于" "一般用途使用." #: ../otr-plugin.c:1414 msgid "Off-the-Record Messaging" msgstr "Off-the-Record Messaging" #: ../otr-plugin.c:1415 msgid "Provides private and secure conversations" msgstr "提供私密安全的对话" #: ../otr-plugin.c:1416 msgid "" "Preserves the privacy of IM communications by providing encryption, " "authentication, deniability, and perfect forward secrecy." msgstr "" "通过加密来保护即时通信的隐私, " "认证, 可抵赖性, 和完美的正向安全." #: ../ui.c:110 #, c-format msgid "Account %s (%s) could not be found" msgstr "无法找到帐号 %s (%s)" #: ../ui.c:114 msgid "Account not found" msgstr "无法找到帐号" pidgin-otr-4.0.0/po/ChangeLog0000644000175000017500000000072211767125242012710 000000000000002007-07-31 * sk.po: Initial submission from Milan Plzik 2007-07-28 * fr.po: Minor patches from Joel 2007-07-27 * fr.po: Initial submission from Joel Reardon * es.po: Initial submission from Enrique Martinez Cardenas 2007-07-26 * nl.po: Minor patches from Paul 2007-07-25 * nl.po: Touch up formatting * nl.po: Initial submission from Paul Wouters pidgin-otr-4.0.0/po/el.po0000644000175000017500000007527012020421670012073 00000000000000# Off-the-Record Messaging plugin for pidgin. # Copyright (C) 2004-2012 Ian Goldberg, Rob Smits, Chris Alexander, Willy Lew, # Lisa Du, Nikita Borisov # This file is distributed under the same license as the pidgin-otr package. # Ian Goldberg , 2012 # msgid "" msgstr "" "Project-Id-Version: pidgin-otr 4.0.0.el\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2012-06-14 09:45-0400\n" "PO-Revision-Date: 2012-06-20 19:50+2\n" "Last-Translator: Alex \n" "Language-Team: el\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../gtk-dialog.c:332 ../gtk-dialog.c:1141 ../gtk-dialog.c:1145 #: ../gtk-dialog.c:1547 ../gtk-dialog.c:1584 ../gtk-dialog.c:1673 #: ../gtk-dialog.c:1748 ../gtk-dialog.c:2749 msgid "?lang=en" msgstr "?lang=el" #: ../gtk-dialog.c:480 msgid "" "Your buddy is attempting to determine if he or she is really talking to you, " "or if it's someone pretending to be you. Your buddy has asked a question, " "indicated below. To authenticate to your buddy, enter the answer and click " "OK." msgstr "Η επαφή σου προσπαθεί να εξακριβώσει αν μιλάει πραγματικά μαζί σου, " "ή πρόκειται για κάποιον που προσποιείται ότι είναι εσύ. Η επαφή σου έκανε την ερώτηση " "που φαίνεται παρακάτω. Για να αποδείξεις στην επαφή σου ποιος είσαι, " "συμπλήρωσε την απάντηση και πάτα OK." #: ../gtk-dialog.c:487 msgid "" "To authenticate using a question, pick a question whose answer is known only " "to you and your buddy. Enter this question and this answer, then wait for " "your buddy to enter the answer too. If the answers don't match, then you " "may be talking to an imposter." msgstr "Για να αυθεντικοποιήσεις την επαφή σου χρησιμοποιώντας μια ερώτηση, διάλεξε μια ερώτηση της οποίας " "η απάντηση είναι γνωστή μόνο σε σένα και την επαφή σου. Γράψε αυτή την ερώτηση καθώς και την απάντηση, " "και στη συνέχεια περίμενε για την επαφή σου να απαντήσει στην ίδια ερώτηση. Εάν οι απαντήσεις " "δεν ταιριάζουν, τότε ίσως να μιλάς με κάποιον απατεώνα." #: ../gtk-dialog.c:505 #, c-format msgid "This is the question asked by your buddy:" msgstr "Η επαφή σου ρώτησε:" #: ../gtk-dialog.c:508 #, c-format msgid "Enter question here:" msgstr "Βάλε μια ερώτηση εδώ:" #: ../gtk-dialog.c:540 ../gtk-dialog.c:624 msgid "This buddy is already authenticated." msgstr "Η επαφή είναι ήδη αυθεντικοποιημένη." #: ../gtk-dialog.c:552 #, c-format msgid "Enter secret answer here (case sensitive):" msgstr "Γράψτε τη μυστική απάντηση εδώ (τα κεφαλαία θεωρούνται διαφορετικά από τα μικρά γράμματα)" #: ../gtk-dialog.c:593 msgid "" "To authenticate, pick a secret known only to you and your buddy. Enter this " "secret, then wait for your buddy to enter it too. If the secrets don't " "match, then you may be talking to an imposter." msgstr "Για αυθεντικοποίηση, διάλεξε ένα μυστικό γνωστό μόνο σε εσένα " "και την επαφή σου. Αφού εισάγεις αυτό το μυστικό, περίμενε να το εισάγει " "και η επαφή σου. Αν τα μυστικά δεν ταιριάζουν, τότε ίσως να μιλάς με κάποιον απατεώνα." #: ../gtk-dialog.c:607 #, c-format msgid "Enter secret here:" msgstr "Βάλε το μυστικό εδώ:" #: ../gtk-dialog.c:657 ../gtk-dialog.c:1408 msgid "" "To verify the fingerprint, contact your buddy via some other " "authenticated channel, such as the telephone or GPG-signed email. Each of " "you should tell your fingerprint to the other." msgstr "Για να επαληθεύσεις το αποτύπωμα, επικοινώνησε με την επαφή σου μέσω " "ενός άλλου αυθεντικοποιημένου καναλιού, όπως το τηλέφωνο ή ένα email με ψηφιακή υπογραφή GPG. " "Ο καθένας σας θα πρέπει να πει το αποτύπωμά του στον άλλον μέσω αυτού του άλλου καναλιού." #: ../gtk-dialog.c:661 msgid "" "If everything matches up, you should chose I have in the menu below." msgstr "Αν όλα ταιριάζουν, τότε πρέπει να επιλέξεις Έχω επιβεβαιώσει στο παρακάτω μενού." #: ../gtk-dialog.c:672 ../gtk-dialog.c:1397 msgid "[none]" msgstr "[κανένα]" #: ../gtk-dialog.c:679 ../gtk-dialog.c:1051 ../gtk-dialog.c:1404 #: ../gtk-dialog.c:1453 ../gtk-ui.c:212 ../otr-plugin.c:127 #: ../otr-plugin.c:300 ../ui.c:112 msgid "Unknown" msgstr "Άγνωστο" #: ../gtk-dialog.c:680 #, c-format msgid "" "Fingerprint for you, %s (%s):\n" "%s\n" "\n" "Purported fingerprint for %s:\n" "%s\n" msgstr "" "Αποτύπωμα για σένα, %s (%s):\n" "%s\n" "\n" "Υποτιθέμενο αποτύπωμα για %s:\n" "%s\n" #: ../gtk-dialog.c:736 msgid "How would you like to authenticate your buddy?" msgstr "Πώς θα ήθελες να αυθεντικοποιήσεις την επαφή σου;" #: ../gtk-dialog.c:745 msgid "Question and answer" msgstr "Ερώτηση και απάντηση" #: ../gtk-dialog.c:748 msgid "Shared secret" msgstr "Κοινό μυστικό" #: ../gtk-dialog.c:751 msgid "Manual fingerprint verification" msgstr "Χειροκίνητη επαλήθευση αποτυπώματος" #: ../gtk-dialog.c:802 msgid "_Authenticate" msgstr "_Επικύρωσε" #: ../gtk-dialog.c:836 msgid "" "Authenticating a buddy helps ensure that the person you are talking to is " "who he or she claims to be." msgstr "Αυθεντικοποιώντας μια επαφή, επιβεβαιώνεις ότι το πρόσωπο με το " "οποίο μιλάς είναι αυτός ή αυτή που ισχυρίζεται ότι είναι." #. Translators: you are asked to authenticate yourself #: ../gtk-dialog.c:946 msgid "Authenticating to Buddy" msgstr "Αυθεντικοποίηση στην επαφή" #. Translators: you asked your buddy to authenticate him/herself #: ../gtk-dialog.c:948 msgid "Authenticating Buddy" msgstr "Αυθεντικοποίηση της επαφής" #: ../gtk-dialog.c:975 #, c-format msgid "Authenticating to %s" msgstr "Αυθεντικοποίηση σε %s" #: ../gtk-dialog.c:976 #, c-format msgid "Authenticating %s" msgstr "Αυθεντικοποίηση επαφής %s" #: ../gtk-dialog.c:1009 msgid "Waiting for buddy..." msgstr "Περιμένουμε την επαφή..." #: ../gtk-dialog.c:1042 msgid "Generating private key" msgstr "Δημιουργία ιδιωτικού κλειδιού" #: ../gtk-dialog.c:1043 msgid "Please wait" msgstr "Παρακαλώ περιμένετε" #. Create the Please Wait... dialog #: ../gtk-dialog.c:1054 #, c-format msgid "Generating private key for %s (%s)..." msgstr "Δημιουργία ιδιωτικού κλειδιού για %s (%s)..." #: ../gtk-dialog.c:1099 #, c-format msgid "%s Done." msgstr "%s Έγινε." #: ../gtk-dialog.c:1139 #, c-format msgid "" "%s is contacting you from an unrecognized computer. You should authenticate this buddy." msgstr "Η επαφή %s επικοινωνεί μαζί σου από έναν άγνωστο υπολογιστή. Καλό θα ήταν νααυθεντικοποιήσεις την επαφή." #: ../gtk-dialog.c:1143 #, c-format msgid "" "%s has not been authenticated yet. You should authenticate this buddy." msgstr "Η επαφή %s δεν έχει επικυρωθεί ακόμα. Καλό θα ήταν να αυθεντικοποιήσεις την επαφή." #: ../gtk-dialog.c:1195 ../gtk-dialog.c:1969 ../gtk-dialog.c:2745 #: ../gtk-ui.c:83 msgid "Finished" msgstr "Τερματισμένη" #: ../gtk-dialog.c:1196 ../gtk-dialog.c:1966 ../gtk-dialog.c:2742 #: ../gtk-ui.c:82 msgid "Private" msgstr "Ιδιωτική" #: ../gtk-dialog.c:1197 ../gtk-dialog.c:1963 ../gtk-dialog.c:2739 #: ../gtk-ui.c:81 msgid "Unverified" msgstr "Μη επιβεβαιωμένη" #: ../gtk-dialog.c:1198 ../gtk-ui.c:80 msgid "Not private" msgstr "Μη ιδιωτική" #: ../gtk-dialog.c:1201 msgid "OTR" msgstr "OTR" #. Translators: the following four messages should give alternative #. * sentences. The user selects the first or second message in a combo box; #. * the third message, a new line, a fingerprint, a new line, and #. * the fourth message will follow it. #: ../gtk-dialog.c:1351 msgid "I have not" msgstr "Δεν έχω" #. 2nd message #: ../gtk-dialog.c:1353 msgid "I have" msgstr "Έχω" #. 3rd message #: ../gtk-dialog.c:1356 msgid " verified that this is in fact the correct" msgstr "επιβεβαιώσει ότι αυτό είναι το σωστό" #. 4th message #: ../gtk-dialog.c:1366 #, c-format msgid "fingerprint for %s." msgstr "αποτύπωμα για την επαφή %s" #: ../gtk-dialog.c:1393 #, c-format msgid "Verify fingerprint for %s" msgstr "Επαλήθευσε το αποτύπωμα για την επαφή %s" #: ../gtk-dialog.c:1405 #, c-format msgid "" "%s %s\n" "\n" "Fingerprint for you, %s (%s):\n" "%s\n" "\n" "Purported fingerprint for %s:\n" "%s\n" msgstr "" "%s %s\n" "\n" "Αποτύπωμα για εσένα, %s (%s):\n" "%s\n" "\n" "Υποτιθέμενο αποτύπωμα για %s:\n" "%s\n" #: ../gtk-dialog.c:1412 msgid "" "If everything matches up, you should indicate in the above dialog that you " "have verified the fingerprint." msgstr "Αν όλα ταιριάζουν, επέλεξε στο παραπάνω διάλογο ότι " "
έχεις
επαληθεύσει το αποτύπωμα." #: ../gtk-dialog.c:1418 ../gtk-ui.c:844 msgid "Verify fingerprint" msgstr "Επαλήθευσε το αποτύπωμα" #: ../gtk-dialog.c:1445 #, c-format msgid "Authentication from %s" msgstr "Αυθεντικοποίηση για την επαφή %s" #: ../gtk-dialog.c:1448 #, c-format msgid "Authenticate %s" msgstr "Αυθεντικοποίησε την επαφή %s" #: ../gtk-dialog.c:1456 msgid "Authenticate Buddy" msgstr "Αυθεντικοποίησε την επαφή" #: ../gtk-dialog.c:1487 msgid "An error occurred during authentication." msgstr "Ένα σφάλμα προέκυψε κατά την αυθεντικοποίηση." #: ../gtk-dialog.c:1502 msgid "Authentication successful." msgstr "Αυθεντικοποίηση επιτυχής." #: ../gtk-dialog.c:1505 msgid "" "Your buddy has successfully authenticated you. You may want to authenticate " "your buddy as well by asking your own question." msgstr "Η επαφή σου σε αυθεντικοποίησε επιτυχώς. Ίσως θέλεις να αυθεντικοποιήσεις κι " "εσύ την επαφή σου, θέτοντας μια δική σου ερώτηση." #: ../gtk-dialog.c:1511 msgid "Authentication failed." msgstr "Η αυθεντικοποίηση απέτυχε." #: ../gtk-dialog.c:1541 #, c-format msgid "Private conversation with %s started.%s%s" msgstr "Ξεκίνησε ιδιωτική συνομιλία με την επαφή %s. %s%s" #: ../gtk-dialog.c:1545 #, c-format msgid "Unverified conversation with %%s started.%%s%%s" msgstr "Ξεκίνησε μη επιβεβαιωμένη συνομιλία με %%s.%%s%%s" #. This last case should never happen, since we know #. * we're in ENCRYPTED. #: ../gtk-dialog.c:1553 #, c-format msgid "Not private conversation with %s started.%s%s" msgstr "Ξεκίνησε μη ιδιωτική συνομιλία με %s. %s%s" #: ../gtk-dialog.c:1559 ../gtk-dialog.c:1686 msgid " Warning: using old protocol version 1." msgstr "Προειδοποίηση: χρησιμοποιείται παλιό πρωτόκολλο, έκδοση 1." #: ../gtk-dialog.c:1561 msgid " Your client is logging this conversation." msgstr "Η εφαρμογή σου καταγράφει αυτή τη συνομιλία." #: ../gtk-dialog.c:1562 msgid " Your client is not logging this conversation." msgstr "Η εφαρμογή σου δε καταγράφει αυτή τη συνομιλία." #: ../gtk-dialog.c:1581 #, c-format msgid "" "Your buddy is logged in multiple times and OTR has established multiple sessions. Use the icon menu above if you wish to select the " "outgoing session." msgstr "" "Η επαφή σου είναι συνδεδεμένη πολλαπλές φορές και το OTR έχει εγκαθιδρύσει πολλαπλές συνεδρίες. Χρησιμοποίησε το μενού εικονιδίων αν επιθυμείς να επιλέξεις " "την εξερχόμενη συνεδρία." #: ../gtk-dialog.c:1601 #, c-format msgid "Private conversation with %s lost." msgstr "Η ιδιωτική συνομιλία με την επαφή %s χάθηκε." #: ../gtk-dialog.c:1638 #, c-format msgid "" "%s has ended his/her private conversation with you; you should do the same." msgstr "Η επαφή %s τερμάτισε την ιδιωτική της/του συνομιλία μαζί σου. Θα έπρεπε να κάνεις το ίδιο." #: ../gtk-dialog.c:1665 #, c-format msgid "Successfully refreshed the private conversation with %s.%s" msgstr "Η ιδιωτική συνομιλία με %s ανανεώθηκε επιτυχώς. %s" #: ../gtk-dialog.c:1670 #, c-format msgid "" "Successfully refreshed the unverified conversation with " "%%s.%%s" msgstr "" "H μη επιβεβαιωμένη συνομιλία με την επαφή " "%%s, ανανεώθηκε επιτυχώς.%%s" #. This last case should never happen, since we know #. * we're in ENCRYPTED. #: ../gtk-dialog.c:1679 #, c-format msgid "Successfully refreshed the not private conversation with %s.%s" msgstr "Η μη ιδιωτική συνομιλια με την επαφή %s ανανεώθηκε επιτυχώς.%s" #: ../gtk-dialog.c:1712 #, c-format msgid "Attempting to refresh the private conversation with %s..." msgstr "Προσπαθούμε να ανανεώσουμε την ιδιωτική συνομιλία με %s..." #: ../gtk-dialog.c:1714 #, c-format msgid "Attempting to start a private conversation with %s..." msgstr "Προσπαθούμε να ξεκινήσουμε ιδιωτική συνομιλία με %s..." #: ../gtk-dialog.c:1899 ../gtk-dialog.c:2026 msgid "Start _private conversation" msgstr "Έναρξη _ιδιωτικής συνομιλίας" #: ../gtk-dialog.c:1900 msgid "Refresh _private conversation" msgstr "Ανανέωση _ιδιωτικής συνομιλίας" #: ../gtk-dialog.c:1905 msgid "Re_authenticate buddy" msgstr "Επαν_αυθεντικοποίηση επαφής" #: ../gtk-dialog.c:1906 ../gtk-dialog.c:2030 msgid "_Authenticate buddy" msgstr "_Αυθεντικοποίηση επαφής" #: ../gtk-dialog.c:1960 ../gtk-dialog.c:2736 msgid "Not Private" msgstr "Μη ιδιωτική" #: ../gtk-dialog.c:1982 msgid "_What's this?" msgstr "_Τι είναι αυτό;" #: ../gtk-dialog.c:2028 msgid "_End private conversation" msgstr "_Τερματισμός ιδιωτικής συνομιλίας" #: ../gtk-dialog.c:2207 ../gtk-dialog.c:2255 #, c-format msgid "" "Warning: The selected outgoing OTR session (%u) is not the most recently " "active one (%u). Your buddy may not receive your messages. Use the icon menu " "above to select a different outgoing session." msgstr "Προειδοποίηση: Η επιλεγμένη εξερχόμενη OTR συνεδρία (%u) δεν είναι η πιο πρόσφατα " "ενεργή (%u). Η επαφή σου πιθανόν να μην λάβει τα μηνύματά σου. Χρησιμοποίησε τα παραπάνω εικονίδια " "για να επιλέξεις μια διαφορετική εξερχόμενη συνεδρία." #: ../gtk-dialog.c:2271 msgid "Send to most secure" msgstr "Στείλε στις πιο ασφαλείς" #: ../gtk-dialog.c:2273 msgid "Send to most recent" msgstr "Στείλε στις πιο πρόσφατες" #: ../gtk-dialog.c:2377 #, c-format msgid "Session %u" msgstr "Συνεδρία %u" #: ../gtk-dialog.c:2395 ../gtk-dialog.c:2506 msgid "Select" msgstr "Επιλογή" #: ../gtk-dialog.c:2410 msgid "Selected" msgstr "Επιλεγμένη" #: ../gtk-dialog.c:2731 #, c-format msgid "" "The privacy status of the current conversation is now: %s" msgstr "Η κατάτασταση ιδιωτικότητας της παρούσας συνομιλίας είναι τώρα: %s" #: ../gtk-dialog.c:2956 msgid "OTR Messaging" msgstr "Ανταλλαγή μηνυμάτων OTR" #: ../gtk-ui.c:103 #, c-format msgid "Fingerprint: %.80s" msgstr "Αποτύπωμα: %.80s" #: ../gtk-ui.c:107 #, c-format msgid "No key present" msgstr "Δεν υπάρχει κλειδί" #: ../gtk-ui.c:112 #, c-format msgid "No account available" msgstr "Δεν υπάρχει διαθέσιμος λογαριασμός" #: ../gtk-ui.c:179 msgid "Unused" msgstr "Αχρησιμοποίητο" #: ../gtk-ui.c:208 msgid "Yes" msgstr "Ναι" #: ../gtk-ui.c:208 msgid "No" msgstr "Όχι" #: ../gtk-ui.c:473 msgid "Enable private messaging" msgstr "Ενεργοποίηση ιδιωτικής ανταλλαγής μηνυμάτων" #: ../gtk-ui.c:475 msgid "Automatically initiate private messaging" msgstr "Αυτόματη έναρξη ιδιωτικής ανταλλαγής μηνυμάτων" #: ../gtk-ui.c:477 msgid "Require private messaging" msgstr "Απαίτηση ιδιωτικής ανταλλαγής μηνυμάτων" #: ../gtk-ui.c:480 msgid "Don't log OTR conversations" msgstr "Μην καταγράφεις τις OTR συνομιλίες" #: ../gtk-ui.c:524 msgid "Show OTR button in toolbar" msgstr "Εμφάνιση του κουμπιού OTR στη μπάρα εργαλείων" #: ../gtk-ui.c:663 msgid "My private keys" msgstr "Τα ιδιωτικά μου κλειδιά" #: ../gtk-ui.c:672 msgid "Key for account:" msgstr "Κλειδί για το λογαριασμό:" #: ../gtk-ui.c:697 msgid "Generate" msgstr "Δημιουργία" #: ../gtk-ui.c:738 msgid "Default OTR Settings" msgstr "Προεπιλεγμένες ρυθμίσεις OTR" #: ../gtk-ui.c:765 msgid "OTR UI Options" msgstr "Επιλογές OTR για τη διεπαφή χρήστη" #: ../gtk-ui.c:788 msgid "Screenname" msgstr "Όνομα οθόνης" #: ../gtk-ui.c:789 msgid "Status" msgstr "Κατάσταση" #: ../gtk-ui.c:790 msgid "Verified" msgstr "Επαληθευμένο" #: ../gtk-ui.c:791 msgid "Fingerprint" msgstr "Αποτύπωμα" #: ../gtk-ui.c:792 msgid "Account" msgstr "Λογαριασμός" #: ../gtk-ui.c:828 msgid "Start private connection" msgstr "Έναρξη ιδιωτικής σύνδεσης" #: ../gtk-ui.c:836 msgid "End private connection" msgstr "Λήξη ιδιωτικής σύνδεσης" #: ../gtk-ui.c:852 msgid "Forget fingerprint" msgstr "Ξέχνα το αποτύπωμα" #: ../gtk-ui.c:903 msgid "Config" msgstr "Ρυθμίσεις" #: ../gtk-ui.c:905 msgid "Known fingerprints" msgstr "Γνωστά αποτυπώματα" #: ../gtk-ui.c:1003 ../otr-plugin.c:964 msgid "OTR Settings" msgstr "Ρυθμίσεις OTR" #. Set the title #: ../gtk-ui.c:1021 #, c-format msgid "OTR Settings for %s" msgstr "Ρυθμίσεις OTR για %s" #. Make the cascaded checkboxes #: ../gtk-ui.c:1038 msgid "Use default OTR settings for this buddy" msgstr "Χρησιμοποίησε τις προεπιλεγμένες OTR ρυθμίσεις για αυτή την επαφή" #: ../otr-plugin.c:125 #, c-format msgid "You are not currently connected to account %s (%s)." msgstr "Αυτή τη στιγμή δεν είσαι συνδεδεμένος στο λογαριασμό %s (%s)." #: ../otr-plugin.c:129 msgid "Not connected" msgstr "Αποσυνδεμένοι" #: ../otr-plugin.c:212 ../otr-plugin.c:254 #, c-format msgid "Out of memory building filenames!\n" msgstr "Μη επαρκής μνήμη κατά τη κατασκευή ονομάτων αρχείων!\n" #: ../otr-plugin.c:224 ../otr-plugin.c:260 #, c-format msgid "Could not write private key file\n" msgstr "Δεν ήταν δυνατό να γραφτεί το αρχείο ιδιωτικού κλειδιού\n" #: ../otr-plugin.c:298 #, c-format msgid "Unknown account %s (%s)." msgstr "Άγνωστος λογαριασμός %s (%s)." #: ../otr-plugin.c:302 msgid "Unknown account" msgstr "Άγνωστος λογαριασμός" #: ../otr-plugin.c:364 msgid "Error occurred encrypting message." msgstr "Προέκυψε σφάλμα κατά τη κρυπτογράφηση του μηνύματος." #: ../otr-plugin.c:368 #, c-format msgid "You sent encrypted data to %s, who wasn't expecting it." msgstr "Έστειλες κρυπτογραφημένα δεδομένα στην επαφή %s, η οποία δεν το περιμένε." #: ../otr-plugin.c:374 msgid "You transmitted an unreadable encrypted message." msgstr "Έστειλες ένα μη αναγνώσιμο κρυπτογραφημένο μήνυμα." #: ../otr-plugin.c:377 msgid "You transmitted a malformed data message." msgstr "Έστειλες ένα μήνυμα με κακοδιαμορφωμένα δεδομένα." #: ../otr-plugin.c:390 msgid "[resent]" msgstr "[εστάλη ξανά]" #: ../otr-plugin.c:459 #, c-format msgid "You attempted to send an unencrypted message to %s" msgstr "Προσπάθησες να στείλεις ένα μη κρυπτογραφημένο μήνυμα στην επαφή %s" #: ../otr-plugin.c:462 msgid "Attempting to start a private conversation..." msgstr "Απόπειρα να ξεκινήσει μια ιδιωτική συνομιλία..." #: ../otr-plugin.c:464 msgid "OTR Policy Violation" msgstr "Παραβίαση της Πολιτικής του OTR" #: ../otr-plugin.c:465 msgid "" "Unencrypted messages to this recipient are not allowed. Attempting to start " "a private conversation.\n" "\n" "Your message will be retransmitted when the private conversation starts." msgstr "Δεν επιτρέπονται μη κρυπτογραφημένα μηνύματα προς αυτό τον παραλήπτη. Απόπειρα να ξεκινήσει " "μια ιδιωτική συνομιλία.\n" "\n" "Το μήνυμά σου θα μεταδοθεί ξανά, όταν ξεκινήσει η ιδιωτική συνομιλία." #: ../otr-plugin.c:474 msgid "" "An error occurred when encrypting your message. The message was not sent." msgstr "Ένα σφάλμα προέκυψε κατά τη κρυπτογράφηση του μηνύματος. Το μήνυμα δεν εστάλη." #: ../otr-plugin.c:476 msgid "Error encrypting message" msgstr "Σφάλμα στη κρυπτογράφηση του μηνύματος" #: ../otr-plugin.c:477 msgid "An error occurred when encrypting your message" msgstr "Ένα σφάλμα προέκυψε κατά τη κρυπτογράφηση του μηνύματος" #: ../otr-plugin.c:478 msgid "The message was not sent." msgstr "Το μήνυμα δεν εστάλη." #: ../otr-plugin.c:481 #, c-format msgid "%s has already closed his/her private connection to you" msgstr "η επαφή %s έχει ήδη κλείσει την ιδιωτική του/της σύνδεση με εσένα" #: ../otr-plugin.c:484 msgid "" "Your message was not sent. Either end your private conversation, or restart " "it." msgstr "Το μήνυμά σου δεν εστάλη. Είτε τερμάτισε την ιδιωτική συνομιλία με την επαφή, ή ξεκίνα την ξανά. " #: ../otr-plugin.c:487 msgid "Private connection closed" msgstr "Η ιδιωτική συνομιλία έκλεισε" #: ../otr-plugin.c:488 msgid "" "Your message was not sent. Either close your private connection to him, or " "refresh it." msgstr "Το μήνυμά σου δεν εστάλη. Είτε κλείσε την ιδιωτική συνομιλία με την επαφή, ή ανανέωσέ την." #: ../otr-plugin.c:498 msgid "Error setting up private conversation: Malformed message received" msgstr "Σφάλμα κατά την εγκαθίδρυση ιδιωτικής συνομιλίας: Κακοδιαμορφωμένο μήνυμα ελήφθη" #: ../otr-plugin.c:502 #, c-format msgid "Error setting up private conversation: %s" msgstr "Σφάλμα κατά την δημιουργία ιδιωτικής συνομιλίας: %s" #: ../otr-plugin.c:509 ../otr-plugin.c:520 ../otr-plugin.c:547 #: ../otr-plugin.c:555 ../otr-plugin.c:573 msgid "OTR Error" msgstr "Σφάλμα OTR" #: ../otr-plugin.c:516 msgid "" "We are receiving our own OTR messages. You are either trying to talk to " "yourself, or someone is reflecting your messages back at you." msgstr "Λαμβάνουμε τα δικά μας OTR μηνύματα. Είτε προσπαθείς να μιλήσεις με τον εαυτό σου," " ή κάποιος επιστρέφει τα μηνύματά σου πίσω σε σένα." #: ../otr-plugin.c:520 msgid "We are receiving our own OTR messages." msgstr "Λαμβάνουμε τα δικά μας OTR μηνύματα." #: ../otr-plugin.c:521 msgid "" "You are either trying to talk to yourself, or someone is reflecting your " "messages back at you." msgstr "Είτε προσπαθείς να μιλήσεις με τον εαυτό σου, ή κάποιος επιστρέφει τα μηνύματά σου πίσω σε σένα." #: ../otr-plugin.c:526 #, c-format msgid "The last message to %s was resent." msgstr "Το τελευταίο μήνυμα προς την επαφή %s εστάλη ξανά." #: ../otr-plugin.c:530 msgid "Message resent" msgstr "Το μήνυμα εστάλη ξανά" #: ../otr-plugin.c:534 #, c-format msgid "" "The encrypted message received from %s is unreadable, as you are not " "currently communicating privately." msgstr "Το κρυπτογραφημένο μήνυμα που ελήφθη από %s δεν είναι αναγνώσιμο, καθώς " "αυτή τη στιγμή δεν επικοινωνείτε ιδιωτικά." #: ../otr-plugin.c:539 msgid "Unreadable message" msgstr "Μη αναγνώσιμο μήνυμα" #: ../otr-plugin.c:543 #, c-format msgid "We received an unreadable encrypted message from %s." msgstr "Λάβαμε ένα μη αναγνώσιμο κρυπτογραφημένο μήνυμα από %s." #: ../otr-plugin.c:551 #, c-format msgid "We received a malformed data message from %s." msgstr "Λάβαμε ένα μήνυμα από %s με κακοσχηματισμένα δεδομένα." #: ../otr-plugin.c:559 #, c-format msgid "Heartbeat received from %s.\n" msgstr "Παλμός ελήφθη από %s. \n" #: ../otr-plugin.c:565 #, c-format msgid "Heartbeat sent to %s.\n" msgstr "Παλμός εστάλη σε %s.\n" #: ../otr-plugin.c:576 #, c-format msgid "" "The following message received from %s was not encrypted: [%" "s]" msgstr "Το ακόλουθο μήνυμα που ελήφθη από %s δεν ήταν κρυπτογραφημένο: [%" "s]" #: ../otr-plugin.c:581 msgid "Received unencrypted message" msgstr "Ελήφθη μη κρυπτογραφημένο μήνυμα" #: ../otr-plugin.c:587 #, c-format msgid "Unrecognized OTR message received from %s.\n" msgstr "Ελήφθη μη αναγνωρίσιμο OTR μήνυμα από %s.\n" #: ../otr-plugin.c:596 #, c-format msgid "" "%s has sent a message intended for a different session. If you are logged in " "multiple times, another session may have received the message." msgstr "%s έστειλε ένα μήνυμα που προοριζόταν για διαφορετική συνεδρία. Αν είσαι συνδεδεμένος " "πολλαπλές φόρες, μια άλλη συνεδρία πιθανόν να έλαβε το μήνυμα." #: ../otr-plugin.c:602 msgid "Received message for a different session" msgstr "Ελήφθη μήνυμα από διαφορετική συνεδρία" #. 2013-01-01 #: ../otr-plugin.c:1193 ../otr-plugin.c:1220 #, c-format msgid "OTR PLUGIN v%s" msgstr "ΠΡΟΣΘΕΤΟ OTR v%s" #: ../otr-plugin.c:1202 #, c-format msgid "" "This beta copy of the Off-the-Record Messaging v%s Pidgin plugin has expired " "as of 2013-01-01. Please look for an updated release at http://otr." "cypherpunks.ca/" msgstr "Αυτό το αντίγραφο του πρόσθετου Off-the-Record Messaging v%s για Pidgin " "έχει λήξει από τις 01-01-2013. Παρακαλούμε αναζητήστε μια ενημερωμένη έκδοση στο " "http://otr.cypherpunks.ca/" #: ../otr-plugin.c:1229 #, c-format msgid "" "You have enabled a beta version of the Off-the-Record Messaging v%s Pidgin " "plugin. This version is intended for testing purposes only and is not for " "general purpose use." msgstr "Έχετε ενεργοποιήσει την beta έκδοση του πρόσθετου Off-the-Record Messaging v%s " "για Pidgin. Αυτή η έκδοση προορίζεται για δοκιμαστικούς σκοπούς μόνο και δεν είναι για γενική χρήση." #: ../otr-plugin.c:1414 msgid "Off-the-Record Messaging" msgstr "Off-the-Record Messaging" #: ../otr-plugin.c:1415 msgid "Provides private and secure conversations" msgstr "Παρέχει ιδιωτικές και ασφαλείς συνομιλίες" #: ../otr-plugin.c:1416 msgid "" "Preserves the privacy of IM communications by providing encryption, " "authentication, deniability, and perfect forward secrecy." msgstr "Διατηρεί την ιδιωτικότητα των επικοινωνιών άμεσω μηνυμάτων, παρέχοντας " "κρυπτογράφηση, αυθεντικοποίηση, δυνατότητα άρνησης, και τέλεια μελλοντική μυστικότητα." #: ../ui.c:110 #, c-format msgid "Account %s (%s) could not be found" msgstr "Ο λογαριασμός %s (%s) δεν ήταν δυνατό να βρεθεί" #: ../ui.c:114 msgid "Account not found" msgstr "Ο λογαριασμός δε βρέθηκε" pidgin-otr-4.0.0/po/sk.po0000644000175000017500000004366411767120042012120 00000000000000# Off-the-Record Messaging plugin for pidgin. # Copyright (C) 2004-2008 Ian Goldberg, Rob Smits, # Chris Alexander, Nikita Borisov # This file is distributed under the same license as the pidgin-otr package. # Ian Goldberg , 2008. # #: ../gtk-dialog.c:557 ../gtk-dialog.c:649 msgid "" msgstr "" "Project-Id-Version: pidgin-otr 3.2.0.sk\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2008-05-27 20:36+0200\n" "PO-Revision-Date: 2007-07-31 19:48+0200\n" "Last-Translator: Milan Plzik \n" "Language-Team: Slovak \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../gtk-dialog.c:434 ../gtk-dialog.c:2472 msgid "_What's this?" msgstr "Čo je _toto?" #: ../gtk-dialog.c:445 msgid "_More..." msgstr "_Viac..." #: ../gtk-dialog.c:479 #, c-format msgid "" "%s wishes to authenticate you. Your buddy has chosen a question for you to " "answer.\n" msgstr "%s by Vás chcel autentifikovať. Váš priateľ zvolil otázku, ktorú " "by ste mali zodpovedať.\n" #: ../gtk-dialog.c:482 #, c-format msgid "Enter a question only %s and yourself can answer.\n" msgstr "Zadajte heslo známe iba %s a Vám.\n" #: ../gtk-dialog.c:497 #, c-format msgid "This is the question asked by your buddy:" msgstr "Toto je otázka položená Vaším priateľom:" #: ../gtk-dialog.c:531 ../gtk-dialog.c:655 msgid "This buddy is already authenticated." msgstr "Tento priateľ už je autentifikovaný." #: ../gtk-dialog.c:543 #, c-format msgid "Enter secret answer here (case sensitive):" msgstr "Zadajte tajnú odpoveď (citlivé na veľkosť písmen):" #: ../gtk-dialog.c:578 msgid "" "Your buddy is attempting to determine if he or she is really talking to you, " "or if it's someone pretending to be you. Your buddy has asked a question, " "indicated above. To authenticate to your buddy, enter the answer and click " "OK." msgstr "" "Váš priateľ sa pokúša zistiť, či sa skutočne zhovára s Vami, alebo iba niekto" "predstiera, že ste to Vy - spýtal sa otázku, ktorá je zobrazená vyššie. Na" "to, aby ste sa priateľovi autentifikovali, zadajte odpoveď a kliknite na OK." #: ../gtk-dialog.c:583 ../gtk-dialog.c:599 ../gtk-dialog.c:679 # msgid "" "If your buddy uses multiple IM accounts or multiple computers, you may have " "to authenticate multiple times. However, as long as he or she uses an " "account and computer that you've seen before, you don't need to authenticate " "each individual conversation." msgstr "" "Ak Váš priateľ používa viacero IM kont alebo viacero počítačov, možno ho " "budete musiet autentifikovať viackrát. Avšak, pokiaľ používa konto a " "počítač, ktorý ste už videli, netreba autentifikovať každý rozhovor." #. The UNVERIFIED_HELPURL actually contains help info for all statuses #: ../gtk-dialog.c:588 ../gtk-dialog.c:604 ../gtk-dialog.c:684 #: ../gtk-dialog.c:1188 ../gtk-dialog.c:1192 ../gtk-dialog.c:1316 #: ../gtk-dialog.c:1484 ../gtk-dialog.c:1656 ../gtk-dialog.c:1759 #: ../gtk-dialog.c:1850 ../gtk-dialog.c:2282 msgid "?lang=en" msgstr "?lang=sk" #: ../gtk-dialog.c:589 ../gtk-dialog.c:605 ../gtk-dialog.c:685 msgid "Click here for more information about authentication in OTR." msgstr "Kliknite sem pre viac informácií o autentifikácii v OTR." #: ../gtk-dialog.c:594 msgid "" "To authenticate using a question, pick a question whose answer is known only " "to you and your buddy. Enter this question and this answer, then wait for " "your buddy to enter the answer too. If the answers don't match, then you " "may be talking to an imposter." msgstr "" "Na autentifikáciu použite heslo, ktoré poznáte iba Vy a priateľ. Zadajte " "toto heslo a počkajte, kým ho zadá aj priateľ. Ak sa heslá nezhodujú, je " "riziko, že sa rozprávate s podvodníkom." #: ../gtk-dialog.c:610 ../gtk-dialog.c:689 msgid "" "Authenticating a buddy helps ensure that the person you are talking to is " "who he or she claims to be." msgstr "" "Autentifikácia priateľa pomáha zabezpečiť, že osoba, s ktorou sa rozprávate, " "je skutočne tá, za ktorú sa vydáva." #: ../gtk-dialog.c:626 #, c-format msgid "Enter a secret known only to %s and yourself.\n" msgstr "Zadajte heslo známe iba %s a Vám.\n" #: ../gtk-dialog.c:675 msgid "" "To authenticate, pick a secret known only to you and your buddy. Enter this " "secret, then wait for your buddy to enter it too. If the secrets don't " "match, then you may be talking to an imposter." msgstr "" "Na autentifikáciu použite heslo, ktoré poznáte iba Vy a priateľ. Zadajte " "toto heslo a počkajte, kým ho zadá aj priateľ. Ak sa heslá nezhodujú, je " "riziko, že sa rozprávate s podvodníkom." #: ../gtk-dialog.c:713 ../gtk-dialog.c:1514 msgid "[none]" msgstr "[žiaden]" #: ../gtk-dialog.c:720 ../gtk-dialog.c:1076 ../gtk-dialog.c:1521 #: ../gtk-dialog.c:1564 ../gtk-ui.c:181 ../otr-plugin.c:116 #: ../otr-plugin.c:213 ../ui.c:111 msgid "Unknown" msgstr "Neznámy" #: ../gtk-dialog.c:721 ../gtk-dialog.c:1522 #, c-format msgid "" "Fingerprint for you, %s (%s):\n" "%s\n" "\n" "Purported fingerprint for %s:\n" "%s\n" msgstr "" "Odtlačok pre Vás, %s (%s):\n" "%s\n" "\n" "Údajný odtlačok pre %s:\n" "%s\n" #: ../gtk-dialog.c:769 msgid "Other Authentication Options" msgstr "Iné možnosti autentifikácie" #: ../gtk-dialog.c:781 msgid "Authenticate by posing a question only your buddy will know" msgstr "Autentifikácia položením otázky, na ktorú bude poznať odpoveď iba Váš priateľ" #: ../gtk-dialog.c:783 msgid "Authenticate each other using a predetermined shared secret phrase" msgstr "Vzájomná autentifikácia použitím dopredu určenej tajnej frázy" #: ../gtk-dialog.c:785 msgid "Authenticate by verifying your buddy's fingerprint (Advanced)" msgstr "Autentifikácia overením digitálneho odtlačku prsta priateľa (pokročilé)" #: ../gtk-dialog.c:897 msgid "0" msgstr "0" #: ../gtk-dialog.c:906 msgid "1" msgstr "1" #: ../gtk-dialog.c:918 msgid "2" msgstr "2" #: ../gtk-dialog.c:974 msgid "Authenticating to Buddy" msgstr "Autentifikujem sa priateľovi." #: ../gtk-dialog.c:975 msgid "Authenticating Buddy" msgstr "Autentifikujem priateľa." #: ../gtk-dialog.c:1002 msgid "Authenticating to" msgstr "Autentifikujem sa" #: ../gtk-dialog.c:1003 msgid "Authenticating" msgstr "Autentifikujem" #: ../gtk-dialog.c:1034 msgid "Waiting for buddy..." msgstr "Čakám na priateľa..." #: ../gtk-dialog.c:1067 msgid "Generating private key" msgstr "Generujem súkromný kľúč" #: ../gtk-dialog.c:1068 msgid "Please wait" msgstr "Prosím čakajte" #. Create the Please Wait... dialog #: ../gtk-dialog.c:1079 #, c-format msgid "Generating private key for %s (%s)..." msgstr "Generujem súkromný kľúč pre %s (%s)..." #: ../gtk-dialog.c:1124 #, c-format msgid "%s Done." msgstr "%s Dokončené." #: ../gtk-dialog.c:1186 #, c-format msgid "" "%s is contacting you from an unrecognized computer. You should authenticate this buddy." msgstr "" "%s vás kontaktuje z neznámeho počítača. Tohto priateľa by ste mali autentifikovať." #: ../gtk-dialog.c:1190 #, c-format msgid "" "%s has not been authenticated yet. You should authenticate this buddy." msgstr "" "%s ešte nebol autentifikovaný. Tohto priateľa by ste mali autentifikovať." #: ../gtk-dialog.c:1237 ../gtk-dialog.c:2007 ../gtk-dialog.c:2277 #: ../gtk-ui.c:82 msgid "Finished" msgstr "Dokončené" #: ../gtk-dialog.c:1238 ../gtk-dialog.c:2004 ../gtk-dialog.c:2274 #: ../gtk-ui.c:81 msgid "Private" msgstr "Súkromné" #: ../gtk-dialog.c:1239 ../gtk-dialog.c:2001 ../gtk-dialog.c:2271 #: ../gtk-ui.c:80 msgid "Unverified" msgstr "Neoverené" #: ../gtk-dialog.c:1240 ../gtk-ui.c:79 msgid "Not private" msgstr "Nesúkromné" #: ../gtk-dialog.c:1243 msgid "Start a private conversation" msgstr "Začať súkromný rozhovor" #: ../gtk-dialog.c:1244 msgid "Refresh the private conversation" msgstr "Obnoviť súkromný rozhovor" #: ../gtk-dialog.c:1249 ../gtk-dialog.c:1954 ../gtk-dialog.c:2042 msgid "Start _private conversation" msgstr "Začať _súkromný rozhovor" #: ../gtk-dialog.c:1250 ../gtk-dialog.c:1955 msgid "Refresh _private conversation" msgstr "Obnoviť _súkromný rozhovor" #: ../gtk-dialog.c:1449 msgid "I have not" msgstr "Neoveril som," #: ../gtk-dialog.c:1450 msgid "I have" msgstr "Overil som," #: ../gtk-dialog.c:1452 msgid " verified that this is in fact the correct" msgstr " že toto je ten správny" #: ../gtk-dialog.c:1461 #, c-format msgid "fingerprint for %s." msgstr "odtlačok prsta pre %s." #: ../gtk-dialog.c:1473 msgid "" "To verify the fingerprint, contact your buddy via some other " "authenticated channel, such as the telephone or GPG-signed email. Each of " "you should tell your fingerprint to the other." msgstr "" "Na overenie odtlačku prsta kontaktujte Vášho priateľa pomocou iného " "autentifikovaného kanálu, ako napríklad telefón alebo e-mail podpísaný " "pomocou GPG. Obaja by ste si mali navzájom povedať odtlačky prstov." #: ../gtk-dialog.c:1477 msgid "" "If everything matches up, you should indicate in the above dialog that you " "have verified the fingerprint." msgstr "" "Ak sa všetko zhoduje, mali by ste v dialógu vyššie označiť, že ste " "skontrolovali odtlačok prsta." #: ../gtk-dialog.c:1479 msgid "" "If your buddy has more than one IM account, or uses more than one computer, " "he may have multiple fingerprints." msgstr "" "Ak Váš priateľ má viac ako jedno IM konto, alebo používa viac ako jeden " "počítač, môže mať viacero odtlačkov prstov." #: ../gtk-dialog.c:1481 msgid "" "However, the only way an imposter could duplicate one of your buddy's " "fingerprints is by stealing information from her/his computer." msgstr "" "Jediný spôsob, ako mohol podvodník duplikovať jeden z odtlačkov prstov Vášho " "priateľa, je ukradnúť informácie z jej/jeho počítača." #: ../gtk-dialog.c:1485 msgid "Click here for more information about fingerprints." msgstr "Kliknite sem pre viac informácií o odtlačkoch prstov." #: ../gtk-dialog.c:1488 msgid "" "A fingerprint is a unique identifier that you should use to " "authenticate your buddy." msgstr "" "Odtlačok prsta je jednoznačný identifikátor, ktorý by ste mali použiť " "na autentifikovanie Vášho priateľa." #: ../gtk-dialog.c:1510 #, c-format msgid "Verify fingerprint for %s" msgstr "Skontrolujte odtlačok prsta pre %s" #: ../gtk-dialog.c:1527 ../gtk-ui.c:773 msgid "Verify fingerprint" msgstr "Skontrolujte odtlačok" #: ../gtk-dialog.c:1554 #, c-format msgid "Authentication from %s" msgstr "Autentifikácia od %s" #: ../gtk-dialog.c:1557 #, c-format msgid "Authenticate %s" msgstr "Autentifikujte %s" #: ../gtk-dialog.c:1567 msgid "Authenticate buddy" msgstr "Autentifikujte priateľa" #: ../gtk-dialog.c:1598 msgid "An error occurred during authentication." msgstr "Nastala chyba pri autentifikácii." #: ../gtk-dialog.c:1613 msgid "Authentication successful." msgstr "Autentifikácia bola úspešná" #: ../gtk-dialog.c:1616 msgid "" "Your buddy has successfully authenticated you. You may want to authenticate " "your buddy as well by asking your own question." msgstr "" "Váš priateľ Vás úspešne autentifikoval. Možno tiež chcete autentifikovať Vášho" " priateľa spýtaním sa vlastnej otázky." #: ../gtk-dialog.c:1622 msgid "Authentication failed." msgstr "Autentifikácia zlyhala" #: ../gtk-dialog.c:1650 #, c-format msgid "Private conversation with %s started.%s" msgstr "Súkromný rozhovor s %s začal.%s" #: ../gtk-dialog.c:1654 #, c-format msgid "Unverified conversation with %%s started.%%s" msgstr "Neoverený rozhovor s %%s začal.%%s" #. This last case should never happen, since we know #. * we're in ENCRYPTED. #: ../gtk-dialog.c:1662 #, c-format msgid "Not private conversation with %s started.%s" msgstr "Nesúkromný rozhovor s %s začal.%s" #: ../gtk-dialog.c:1668 ../gtk-dialog.c:1772 msgid " Warning: using old protocol version 1." msgstr " Varovanie: použvam starý protokol verzie 1." #: ../gtk-dialog.c:1688 #, c-format msgid "Private conversation with %s lost." msgstr "Súkromný rozhovor s %s stratený." #: ../gtk-dialog.c:1725 #, c-format msgid "" "%s has ended his/her private conversation with you; you should do the same." msgstr "" "%s ukončil(-a) svoj súkromný rozhovor s Vami; mali by ste spraviť to isté." #: ../gtk-dialog.c:1751 #, c-format msgid "Successfully refreshed the private conversation with %s.%s" msgstr "Súkromný rozhovor s %s úspešne obnovený.%s" #: ../gtk-dialog.c:1756 #, c-format msgid "" "Successfully refreshed the unverified conversation with " "%%s.%%s" msgstr "Neoverený rozhovor s %%s úspešne obnovený.%%s" #. This last case should never happen, since we know #. * we're in ENCRYPTED. #: ../gtk-dialog.c:1765 #, c-format msgid "Successfully refreshed the not private conversation with %s.%s" msgstr "Nesúkromný rozhovor s %s úspešne obnovený.%s" #: ../gtk-dialog.c:1797 #, c-format msgid "Attempting to refresh the private conversation with %s..." msgstr "Pokúšam sa obnoviť súkromný rozhovor s %s..." #: ../gtk-dialog.c:1799 #, c-format msgid "Attempting to start a private conversation with %s..." msgstr "Pokúšam sa začať súkromný rozhovor s %s..." #: ../gtk-dialog.c:1998 ../gtk-dialog.c:2268 msgid "Not Private" msgstr "Nesúkromné" #: ../gtk-dialog.c:2043 ../gtk-dialog.c:2437 msgid "_End private conversation" msgstr "_Ukončiť súkromný rozhovor" #. #. * Don't show the Verify fingerprint menu option any more. You can #. * still get to the dialog through Authenticate connection -> #. * Advanced... #. * #. menuverf = gtk_menu_item_new_with_mnemonic(_("_Verify fingerprint")); #. gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuverf); #. gtk_widget_show(menuverf); #. #: ../gtk-dialog.c:2044 ../gtk-dialog.c:2455 msgid "_Authenticate buddy" msgstr "_Autentifikovať priateľa" #: ../gtk-dialog.c:2264 #, c-format msgid "" "The privacy status of the current conversation is now: %s" msgstr "" "Stav súkromnosti pre aktuálnu konverzáciu je: %s" #: ../gtk-dialog.c:2419 msgid "OTR:" msgstr "OTR:" #: ../gtk-dialog.c:2431 msgid "OTR Messaging" msgstr "OTR odosielanie správ" #: ../gtk-ui.c:102 #, c-format msgid "Fingerprint: %.80s" msgstr "Odtlačok prsta: %.80s" #: ../gtk-ui.c:106 #, c-format msgid "No key present" msgstr "Nie je dostupný žiaden kľúč" #: ../gtk-ui.c:111 #, c-format msgid "No account available" msgstr "Nie je dostupné žiadne konto" #: ../gtk-ui.c:171 msgid "Unused" msgstr "Nepoužité" #: ../gtk-ui.c:177 msgid "Yes" msgstr "Áno" #: ../gtk-ui.c:177 msgid "No" msgstr "Nie" #: ../gtk-ui.c:403 msgid "Enable private messaging" msgstr "Zapnúť súkromné odosielanie správ" #: ../gtk-ui.c:405 msgid "Automatically initiate private messaging" msgstr "Automaticky iniciovať súkromné odosielanie správ" #: ../gtk-ui.c:407 msgid "Require private messaging" msgstr "Vyžadovať súkromné odosielanie správ" #: ../gtk-ui.c:410 msgid "Don't log OTR conversations" msgstr "Nezaznamenávať OTR rozhovory" #: ../gtk-ui.c:453 msgid "Show OTR button" msgstr "" #: ../gtk-ui.c:592 msgid "My private keys" msgstr "Moje súkromné kľúče" #: ../gtk-ui.c:601 msgid "Key for account:" msgstr "Kľúč pre konto:" #: ../gtk-ui.c:626 msgid "Generate" msgstr "Generuj" #: ../gtk-ui.c:667 msgid "Default OTR Settings" msgstr "Štandardné nastavenia OTR" #: ../gtk-ui.c:694 msgid "OTR UI Options" msgstr "Nastavenia rozhrania OTR" #: ../gtk-ui.c:717 msgid "Screenname" msgstr "Používateľské meno" #: ../gtk-ui.c:718 msgid "Status" msgstr "Stav" #: ../gtk-ui.c:719 msgid "Verified" msgstr "Overený" #: ../gtk-ui.c:720 msgid "Fingerprint" msgstr "Odtlačok prsta" #: ../gtk-ui.c:721 msgid "Account" msgstr "Konto" #: ../gtk-ui.c:757 msgid "Start private connection" msgstr "Začať súkromný rozhovor" #: ../gtk-ui.c:765 msgid "End private connection" msgstr "Ukončiť súkromný rozhovor" #: ../gtk-ui.c:781 msgid "Forget fingerprint" msgstr "Zabudnúť odtlačok prsta" #: ../gtk-ui.c:832 msgid "Config" msgstr "Nastaviť" #: ../gtk-ui.c:834 msgid "Known fingerprints" msgstr "Známe odtlačky prstov" #: ../gtk-ui.c:932 ../otr-plugin.c:606 msgid "OTR Settings" msgstr "Nastavenia OTR" #. Set the title #: ../gtk-ui.c:950 #, c-format msgid "OTR Settings for %s" msgstr "OTR nastavenia pre %s" #. Make the cascaded checkboxes #: ../gtk-ui.c:967 msgid "Use default OTR settings for this buddy" msgstr "Pre tohto priateľa použiť štandardné nastavenia" #: ../otr-plugin.c:114 #, c-format msgid "You are not currently connected to account %s (%s)." msgstr "Momentálne nie ste pripojený(-á) ku kontu %s (%s)." #: ../otr-plugin.c:118 msgid "Not connected" msgstr "Nepripojený" #: ../otr-plugin.c:162 #, c-format msgid "Out of memory building filenames!\n" msgstr "Nedostatok pamäte pri vytváraní mien súborov\n" #: ../otr-plugin.c:168 #, c-format msgid "Could not write private key file\n" msgstr "Nemohol som zapísať súbor so súkromným kľúčom\n" #: ../otr-plugin.c:211 #, c-format msgid "Unknown account %s (%s)." msgstr "Neznáme konto %s (%s)." #: ../otr-plugin.c:215 msgid "Unknown account" msgstr "Neznáme konto" #: ../otr-plugin.c:983 msgid "Off-the-Record Messaging" msgstr "Utajené posielanie správ (OTR)" #: ../otr-plugin.c:984 msgid "Provides private and secure conversations" msgstr "Umožňuje súkromné a bezpečné rozhovory" #: ../otr-plugin.c:985 msgid "" "Preserves the privacy of IM communications by providing encryption, " "authentication, deniability, and perfect forward secrecy." msgstr "" "Zachováva súkromie IM rozhovorov použitím šifrovania, autentifikácie, " "popreteľnosti a dokonalého dopredného zabezpečenia." #: ../ui.c:109 #, c-format msgid "Account %s (%s) could not be found" msgstr "Konto %s (%s) nemohlo byť nájdené" #: ../ui.c:113 msgid "Account not found" msgstr "Konto nenájdené" #~ msgid "Advanced..." #~ msgstr "Rozšírené..." pidgin-otr-4.0.0/packaging/0000755000175000017500000000000012021370261012506 500000000000000pidgin-otr-4.0.0/packaging/fedora/0000755000175000017500000000000012021370261013746 500000000000000pidgin-otr-4.0.0/packaging/fedora/pidgin-otr.spec0000644000175000017500000000621012020421670016615 00000000000000Summary: Off-The-Record Messaging plugin for pidgin Name: pidgin-otr Version: 4.0.0 Release: 1%{?dist} Source: http://otr.cypherpunks.ca/%{name}-%{version}.tar.gz Url: http://otr.cypherpunks.ca/ License: GPLv2 Group: Applications/Internet Provides: gaim-otr = %{version} Obsoletes: gaim-otr BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) Requires: pidgin >= 2.0.0, libotr >= 4.0.0 BuildRequires: glib2-devel, gtk2-devel, libgcrypt-devel >= 1.2.0 BuildRequires: libgpg-error-devel, pidgin-devel >= 2.0.0 BuildRequires: libotr-devel >= 4.0.0, perl(XML::Parser), gettext %description This is a pidgin plugin which implements Off-the-Record (OTR) Messaging. It is known to work (at least) under the Linux and Windows versions of pidgin (2.x). %prep %setup -q %build if [ \! -f configure ]; then echo "Building from pre-release" intltoolize --force --copy autoreconf -s -i fi %configure make %{?_smp_mflags} all %install rm -rf $RPM_BUILD_ROOT make DESTDIR=$RPM_BUILD_ROOT install # libtool insists on creating this rm $RPM_BUILD_ROOT/%{_libdir}/pidgin/pidgin-otr.la # locale %find_lang %{name} %clean rm -rf $RPM_BUILD_ROOT %files -f %{name}.lang %defattr(-, root, root, 0755) %doc README COPYING %{_libdir}/pidgin/pidgin-otr.so %changelog * Thu Jun 11 2009 Paul Wouters - 4.0.0-1 - Upgraded to 4.0.0. - Updated buildrequires - Fix license tag * Thu Jul 26 2007 Paul Wouters 3.1.0-preview2 - Added locale support to spec file - Upgraded to current version - Added Obsoletes for gaim-otr, now that the package is called pidgin-otr * Mon Oct 17 2005 Paul Wouters 3.0.0 - Minor change to allow for new documentation files. Ensure dependancy on at least libotr version 3.0.0 * Fri Jun 17 2005 Tom "spot" Callaway - reworked for Fedora Extras * Tue May 3 2005 Ian Goldberg - Bumped to version 2.0.2. * Wed Feb 23 2005 Ian Goldberg - Bumped to version 2.0.1. * Tue Feb 8 2005 Ian Goldberg - Bumped to version 2.0.0. * Wed Feb 2 2005 Ian Goldberg - Bumped to version 1.99.0. * Wed Jan 19 2005 Paul Wouters - Split spec file from libotr and added dependancies * Tue Dec 21 2004 Ian Goldberg - Bumped to version 1.0.2. * Fri Dec 17 2004 Paul Wouters - instll fix for x86_64 * Sun Dec 12 2004 Ian Goldberg - Bumped to version 1.0.0. * Fri Dec 10 2004 Ian Goldberg - Bumped to version 0.9.9rc2. * Thu Dec 9 2004 Ian Goldberg - Added CFLAGS to "make all", removed DESTDIR * Wed Dec 8 2004 Ian Goldberg - Bumped to version 0.9.9rc1. * Fri Dec 3 2004 Ian Goldberg - Bumped to version 0.9.1. * Wed Dec 1 2004 Paul Wouters - Bumped to version 0.9.0. - Fixed install for tools and cos - Added Obsoletes: target for otr-plugin so rpm-Uhv gaim-otr removes it. * Mon Nov 22 2004 Ian Goldberg - Bumped version to 0.8.1 * Sun Nov 21 2004 Paul Wouters - Initial version pidgin-otr-4.0.0/packaging/windows/0000755000175000017500000000000012021370261014200 500000000000000pidgin-otr-4.0.0/packaging/windows/pidgin-otr.nsi0000644000175000017500000002267612020421670016724 00000000000000; Script based on generated HM NIS Edit Script Wizard. ; Forgive me, i am new at this. -- {paul,ian}@cypherpunks.ca ; ; known issue. installer induced uninstaller abortion causes overwrite ; by installer without uninstall. ; v4.0.0 - New source version. ; v3.2.0 - New source version. ; v3.1.0 - New source version. Install and uninstall i18n files. ; v3.0.0 - Version for pidgin-2.0.0 ; v3.0.0 - Bump version number. ; v2.0.2 - Bump version number. ; v2.0.1 - Bump version number. ; v2.0.0-2 - linking to libotr-2.0.1 ; v2.0.0 - Bump version number. Fixed upgrading gaim2-otr (it didn't overwrite the dll) ; bug reported by Aldert Hazenberg ; - Added many safeguards and fixed conditions of failures when gaim is running ; during install, or failed to (un)install previously. ; - Removed popup signifying gaim is found ; v1.99.0-1 - Bump version number, install Protocol.txt file ; v1.0.3-2 - Fix for detecting gaim if not installed by Administrator ; bug report by Joanna Rutkowska ; - Fix for uninstalling the dll when not installed as Administrator ; v1.0.3 - Initial version ; todo: SetBrandingImage ; HM NIS Edit Wizard helper defines !define PRODUCT_NAME "pidgin-otr" !define PRODUCT_VERSION "4.0.0-0" !define PRODUCT_PUBLISHER "Cypherpunks CA" !define PRODUCT_WEB_SITE "http://otr.cypherpunks.ca/" !define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" !define PRODUCT_UNINST_ROOT_KEY "HKLM" ; MUI 1.67 compatible ------ !include "MUI.nsh" ; MUI Settings !define MUI_ABORTWARNING !define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico" !define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico" ; Welcome page !insertmacro MUI_PAGE_WELCOME ; License page !insertmacro MUI_PAGE_LICENSE "../../win32_export/COPYING.txt" ; Directory page !insertmacro MUI_PAGE_DIRECTORY ; Instfiles page !insertmacro MUI_PAGE_INSTFILES ; Finish page !define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\README.txt" !insertmacro MUI_PAGE_FINISH ; Uninstaller pages !insertmacro MUI_UNPAGE_INSTFILES ; Language files !insertmacro MUI_LANGUAGE "English" ; MUI end ------ Name "${PRODUCT_NAME} ${PRODUCT_VERSION}" OutFile "${PRODUCT_NAME}-${PRODUCT_VERSION}.exe" InstallDir "$PROGRAMFILES\pidgin-otr" InstallDirRegKey HKEY_LOCAL_MACHINE SOFTWARE\pidgin-otr "Install_Dir" ;WriteRegStr HKLM "SOFTWARE\pidgin-otr" "pidgindir" "" Var "PidginDir" ShowInstDetails show ShowUnInstDetails show Section "MainSection" SEC01 ;InstallDir "$PROGRAMFILES\Pidgin\plugins" ; uninstall previous pidgin-otr install if found. Call UnInstOld ;Check for pidgin installation Call GetPidginInstPath WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "SOFTWARE\pidgin-otr" "pidgindir" "$PidginDir" SetOutPath "$PidginDir\locale" SetOverwrite on ; What the next line means is to recursively search /usr/share/locale ; and install all files under there named pidgin-otr.mo File /r "../../win32_export/locale/pidgin-otr.mo" SetOutPath "$INSTDIR" SetOverwrite on File "../../win32_export/pidgin-otr.dll" ; move to pidgin plugin directory, check if not busy (pidgin is running) call CopyDLL ; hard part is done, do the rest now. SetOverwrite on File "../../win32_export/README.Toolkit.txt" File "../../win32_export/README.txt" File "../../win32_export/COPYING.txt" File "../../win32_export/COPYING.LIB.txt" File "../../win32_export/Protocol-v3.html" File "../../win32_export/otr_mackey.exe" File "../../win32_export/otr_modify.exe" File "../../win32_export/otr_parse.exe" File "../../win32_export/otr_readforge.exe" File "../../win32_export/otr_remac.exe" File "../../win32_export/otr_sesskeys.exe" File "pidgin-otr.nsi" SectionEnd Section -AdditionalIcons CreateDirectory "$SMPROGRAMS\pidgin-otr" CreateShortCut "$SMPROGRAMS\pidgin-otr\Uninstall.lnk" "$INSTDIR\pidgin-otr-uninst.exe" SectionEnd Section -Post WriteUninstaller "$INSTDIR\pidgin-otr-uninst.exe" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\pidgin-otr-uninst.exe" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}" SectionEnd Function un.onUninstSuccess HideWindow MessageBox MB_ICONINFORMATION|MB_OK "$(^Name) was successfully removed from your computer." /SD IDOK FunctionEnd Function un.onInit MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "Are you sure you want to completely remove $(^Name) and all of its components?" /SD IDYES IDYES +2 Abort FunctionEnd Section Uninstall Delete "$INSTDIR\pidgin-otr-uninst.exe" Delete "$INSTDIR\README.Toolkit.txt" Delete "$INSTDIR\README.txt" Delete "$INSTDIR\Protocol-v3.html" Delete "$INSTDIR\Protocol-v2.html" ;Left behind by v3.2.0 uninstaller Delete "$INSTDIR\COPYING.txt" Delete "$INSTDIR\COPYING.LIB.txt" Delete "$INSTDIR\otr_mackey.exe" Delete "$INSTDIR\otr_modify.exe" Delete "$INSTDIR\otr_parse.exe" Delete "$INSTDIR\otr_readforge.exe" Delete "$INSTDIR\otr_remac.exe" Delete "$INSTDIR\otr_sesskeys.exe" Delete "$INSTDIR\pidgin-otr.nsi" Delete "$SMPROGRAMS\pidgin-otr\Uninstall.lnk" RMDir "$SMPROGRAMS\pidgin-otr" RMDir "$INSTDIR" ReadRegStr $PidginDir HKLM Software\pidgin-otr "pidgindir" IfFileExists "$PidginDir\plugins\pidgin-otr.dll" dodelete ReadRegStr $PidginDir HKCU Software\pidgin-otr "pidgindir" IfFileExists "$PidginDir\plugins\pidgin-otr.dll" dodelete ReadRegStr $PidginDir HKLM Software\pidgin-otr "pidgindir" IfFileExists "$PidginDir\plugins\pidgin-otr.dll" dodelete ReadRegStr $PidginDir HKCU Software\Pidgin-otr "pidgindir" IfFileExists "$PidginDir\plugins\pidgin-otr.dll" dodelete MessageBox MB_OK|MB_ICONINFORMATION "Could not find pidgin plugin directory, pidgin-otr.dll not uninstalled!" /SD IDOK IDOK ok dodelete: Delete "$PidginDir\plugins\pidgin-otr.dll" ; Find all the language dirs and delete pidgin-otr.mo in all of them Push $0 Push $1 FindFirst $0 $1 $PidginDir\locale\* loop: StrCmp $1 "" loopdone Delete $PidginDir\locale\$1\LC_MESSAGES\pidgin-otr.mo FindNext $0 $1 Goto loop loopdone: Pop $1 Pop $0 IfFileExists "$PidginDir\plugins\pidgin-otr.dll" 0 +2 MessageBox MB_OK|MB_ICONINFORMATION "pidgin-otr.dll is busy. Probably Pidgin is still running. Please delete $PidginDir\plugins\pidgin-otr.dll manually." /SD IDOK DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "SOFTWARE\pidgin-otr\pidgindir" ok: SetAutoClose true SectionEnd Function GetPidginInstPath Push $0 ReadRegStr $0 HKLM "Software\pidgin" "" IfFileExists "$0\pidgin.exe" cont ReadRegStr $0 HKCU "Software\pidgin" "" IfFileExists "$0\pidgin.exe" cont MessageBox MB_OK|MB_ICONINFORMATION "Failed to find Pidgin installation." /SD IDOK Abort "Failed to find Pidgin installation. Please install Pidgin first." cont: StrCpy $PidginDir $0 ;MessageBox MB_OK|MB_ICONINFORMATION "Pidgin plugin directory found at $PidginDir\plugins ." /SD IDOK WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "SOFTWARE\pidgin-otr" "pidgindir" "$PidginDir" FunctionEnd Function UnInstOld Push $0 ReadRegStr $0 ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" IfFileExists "$0" deinst cont deinst: MessageBox MB_OK|MB_ICONEXCLAMATION "pidgin-otr was already found on your system and will first be uninstalled" /SD IDOK ; the uninstaller copies itself to temp and execs itself there, so it can delete ; everything including its own original file location. To prevent the installer and ; uninstaller racing you can't simply ExecWait. ; We hide the uninstall because otherwise it gets really confusing window-wise ;HideWindow ClearErrors IfSilent olduninstsilent ExecWait '"$0" _?=$INSTDIR' IfErrors 0 cont MessageBox MB_OK|MB_ICONEXCLAMATION "Uninstall failed or aborted" /SD IDOK Abort "Uninstalling of the previous version gave an error. Install aborted." olduninstsilent: ExecWait '"$0" /S _?=$INSTDIR' IfErrors 0 cont Abort "Uninstalling of the previous version gave an error. Install aborted." ;BringToFront cont: ;MessageBox MB_OK|MB_ICONINFORMATION "No old pidgin-otr found, continuing." /SD IDOK FunctionEnd Function CopyDLL SetOverwrite try ClearErrors ; 3 hours wasted so you guys don't need a reboot! ; Rename /REBOOTOK "$INSTDIR\pidgin-otr.dll" "$PidginDir\plugins\pidgin-otr.dll" IfFileExists "$PidginDir\plugins\pidgin-otr.dll" 0 copy ; remnant or uninstall prev version failed Delete "$PidginDir\plugins\pidgin-otr.dll" copy: ClearErrors Rename "$INSTDIR\pidgin-otr.dll" "$PidginDir\plugins\pidgin-otr.dll" IfErrors dllbusy Return dllbusy: MessageBox MB_RETRYCANCEL "pidgin-otr.dll is busy. Please close Pidgin (including tray icon) and try again" /SD IDCANCEL IDCANCEL cancel Delete "$PidginDir\plugins\pidgin-otr.dll" Goto copy Return cancel: Abort "Installation of pidgin-otr aborted" FunctionEnd pidgin-otr-4.0.0/config.guess0000755000175000017500000013105411274160642013037 00000000000000#! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 # Free Software Foundation, Inc. timestamp='2009-06-10' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 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. # Originally written by Per Bothner . # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # The plan is that this can be called by configure scripts if you # don't specify an explicit build system type. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm:riscos:*:*|arm:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; s390x:SunOS:*:*) echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) eval $set_cc_for_build SUN_ARCH="i386" # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then SUN_ARCH="x86_64" fi fi echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[456]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep -q __LP64__ then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) case ${UNAME_MACHINE} in pc98) echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:[3456]*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; EM64T | authenticamd | genuineintel) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; IA64) echo ia64-unknown-interix${UNAME_RELEASE} exit ;; esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; 8664:Windows_NT:*) echo x86_64-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then echo ${UNAME_MACHINE}-unknown-linux-gnu else echo ${UNAME_MACHINE}-unknown-linux-gnueabi fi exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) echo cris-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo crisv32-axis-linux-gnu exit ;; frv:Linux:*:*) echo frv-unknown-linux-gnu exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; mips:Linux:*:* | mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef ${UNAME_MACHINE} #undef ${UNAME_MACHINE}el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=${UNAME_MACHINE}el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=${UNAME_MACHINE} #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo or32-unknown-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep -q ld.so.1 if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit ;; padre:Linux:*:*) echo sparc-unknown-linux-gnu exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent # problems with other programs or directories called `ld' in the path. # Set LC_ALL=C to ensure ld outputs messages in English. ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ | sed -ne '/supported targets:/!d s/[ ][ ]*/ /g s/.*supported targets: *// s/ .*// p'` case "$ld_supported_targets" in elf32-i386) TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" ;; esac # Determine whether the default compiler is a.out or elf eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include #ifdef __ELF__ # ifdef __GLIBC__ # if __GLIBC__ >= 2 LIBC=gnu # else LIBC=gnulibc1 # endif # else LIBC=gnulibc1 # endif #else #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) LIBC=gnu #else LIBC=gnuaout #endif #endif #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^LIBC/{ s: ::g p }'`" test x"${LIBC}" != x && { echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit } test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i586. # Note: whatever this is, it MUST be the same as what config.sub # prints for the "djgpp" host, or else GDB configury will decide that # this is a cross-build. echo i586-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; NCR*:*:4.2:* | MPRAS*:*:4.2:*) OS_REL='.3' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; BePC:Haiku:*:*) # Haiku running on Intel PC compatible. echo i586-pc-haiku exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux${UNAME_RELEASE} exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; i*86:AROS:*:*) echo ${UNAME_MACHINE}-pc-aros exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: pidgin-otr-4.0.0/Makefile.am0000644000175000017500000000152112020421667012543 00000000000000AM_CFLAGS= @LIBGCRYPT_CFLAGS@ @LIBOTR_CFLAGS@ @EXTRA_CFLAGS@ AM_CFLAGS+= -DUSING_GTK -DPURPLE_PLUGINS \ -DPIDGIN_OTR_VERSION=\"@VERSION@\" \ -DLOCALEDIR=\"$(datadir)/locale\" SUBDIRS= po plugindir= ${libdir}/pidgin plugin_LTLIBRARIES= pidgin-otr.la pidgin_otr_la_SOURCES= otr-plugin.c ui.c dialogs.c gtk-ui.c gtk-dialog.c \ tooltipmenu.c pidgin_otr_la_LDFLAGS= -module -avoid-version pidgin_otr_la_LDFLAGS+= @LIBGCRYPT_LIBS@ @LIBOTR_LIBS@ EXTRA_DIST= dialogs.h gtk-dialog.h gtk-ui.h otr-plugin.h ui.h \ otr-icons.h tooltipmenu.h \ Makefile.mingw packaging/windows/pidgin-otr.nsi \ packaging/fedora/pidgin-otr.spec po/Makefile.mingw \ po/README intltool-extract.in intltool-merge.in \ intltool-update.in Makefile.static INSTALL.mingw DISTCLEANFILES= intltool-extract intltool-merge intltool-update pidgin-otr-4.0.0/config.h.in0000644000175000017500000000435412021370037012534 00000000000000/* config.h.in. Generated from configure.ac by autoheader. */ /* always defined to indicate that i18n is enabled */ #undef ENABLE_NLS /* Define the gettext package to be used */ #undef GETTEXT_PACKAGE /* Define to 1 if you have the `bind_textdomain_codeset' function. */ #undef HAVE_BIND_TEXTDOMAIN_CODESET /* Define to 1 if you have the `dcgettext' function. */ #undef HAVE_DCGETTEXT /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H /* Define if the GNU gettext() function is already present or preinstalled. */ #undef HAVE_GETTEXT /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define if your file defines LC_MESSAGES. */ #undef HAVE_LC_MESSAGES /* Define to 1 if you have the `otr' library (-lotr). */ #undef HAVE_LIBOTR /* Define to 1 if you have the header file. */ #undef HAVE_LOCALE_H /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Define to the sub-directory in which libtool stores uninstalled libraries. */ #undef LT_OBJDIR /* 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 home page for this package. */ #undef PACKAGE_URL /* Define to the version of this package. */ #undef PACKAGE_VERSION /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* Version number of package */ #undef VERSION pidgin-otr-4.0.0/ltmain.sh0000755000175000017500000073341511321062331012340 00000000000000# Generated from ltmain.m4sh. # ltmain.sh (GNU libtool) 2.2.6b # Written by Gordon Matzigkeit , 1996 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 2008 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # GNU Libtool is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, # or obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # Usage: $progname [OPTION]... [MODE-ARG]... # # Provide generalized library-building support services. # # --config show all configuration variables # --debug enable verbose shell tracing # -n, --dry-run display commands without modifying any files # --features display basic configuration information and exit # --mode=MODE use operation mode MODE # --preserve-dup-deps don't remove duplicate dependency libraries # --quiet, --silent don't print informational messages # --tag=TAG use configuration variables from tag TAG # -v, --verbose print informational messages (default) # --version print version information # -h, --help print short or long help message # # MODE must be one of the following: # # clean remove files from the build directory # compile compile a source file into a libtool object # execute automatically set library path, then run a program # finish complete the installation of libtool libraries # install install libraries or executables # link create a library or an executable # uninstall remove libraries from an installed directory # # MODE-ARGS vary depending on the MODE. # Try `$progname --help --mode=MODE' for a more detailed description of MODE. # # When reporting a bug, please describe a test case to reproduce it and # include the following information: # # host-triplet: $host # shell: $SHELL # compiler: $LTCC # compiler flags: $LTCFLAGS # linker: $LD (gnu? $with_gnu_ld) # $progname: (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1 # automake: $automake_version # autoconf: $autoconf_version # # Report bugs to . PROGRAM=ltmain.sh PACKAGE=libtool VERSION="2.2.6b Debian-2.2.6b-2ubuntu1" TIMESTAMP="" package_revision=1.3017 # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # NLS nuisances: We save the old values to restore during execute mode. # Only set LANG and LC_ALL to C if already set. # These must not be set unconditionally because not all systems understand # e.g. LANG=C (notably SCO). lt_user_locale= lt_safe_locale= for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${$lt_var+set}\" = set; then save_$lt_var=\$$lt_var $lt_var=C export $lt_var lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" fi" done $lt_unset CDPATH : ${CP="cp -f"} : ${ECHO="echo"} : ${EGREP="/bin/grep -E"} : ${FGREP="/bin/grep -F"} : ${GREP="/bin/grep"} : ${LN_S="ln -s"} : ${MAKE="make"} : ${MKDIR="mkdir"} : ${MV="mv -f"} : ${RM="rm -f"} : ${SED="/bin/sed"} : ${SHELL="${CONFIG_SHELL-/bin/sh}"} : ${Xsed="$SED -e 1s/^X//"} # Global variables: EXIT_SUCCESS=0 EXIT_FAILURE=1 EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. exit_status=$EXIT_SUCCESS # Make sure IFS has a sensible default lt_nl=' ' IFS=" $lt_nl" dirname="s,/[^/]*$,," basename="s,^.*/,," # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` } # Generated shell functions inserted here. # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh # is ksh but when the shell is invoked as "sh" and the current value of # the _XPG environment variable is not equal to 1 (one), the special # positional parameter $0, within a function call, is the name of the # function. progpath="$0" # The name of this program: # In the unlikely event $progname began with a '-', it would play havoc with # func_echo (imagine progname=-n), so we prepend ./ in that case: func_dirname_and_basename "$progpath" progname=$func_basename_result case $progname in -*) progname=./$progname ;; esac # Make sure we have an absolute path for reexecution: case $progpath in [\\/]*|[A-Za-z]:\\*) ;; *[\\/]*) progdir=$func_dirname_result progdir=`cd "$progdir" && pwd` progpath="$progdir/$progname" ;; *) save_IFS="$IFS" IFS=: for progdir in $PATH; do IFS="$save_IFS" test -x "$progdir/$progname" && break done IFS="$save_IFS" test -n "$progdir" || progdir=`pwd` progpath="$progdir/$progname" ;; 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' # Re-`\' parameter expansions in output of double_quote_subst that were # `\'-ed in input to the same. If an odd number of `\' preceded a '$' # in input to double_quote_subst, that '$' was protected from expansion. # Since each input `\' is now two `\'s, look for any number of runs of # four `\'s followed by two `\'s and then a '$'. `\' that '$'. bs='\\' bs2='\\\\' bs4='\\\\\\\\' dollar='\$' sed_double_backslash="\ s/$bs4/&\\ /g s/^$bs2$dollar/$bs&/ s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g s/\n//g" # Standard options: opt_dry_run=false opt_help=false opt_quiet=false opt_verbose=false opt_warning=: # func_echo arg... # Echo program name prefixed message, along with the current mode # name if it has been set yet. func_echo () { $ECHO "$progname${mode+: }$mode: $*" } # func_verbose arg... # Echo program name prefixed message in verbose mode only. func_verbose () { $opt_verbose && func_echo ${1+"$@"} # A bug in bash halts the script if the last line of a function # fails when set -e is in force, so we need another command to # work around that: : } # func_error arg... # Echo program name prefixed message to standard error. func_error () { $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2 } # func_warning arg... # Echo program name prefixed warning message to standard error. func_warning () { $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2 # bash bug again: : } # func_fatal_error arg... # Echo program name prefixed message to standard error, and exit. func_fatal_error () { func_error ${1+"$@"} exit $EXIT_FAILURE } # func_fatal_help arg... # Echo program name prefixed message to standard error, followed by # a help hint, and exit. func_fatal_help () { func_error ${1+"$@"} func_fatal_error "$help" } help="Try \`$progname --help' for more information." ## default # func_grep expression filename # Check whether EXPRESSION matches any line of FILENAME, without output. func_grep () { $GREP "$1" "$2" >/dev/null 2>&1 } # func_mkdir_p directory-path # Make sure the entire path to DIRECTORY-PATH is available. func_mkdir_p () { my_directory_path="$1" my_dir_list= if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then # Protect directory names starting with `-' case $my_directory_path in -*) my_directory_path="./$my_directory_path" ;; esac # While some portion of DIR does not yet exist... while test ! -d "$my_directory_path"; do # ...make a list in topmost first order. Use a colon delimited # list incase some portion of path contains whitespace. my_dir_list="$my_directory_path:$my_dir_list" # If the last portion added has no slash in it, the list is done case $my_directory_path in */*) ;; *) break ;; esac # ...otherwise throw away the child directory and loop my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"` done my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'` save_mkdir_p_IFS="$IFS"; IFS=':' for my_dir in $my_dir_list; do IFS="$save_mkdir_p_IFS" # mkdir can fail with a `File exist' error if two processes # try to create one of the directories concurrently. Don't # stop in that case! $MKDIR "$my_dir" 2>/dev/null || : done IFS="$save_mkdir_p_IFS" # Bail out if we (or some other process) failed to create a directory. test -d "$my_directory_path" || \ func_fatal_error "Failed to create \`$1'" fi } # func_mktempdir [string] # Make a temporary directory that won't clash with other running # libtool processes, and avoids race conditions if possible. If # given, STRING is the basename for that directory. func_mktempdir () { my_template="${TMPDIR-/tmp}/${1-$progname}" if test "$opt_dry_run" = ":"; then # Return a directory name, but don't create it in dry-run mode my_tmpdir="${my_template}-$$" else # If mktemp works, use that first and foremost my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` if test ! -d "$my_tmpdir"; then # Failing that, at least try and use $RANDOM to avoid a race my_tmpdir="${my_template}-${RANDOM-0}$$" save_mktempdir_umask=`umask` umask 0077 $MKDIR "$my_tmpdir" umask $save_mktempdir_umask fi # If we're not in dry-run mode, bomb out on failure test -d "$my_tmpdir" || \ func_fatal_error "cannot create temporary directory \`$my_tmpdir'" fi $ECHO "X$my_tmpdir" | $Xsed } # func_quote_for_eval arg # Aesthetically quote ARG to be evaled later. # This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT # is double-quoted, suitable for a subsequent eval, whereas # FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters # which are still active within double quotes backslashified. func_quote_for_eval () { case $1 in *[\\\`\"\$]*) func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;; *) func_quote_for_eval_unquoted_result="$1" ;; esac case $func_quote_for_eval_unquoted_result in # Double-quote args containing shell metacharacters to delay # word splitting, command substitution and and variable # expansion for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" ;; *) func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" esac } # func_quote_for_expand arg # Aesthetically quote ARG to be evaled later; same as above, # but do not quote variable references. func_quote_for_expand () { case $1 in *[\\\`\"]*) my_arg=`$ECHO "X$1" | $Xsed \ -e "$double_quote_subst" -e "$sed_double_backslash"` ;; *) my_arg="$1" ;; esac case $my_arg in # Double-quote args containing shell metacharacters to delay # word splitting and command substitution for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") my_arg="\"$my_arg\"" ;; esac func_quote_for_expand_result="$my_arg" } # func_show_eval cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. func_show_eval () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$my_cmd" my_status=$? if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_show_eval_locale cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. Use the saved locale for evaluation. func_show_eval_locale () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$lt_user_locale $my_cmd" my_status=$? eval "$lt_safe_locale" if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_version # Echo version message to standard output and exit. func_version () { $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / { s/^# // s/^# *$// s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ p }' < "$progpath" exit $? } # func_usage # Echo short help message to standard output and exit. func_usage () { $SED -n '/^# Usage:/,/# -h/ { s/^# // s/^# *$// s/\$progname/'$progname'/ p }' < "$progpath" $ECHO $ECHO "run \`$progname --help | more' for full usage" exit $? } # func_help # Echo long help message to standard output and exit. func_help () { $SED -n '/^# Usage:/,/# Report bugs to/ { s/^# // s/^# *$// s*\$progname*'$progname'* s*\$host*'"$host"'* s*\$SHELL*'"$SHELL"'* s*\$LTCC*'"$LTCC"'* s*\$LTCFLAGS*'"$LTCFLAGS"'* s*\$LD*'"$LD"'* s/\$with_gnu_ld/'"$with_gnu_ld"'/ s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/ s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/ p }' < "$progpath" exit $? } # func_missing_arg argname # Echo program name prefixed message to standard error and set global # exit_cmd. func_missing_arg () { func_error "missing argument for $1" exit_cmd=exit } exit_cmd=: # Check that we have a working $ECHO. if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then # Yippee, $ECHO works! : else # Restart under the correct shell, and then maybe $ECHO will work. exec $SHELL "$progpath" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat </dev/null 2>&1; then taglist="$taglist $tagname" # Evaluate the configuration. Be careful to quote the path # and the sed script, to avoid splitting on whitespace, but # also don't use non-portable quotes within backquotes within # quotes we have to do it in 2 steps: extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` eval "$extractedcf" else func_error "ignoring unknown tag $tagname" fi ;; esac } # Parse options once, thoroughly. This comes as soon as possible in # the script to make things like `libtool --version' happen quickly. { # Shorthand for --mode=foo, only valid as the first argument case $1 in clean|clea|cle|cl) shift; set dummy --mode clean ${1+"$@"}; shift ;; compile|compil|compi|comp|com|co|c) shift; set dummy --mode compile ${1+"$@"}; shift ;; execute|execut|execu|exec|exe|ex|e) shift; set dummy --mode execute ${1+"$@"}; shift ;; finish|finis|fini|fin|fi|f) shift; set dummy --mode finish ${1+"$@"}; shift ;; install|instal|insta|inst|ins|in|i) shift; set dummy --mode install ${1+"$@"}; shift ;; link|lin|li|l) shift; set dummy --mode link ${1+"$@"}; shift ;; uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) shift; set dummy --mode uninstall ${1+"$@"}; shift ;; esac # Parse non-mode specific arguments: while test "$#" -gt 0; do opt="$1" shift case $opt in --config) func_config ;; --debug) preserve_args="$preserve_args $opt" func_echo "enabling shell trace mode" opt_debug='set -x' $opt_debug ;; -dlopen) test "$#" -eq 0 && func_missing_arg "$opt" && break execute_dlfiles="$execute_dlfiles $1" shift ;; --dry-run | -n) opt_dry_run=: ;; --features) func_features ;; --finish) mode="finish" ;; --mode) test "$#" -eq 0 && func_missing_arg "$opt" && break case $1 in # Valid mode arguments: clean) ;; compile) ;; execute) ;; finish) ;; install) ;; link) ;; relink) ;; uninstall) ;; # Catch anything else as an error *) func_error "invalid argument for $opt" exit_cmd=exit break ;; esac mode="$1" shift ;; --preserve-dup-deps) opt_duplicate_deps=: ;; --quiet|--silent) preserve_args="$preserve_args $opt" opt_silent=: ;; --verbose| -v) preserve_args="$preserve_args $opt" opt_silent=false ;; --tag) test "$#" -eq 0 && func_missing_arg "$opt" && break preserve_args="$preserve_args $opt $1" func_enable_tag "$1" # tagname is set here shift ;; # Separate optargs to long options: -dlopen=*|--mode=*|--tag=*) func_opt_split "$opt" set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"} shift ;; -\?|-h) func_usage ;; --help) opt_help=: ;; --version) func_version ;; -*) func_fatal_help "unrecognized option \`$opt'" ;; *) nonopt="$opt" break ;; esac done case $host in *cygwin* | *mingw* | *pw32* | *cegcc*) # don't eliminate duplications in $postdeps and $predeps opt_duplicate_compiler_generated_deps=: ;; *) opt_duplicate_compiler_generated_deps=$opt_duplicate_deps ;; esac # Having warned about all mis-specified options, bail out if # anything was wrong. $exit_cmd $EXIT_FAILURE } # func_check_version_match # Ensure that we are using m4 macros, and libtool script from the same # release of libtool. func_check_version_match () { if test "$package_revision" != "$macro_revision"; then if test "$VERSION" != "$macro_version"; then if test -z "$macro_version"; then cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from an older release. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from $PACKAGE $macro_version. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF fi else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, $progname: but the definition of this LT_INIT comes from revision $macro_revision. $progname: You should recreate aclocal.m4 with macros from revision $package_revision $progname: of $PACKAGE $VERSION and run autoconf again. _LT_EOF fi exit $EXIT_MISMATCH fi } ## ----------- ## ## Main. ## ## ----------- ## $opt_help || { # Sanity checks first: func_check_version_match if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then func_fatal_configuration "not configured to build any kind of library" fi test -z "$mode" && func_fatal_error "error: you must specify a MODE." # Darwin sucks eval std_shrext=\"$shrext_cmds\" # Only execute mode is allowed to have -dlopen flags. if test -n "$execute_dlfiles" && test "$mode" != execute; then func_error "unrecognized option \`-dlopen'" $ECHO "$help" 1>&2 exit $EXIT_FAILURE fi # Change the help message to a mode-specific one. generic_help="$help" help="Try \`$progname --help --mode=$mode' for more information." } # func_lalib_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_lalib_p () { test -f "$1" && $SED -e 4q "$1" 2>/dev/null \ | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 } # func_lalib_unsafe_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function implements the same check as func_lalib_p without # resorting to external programs. To this end, it redirects stdin and # closes it afterwards, without saving the original file descriptor. # As a safety measure, use it only where a negative result would be # fatal anyway. Works if `file' does not exist. func_lalib_unsafe_p () { lalib_p=no if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then for lalib_p_l in 1 2 3 4 do read lalib_p_line case "$lalib_p_line" in \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; esac done exec 0<&5 5<&- fi test "$lalib_p" = yes } # func_ltwrapper_script_p file # True iff FILE is a libtool wrapper script # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_script_p () { func_lalib_p "$1" } # func_ltwrapper_executable_p file # True iff FILE is a libtool wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_executable_p () { func_ltwrapper_exec_suffix= case $1 in *.exe) ;; *) func_ltwrapper_exec_suffix=.exe ;; esac $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 } # func_ltwrapper_scriptname file # Assumes file is an ltwrapper_executable # uses $file to determine the appropriate filename for a # temporary ltwrapper_script. func_ltwrapper_scriptname () { func_ltwrapper_scriptname_result="" if func_ltwrapper_executable_p "$1"; then func_dirname_and_basename "$1" "" "." func_stripname '' '.exe' "$func_basename_result" func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" fi } # func_ltwrapper_p file # True iff FILE is a libtool wrapper script or wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_p () { func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" } # func_execute_cmds commands fail_cmd # Execute tilde-delimited COMMANDS. # If FAIL_CMD is given, eval that upon failure. # FAIL_CMD may read-access the current command in variable CMD! func_execute_cmds () { $opt_debug save_ifs=$IFS; IFS='~' for cmd in $1; do IFS=$save_ifs eval cmd=\"$cmd\" func_show_eval "$cmd" "${2-:}" done IFS=$save_ifs } # func_source file # Source FILE, adding directory component if necessary. # Note that it is not necessary on cygwin/mingw to append a dot to # FILE even if both FILE and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # `FILE.' does not work on cygwin managed mounts. func_source () { $opt_debug case $1 in */* | *\\*) . "$1" ;; *) . "./$1" ;; esac } # func_infer_tag arg # Infer tagged configuration to use if any are available and # if one wasn't chosen via the "--tag" command line option. # Only attempt this if the compiler in the base compile # command doesn't match the default compiler. # arg is usually of the form 'gcc ...' func_infer_tag () { $opt_debug if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do func_quote_for_eval "$arg" CC_quoted="$CC_quoted $func_quote_for_eval_result" done case $@ in # Blanks in the command may have been stripped by the calling shell, # but not from the CC environment variable when configure was run. " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;; # Blanks at the start of $base_compile will cause this to fail # if we don't check for them as well. *) for z in $available_tags; do if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters. func_quote_for_eval "$arg" CC_quoted="$CC_quoted $func_quote_for_eval_result" done case "$@ " in " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) # The compiler in the base compile command matches # the one in the tagged configuration. # Assume this is the tagged configuration we want. tagname=$z break ;; esac fi done # If $tagname still isn't set, then no tagged configuration # was found and let the user know that the "--tag" command # line option must be used. if test -z "$tagname"; then func_echo "unable to infer tagged configuration" func_fatal_error "specify a tag with \`--tag'" # else # func_verbose "using $tagname tagged configuration" fi ;; esac fi } # func_write_libtool_object output_name pic_name nonpic_name # Create a libtool object file (analogous to a ".la" file), # but don't create it if we're doing a dry run. func_write_libtool_object () { write_libobj=${1} if test "$build_libtool_libs" = yes; then write_lobj=\'${2}\' else write_lobj=none fi if test "$build_old_libs" = yes; then write_oldobj=\'${3}\' else write_oldobj=none fi $opt_dry_run || { cat >${write_libobj}T <?"'"'"' &()|`$[]' \ && func_warning "libobj name \`$libobj' may not contain shell special characters." func_dirname_and_basename "$obj" "/" "" objname="$func_basename_result" xdir="$func_dirname_result" lobj=${xdir}$objdir/$objname test -z "$base_compile" && \ func_fatal_help "you must specify a compilation command" # Delete any leftover library objects. if test "$build_old_libs" = yes; then removelist="$obj $lobj $libobj ${libobj}T" else removelist="$lobj $libobj ${libobj}T" fi # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in cygwin* | mingw* | pw32* | os2* | cegcc*) pic_mode=default ;; esac if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then # non-PIC code in shared libraries is not supported pic_mode=default fi # Calculate the filename of the output object if compiler does # not support -o with -c if test "$compiler_c_o" = no; then output_obj=`$ECHO "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" else output_obj= need_locks=no lockfile= fi # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file if test "$need_locks" = yes; then until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done elif test "$need_locks" = warn; then if test -f "$lockfile"; then $ECHO "\ *** ERROR, $lockfile exists and contains: `cat $lockfile 2>/dev/null` This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi removelist="$removelist $output_obj" $ECHO "$srcfile" > "$lockfile" fi $opt_dry_run || $RM $removelist removelist="$removelist $lockfile" trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 if test -n "$fix_srcfile_path"; then eval srcfile=\"$fix_srcfile_path\" fi func_quote_for_eval "$srcfile" qsrcfile=$func_quote_for_eval_result # Only build a PIC object if we are building libtool libraries. if test "$build_libtool_libs" = yes; then # Without this assignment, base_compile gets emptied. fbsd_hideous_sh_bug=$base_compile if test "$pic_mode" != no; then command="$base_compile $qsrcfile $pic_flag" else # Don't build PIC code command="$base_compile $qsrcfile" fi func_mkdir_p "$xdir$objdir" if test -z "$output_obj"; then # Place PIC objects in $objdir command="$command -o $lobj" fi func_show_eval_locale "$command" \ 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed, then go on to compile the next one if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then func_show_eval '$MV "$output_obj" "$lobj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi # Allow error messages only from the first compilation. if test "$suppress_opt" = yes; then suppress_output=' >/dev/null 2>&1' fi fi # Only build a position-dependent object if we build old libraries. if test "$build_old_libs" = yes; then if test "$pic_mode" != yes; then # Don't build PIC code command="$base_compile $qsrcfile$pie_flag" else command="$base_compile $qsrcfile $pic_flag" fi if test "$compiler_c_o" = yes; then command="$command -o $obj" fi # Suppress compiler output if we already did a PIC compilation. command="$command$suppress_output" func_show_eval_locale "$command" \ '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then func_show_eval '$MV "$output_obj" "$obj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi fi $opt_dry_run || { func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" # Unlock the critical section if it was locked if test "$need_locks" != no; then removelist=$lockfile $RM "$lockfile" fi } exit $EXIT_SUCCESS } $opt_help || { test "$mode" = compile && func_mode_compile ${1+"$@"} } func_mode_help () { # We need to display help for each of the modes. case $mode in "") # Generic help is extracted from the usage comments # at the start of this file. func_help ;; clean) $ECHO \ "Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... Remove files from the build directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, object or program, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; compile) $ECHO \ "Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE Compile a source file into a libtool library object. This mode accepts the following additional options: -o OUTPUT-FILE set the output file name to OUTPUT-FILE -no-suppress do not suppress compiler output for multiple passes -prefer-pic try to building PIC objects only -prefer-non-pic try to building non-PIC objects only -shared do not build a \`.o' file suitable for static linking -static only build a \`.o' file suitable for static linking COMPILE-COMMAND is a command to be used in creating a \`standard' object file from the given SOURCEFILE. The output file name is determined by removing the directory component from SOURCEFILE, then substituting the C source code suffix \`.c' with the library object suffix, \`.lo'." ;; execute) $ECHO \ "Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... Automatically set library path, then run a program. This mode accepts the following additional options: -dlopen FILE add the directory containing FILE to the library path This mode sets the library path environment variable according to \`-dlopen' flags. If any of the ARGS are libtool executable wrappers, then they are translated into their corresponding uninstalled binary, and any of their required library directories are added to the library path. Then, COMMAND is executed, with ARGS as arguments." ;; finish) $ECHO \ "Usage: $progname [OPTION]... --mode=finish [LIBDIR]... Complete the installation of libtool libraries. Each LIBDIR is a directory that contains libtool libraries. The commands that this mode executes may require superuser privileges. Use the \`--dry-run' option if you just want to see what would be executed." ;; install) $ECHO \ "Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... Install executables or libraries. INSTALL-COMMAND is the installation command. The first component should be either the \`install' or \`cp' program. The following components of INSTALL-COMMAND are treated specially: -inst-prefix PREFIX-DIR Use PREFIX-DIR as a staging area for installation The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." ;; link) $ECHO \ "Usage: $progname [OPTION]... --mode=link LINK-COMMAND... Link object files or libraries together to form another library, or to create an executable program. LINK-COMMAND is a command using the C compiler that you would use to create a program from several object files. The following components of LINK-COMMAND are treated specially: -all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possible -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -export-symbols SYMFILE try to export only the symbols listed in SYMFILE -export-symbols-regex REGEX try to export only the symbols matching REGEX -LLIBDIR search LIBDIR for required installed libraries -lNAME OUTPUT-FILE requires the installed library libNAME -module build a library that can dlopened -no-fast-install disable the fast-install mode -no-install link a not-installable executable -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -objectlist FILE Use a list of object files found in FILE to specify objects -precious-files-regex REGEX don't remove output files matching REGEX -release RELEASE specify package release information -rpath LIBDIR the created library will eventually be installed in LIBDIR -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries -shared only do dynamic linking of libtool libraries -shrext SUFFIX override the standard shared library file extension -static do not do any dynamic linking of uninstalled libtool libraries -static-libtool-libs do not do any dynamic linking of libtool libraries -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] -weak LIBNAME declare that the target provides the LIBNAME interface All other options (arguments beginning with \`-') are ignored. Every other argument is treated as a filename. Files ending in \`.la' are treated as uninstalled libtool libraries, other files are standard or library object files. If the OUTPUT-FILE ends in \`.la', then a libtool library is created, only library objects (\`.lo' files) may be specified, and \`-rpath' is required, except when creating a convenience library. If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created using \`ar' and \`ranlib', or on Windows using \`lib'. If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file is created, otherwise an executable program is created." ;; uninstall) $ECHO \ "Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... Remove libraries from an installation directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; *) func_fatal_help "invalid operation mode \`$mode'" ;; esac $ECHO $ECHO "Try \`$progname --help' for more information about other modes." exit $? } # Now that we've collected a possible --mode arg, show help if necessary $opt_help && func_mode_help # func_mode_execute arg... func_mode_execute () { $opt_debug # The first argument is the command name. cmd="$nonopt" test -z "$cmd" && \ func_fatal_help "you must specify a COMMAND" # Handle -dlopen flags immediately. for file in $execute_dlfiles; do test -f "$file" \ || func_fatal_help "\`$file' is not a file" dir= case $file in *.la) # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$lib' is not a valid libtool archive" # Read the libtool library. dlname= library_names= func_source "$file" # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && \ func_warning "\`$file' was not linked with \`-export-dynamic'" continue fi func_dirname "$file" "" "." dir="$func_dirname_result" if test -f "$dir/$objdir/$dlname"; then dir="$dir/$objdir" else if test ! -f "$dir/$dlname"; then func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" fi fi ;; *.lo) # Just add the directory containing the .lo file. func_dirname "$file" "" "." dir="$func_dirname_result" ;; *) func_warning "\`-dlopen' is ignored for non-libtool libraries and objects" continue ;; esac # Get the absolute pathname. absdir=`cd "$dir" && pwd` test -n "$absdir" && dir="$absdir" # Now add the directory to shlibpath_var. if eval "test -z \"\$$shlibpath_var\""; then eval "$shlibpath_var=\"\$dir\"" else eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" fi done # This variable tells wrapper scripts just to set shlibpath_var # rather than running their programs. libtool_execute_magic="$magic" # Check if any of the arguments is a wrapper script. args= for file do case $file in -*) ;; *) # Do a test to see if this is really a libtool program. if func_ltwrapper_script_p "$file"; then func_source "$file" # Transform arg to wrapped name. file="$progdir/$program" elif func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" func_source "$func_ltwrapper_scriptname_result" # Transform arg to wrapped name. file="$progdir/$program" fi ;; esac # Quote arguments (to preserve shell metacharacters). func_quote_for_eval "$file" args="$args $func_quote_for_eval_result" done if test "X$opt_dry_run" = Xfalse; then if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" fi # Restore saved environment variables for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${save_$lt_var+set}\" = set; then $lt_var=\$save_$lt_var; export $lt_var else $lt_unset $lt_var fi" done # Now prepare to actually exec the command. exec_cmd="\$cmd$args" else # Display what would be done. if test -n "$shlibpath_var"; then eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" $ECHO "export $shlibpath_var" fi $ECHO "$cmd$args" exit $EXIT_SUCCESS fi } test "$mode" = execute && func_mode_execute ${1+"$@"} # func_mode_finish arg... func_mode_finish () { $opt_debug libdirs="$nonopt" admincmds= if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for dir do libdirs="$libdirs $dir" done for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. func_execute_cmds "$finish_cmds" 'admincmds="$admincmds '"$cmd"'"' fi if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" $opt_dry_run || eval "$cmds" || admincmds="$admincmds $cmds" fi done fi # Exit here if they wanted silent mode. $opt_silent && exit $EXIT_SUCCESS $ECHO "X----------------------------------------------------------------------" | $Xsed $ECHO "Libraries have been installed in:" for libdir in $libdirs; do $ECHO " $libdir" done $ECHO $ECHO "If you ever happen to want to link against installed libraries" $ECHO "in a given directory, LIBDIR, you must either use libtool, and" $ECHO "specify the full pathname of the library, or use the \`-LLIBDIR'" $ECHO "flag during linking and do at least one of the following:" if test -n "$shlibpath_var"; then $ECHO " - add LIBDIR to the \`$shlibpath_var' environment variable" $ECHO " during execution" fi if test -n "$runpath_var"; then $ECHO " - add LIBDIR to the \`$runpath_var' environment variable" $ECHO " during linking" fi if test -n "$hardcode_libdir_flag_spec"; then libdir=LIBDIR eval flag=\"$hardcode_libdir_flag_spec\" $ECHO " - use the \`$flag' linker flag" fi if test -n "$admincmds"; then $ECHO " - have your system administrator run these commands:$admincmds" fi if test -f /etc/ld.so.conf; then $ECHO " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" fi $ECHO $ECHO "See any operating system documentation about shared libraries for" case $host in solaris2.[6789]|solaris2.1[0-9]) $ECHO "more information, such as the ld(1), crle(1) and ld.so(8) manual" $ECHO "pages." ;; *) $ECHO "more information, such as the ld(1) and ld.so(8) manual pages." ;; esac $ECHO "X----------------------------------------------------------------------" | $Xsed exit $EXIT_SUCCESS } test "$mode" = finish && func_mode_finish ${1+"$@"} # func_mode_install arg... func_mode_install () { $opt_debug # There may be an optional sh(1) argument at the beginning of # install_prog (especially on Windows NT). if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || # Allow the use of GNU shtool's install command. $ECHO "X$nonopt" | $GREP shtool >/dev/null; then # Aesthetically quote it. func_quote_for_eval "$nonopt" install_prog="$func_quote_for_eval_result " arg=$1 shift else install_prog= arg=$nonopt fi # The real first argument should be the name of the installation program. # Aesthetically quote it. func_quote_for_eval "$arg" install_prog="$install_prog$func_quote_for_eval_result" # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=no stripme= for arg do if test -n "$dest"; then files="$files $dest" dest=$arg continue fi case $arg in -d) isdir=yes ;; -f) case " $install_prog " in *[\\\ /]cp\ *) ;; *) prev=$arg ;; esac ;; -g | -m | -o) prev=$arg ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then prev= else dest=$arg continue fi ;; esac # Aesthetically quote the argument. func_quote_for_eval "$arg" install_prog="$install_prog $func_quote_for_eval_result" done test -z "$install_prog" && \ func_fatal_help "you must specify an install program" test -n "$prev" && \ func_fatal_help "the \`$prev' option requires an argument" if test -z "$files"; then if test -z "$dest"; then func_fatal_help "no file or destination specified" else func_fatal_help "you must specify a destination" fi fi # Strip any trailing slash from the destination. func_stripname '' '/' "$dest" dest=$func_stripname_result # Check to see that the destination is a directory. test -d "$dest" && isdir=yes if test "$isdir" = yes; then destdir="$dest" destname= else func_dirname_and_basename "$dest" "" "." destdir="$func_dirname_result" destname="$func_basename_result" # Not a directory, so check to see that there is only one file specified. set dummy $files; shift test "$#" -gt 1 && \ func_fatal_help "\`$dest' is not a directory" fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) for file in $files; do case $file in *.lo) ;; *) func_fatal_help "\`$destdir' must be an absolute directory name" ;; esac done ;; esac # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" staticlibs= future_libdirs= current_libdirs= for file in $files; do # Do each installation. case $file in *.$libext) # Do the static libraries later. staticlibs="$staticlibs $file" ;; *.la) # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$file' is not a valid libtool archive" library_names= old_library= relink_command= func_source "$file" # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; *) current_libdirs="$current_libdirs $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) future_libdirs="$future_libdirs $libdir" ;; esac fi func_dirname "$file" "/" "" dir="$func_dirname_result" dir="$dir$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that # are installed to the same prefix. # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. test "$inst_prefix_dir" = "$destdir" && \ func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"` fi func_warning "relinking \`$file'" func_show_eval "$relink_command" \ 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' fi # See the names of the shared library. set dummy $library_names; shift if test -n "$1"; then realname="$1" shift srcname="$realname" test -n "$relink_command" && srcname="$realname"T # Install the shared library and build the symlinks. func_show_eval "$install_prog $dir/$srcname $destdir/$realname" \ 'exit $?' tstripme="$stripme" case $host_os in cygwin* | mingw* | pw32* | cegcc*) case $realname in *.dll.a) tstripme="" ;; esac ;; esac if test -n "$tstripme" && test -n "$striplib"; then func_show_eval "$striplib $destdir/$realname" 'exit $?' fi if test "$#" -gt 0; then # Delete the old symlinks, and create new ones. # Try `ln -sf' first, because the `ln' binary might depend on # the symlink we replace! Solaris /bin/ln does not understand -f, # so we also need to try rm && ln -s. for linkname do test "$linkname" != "$realname" \ && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" done fi # Do each command in the postinstall commands. lib="$destdir/$realname" func_execute_cmds "$postinstall_cmds" 'exit $?' fi # Install the pseudo-library for information purposes. func_basename "$file" name="$func_basename_result" instname="$dir/$name"i func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' # Maybe install the static library, too. test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" ;; *.lo) # Install (i.e. copy) a libtool object. # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # Deduce the name of the destination old-style object file. case $destfile in *.lo) func_lo2o "$destfile" staticdest=$func_lo2o_result ;; *.$objext) staticdest="$destfile" destfile= ;; *) func_fatal_help "cannot copy a libtool object to \`$destfile'" ;; esac # Install the libtool object if requested. test -n "$destfile" && \ func_show_eval "$install_prog $file $destfile" 'exit $?' # Install the old object if enabled. if test "$build_old_libs" = yes; then # Deduce the name of the old-style object file. func_lo2o "$file" staticobj=$func_lo2o_result func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' fi exit $EXIT_SUCCESS ;; *) # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # If the file is missing, and there is a .exe on the end, strip it # because it is most likely a libtool script we actually want to # install stripped_ext="" case $file in *.exe) if test ! -f "$file"; then func_stripname '' '.exe' "$file" file=$func_stripname_result stripped_ext=".exe" fi ;; esac # Do a test to see if this is really a libtool program. case $host in *cygwin* | *mingw*) if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" wrapper=$func_ltwrapper_scriptname_result else func_stripname '' '.exe' "$file" wrapper=$func_stripname_result fi ;; *) wrapper=$file ;; esac if func_ltwrapper_script_p "$wrapper"; then notinst_deplibs= relink_command= func_source "$wrapper" # Check the variables that should have been set. test -z "$generated_by_libtool_version" && \ func_fatal_error "invalid libtool wrapper script \`$wrapper'" finalize=yes for lib in $notinst_deplibs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then func_source "$lib" fi libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test if test -n "$libdir" && test ! -f "$libfile"; then func_warning "\`$lib' has not been installed in \`$libdir'" finalize=no fi done relink_command= func_source "$wrapper" outputname= if test "$fast_install" = no && test -n "$relink_command"; then $opt_dry_run || { if test "$finalize" = yes; then tmpdir=`func_mktempdir` func_basename "$file$stripped_ext" file="$func_basename_result" outputname="$tmpdir/$file" # Replace the output file specification. relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` $opt_silent || { func_quote_for_expand "$relink_command" eval "func_echo $func_quote_for_expand_result" } if eval "$relink_command"; then : else func_error "error: relink \`$file' with the above command before installing it" $opt_dry_run || ${RM}r "$tmpdir" continue fi file="$outputname" else func_warning "cannot relink \`$file'" fi } else # Install the binary that we compiled earlier. file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` fi fi # remove .exe since cygwin /usr/bin/install will append another # one anyway case $install_prog,$host in */usr/bin/install*,*cygwin*) case $file:$destfile in *.exe:*.exe) # this is ok ;; *.exe:*) destfile=$destfile.exe ;; *:*.exe) func_stripname '' '.exe' "$destfile" destfile=$func_stripname_result ;; esac ;; esac func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' $opt_dry_run || if test -n "$outputname"; then ${RM}r "$tmpdir" fi ;; esac done for file in $staticlibs; do func_basename "$file" name="$func_basename_result" # Set up the ranlib parameters. oldlib="$destdir/$name" func_show_eval "$install_prog \$file \$oldlib" 'exit $?' if test -n "$stripme" && test -n "$old_striplib"; then func_show_eval "$old_striplib $oldlib" 'exit $?' fi # Do each command in the postinstall commands. func_execute_cmds "$old_postinstall_cmds" 'exit $?' done test -n "$future_libdirs" && \ func_warning "remember to run \`$progname --finish$future_libdirs'" if test -n "$current_libdirs"; then # Maybe just do a dry run. $opt_dry_run && current_libdirs=" -n$current_libdirs" exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' else exit $EXIT_SUCCESS fi } test "$mode" = install && func_mode_install ${1+"$@"} # func_generate_dlsyms outputname originator pic_p # Extract symbols from dlprefiles and create ${outputname}S.o with # a dlpreopen symbol table. func_generate_dlsyms () { $opt_debug my_outputname="$1" my_originator="$2" my_pic_p="${3-no}" my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'` my_dlsyms= if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then if test -n "$NM" && test -n "$global_symbol_pipe"; then my_dlsyms="${my_outputname}S.c" else func_error "not configured to extract global symbols from dlpreopened files" fi fi if test -n "$my_dlsyms"; then case $my_dlsyms in "") ;; *.c) # Discover the nlist of each of the dlfiles. nlist="$output_objdir/${my_outputname}.nm" func_show_eval "$RM $nlist ${nlist}S ${nlist}T" # Parse the name list into a source file. func_verbose "creating $output_objdir/$my_dlsyms" $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ /* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */ /* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */ #ifdef __cplusplus extern \"C\" { #endif /* External symbol declarations for the compiler. */\ " if test "$dlself" = yes; then func_verbose "generating symbol list for \`$output'" $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. progfiles=`$ECHO "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` for progfile in $progfiles; do func_verbose "extracting global C symbols from \`$progfile'" $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then $opt_dry_run || { eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi if test -n "$export_symbols_regex"; then $opt_dry_run || { eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi # Prepare the list of exported symbols if test -z "$export_symbols"; then export_symbols="$output_objdir/$outputname.exp" $opt_dry_run || { $RM $export_symbols eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ;; esac } else $opt_dry_run || { eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' case $host in *cygwin | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; esac } fi fi for dlprefile in $dlprefiles; do func_verbose "extracting global C symbols from \`$dlprefile'" func_basename "$dlprefile" name="$func_basename_result" $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'" } done $opt_dry_run || { # Make sure we have at least an empty file. test -f "$nlist" || : > "$nlist" if test -n "$exclude_expsyms"; then $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T $MV "$nlist"T "$nlist" fi # Try sorting and uniquifying the output. if $GREP -v "^: " < "$nlist" | if sort -k 3 /dev/null 2>&1; then sort -k 3 else sort +2 fi | uniq > "$nlist"S; then : else $GREP -v "^: " < "$nlist" > "$nlist"S fi if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' else $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms" fi $ECHO >> "$output_objdir/$my_dlsyms" "\ /* The mapping between symbol names and symbols. */ typedef struct { const char *name; void *address; } lt_dlsymlist; " case $host in *cygwin* | *mingw* | *cegcc* ) $ECHO >> "$output_objdir/$my_dlsyms" "\ /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */" lt_dlsym_const= ;; *osf5*) echo >> "$output_objdir/$my_dlsyms" "\ /* This system does not cope well with relocations in const data */" lt_dlsym_const= ;; *) lt_dlsym_const=const ;; esac $ECHO >> "$output_objdir/$my_dlsyms" "\ extern $lt_dlsym_const lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[]; $lt_dlsym_const lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[] = {\ { \"$my_originator\", (void *) 0 }," case $need_lib_prefix in no) eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; *) eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; esac $ECHO >> "$output_objdir/$my_dlsyms" "\ {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt_${my_prefix}_LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif\ " } # !$opt_dry_run pic_flag_for_symtable= case "$compile_command " in *" -static "*) ;; *) case $host in # compiling the symbol table file with pic_flag works around # a FreeBSD bug that causes programs to crash when -lm is # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; *-*-hpux*) pic_flag_for_symtable=" $pic_flag" ;; *) if test "X$my_pic_p" != Xno; then pic_flag_for_symtable=" $pic_flag" fi ;; esac ;; esac symtab_cflags= for arg in $LTCFLAGS; do case $arg in -pie | -fpie | -fPIE) ;; *) symtab_cflags="$symtab_cflags $arg" ;; esac done # Now compile the dynamic symbol file. func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' # Clean up the generated files. func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"' # Transform the symbol file into the correct name. symfileobj="$output_objdir/${my_outputname}S.$objext" case $host in *cygwin* | *mingw* | *cegcc* ) if test -f "$output_objdir/$my_outputname.def"; then compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` else compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` fi ;; *) compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` ;; esac ;; *) func_fatal_error "unknown suffix for \`$my_dlsyms'" ;; esac else # We keep going just in case the user didn't refer to # lt_preloaded_symbols. The linker will fail if global_symbol_pipe # really was required. # Nullify the symbol file. compile_command=`$ECHO "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` fi } # func_win32_libid arg # return the library type of file 'arg' # # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. func_win32_libid () { $opt_debug win32_libid_type="unknown" win32_fileres=`file -L $1 2>/dev/null` case $win32_fileres in *ar\ archive\ import\ library*) # definitely import win32_libid_type="x86 archive import" ;; *ar\ archive*) # could be an import, or static if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then win32_nmres=`eval $NM -f posix -A $1 | $SED -n -e ' 1,100{ / I /{ s,.*,import, p q } }'` case $win32_nmres in import*) win32_libid_type="x86 archive import";; *) win32_libid_type="x86 archive static";; esac fi ;; *DLL*) win32_libid_type="x86 DLL" ;; *executable*) # but shell scripts are "executable" too... case $win32_fileres in *MS\ Windows\ PE\ Intel*) win32_libid_type="x86 DLL" ;; esac ;; esac $ECHO "$win32_libid_type" } # func_extract_an_archive dir oldlib func_extract_an_archive () { $opt_debug f_ex_an_ar_dir="$1"; shift f_ex_an_ar_oldlib="$1" func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" 'exit $?' if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then : else func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" fi } # func_extract_archives gentop oldlib ... func_extract_archives () { $opt_debug my_gentop="$1"; shift my_oldlibs=${1+"$@"} my_oldobjs="" my_xlib="" my_xabs="" my_xdir="" for my_xlib in $my_oldlibs; do # Extract the objects. case $my_xlib in [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; *) my_xabs=`pwd`"/$my_xlib" ;; esac func_basename "$my_xlib" my_xlib="$func_basename_result" my_xlib_u=$my_xlib while :; do case " $extracted_archives " in *" $my_xlib_u "*) func_arith $extracted_serial + 1 extracted_serial=$func_arith_result my_xlib_u=lt$extracted_serial-$my_xlib ;; *) break ;; esac done extracted_archives="$extracted_archives $my_xlib_u" my_xdir="$my_gentop/$my_xlib_u" func_mkdir_p "$my_xdir" case $host in *-darwin*) func_verbose "Extracting $my_xabs" # Do not bother doing anything if just a dry run $opt_dry_run || { darwin_orig_dir=`pwd` cd $my_xdir || exit $? darwin_archive=$my_xabs darwin_curdir=`pwd` darwin_base_archive=`basename "$darwin_archive"` darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` if test -n "$darwin_arches"; then darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` darwin_arch= func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" for darwin_arch in $darwin_arches ; do func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}" $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" func_extract_an_archive "`pwd`" "${darwin_base_archive}" cd "$darwin_curdir" $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" done # $darwin_arches ## Okay now we've a bunch of thin objects, gotta fatten them up :) darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` darwin_file= darwin_files= for darwin_file in $darwin_filelist; do darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` $LIPO -create -output "$darwin_file" $darwin_files done # $darwin_filelist $RM -rf unfat-$$ cd "$darwin_orig_dir" else cd $darwin_orig_dir func_extract_an_archive "$my_xdir" "$my_xabs" fi # $darwin_arches } # !$opt_dry_run ;; *) func_extract_an_archive "$my_xdir" "$my_xabs" ;; esac my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` done func_extract_archives_result="$my_oldobjs" } # func_emit_wrapper_part1 [arg=no] # # Emit the first part of a libtool wrapper script on stdout. # For more information, see the description associated with # func_emit_wrapper(), below. func_emit_wrapper_part1 () { func_emit_wrapper_part1_arg1=no if test -n "$1" ; then func_emit_wrapper_part1_arg1=$1 fi $ECHO "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # The $output program cannot be directly executed until all the libtool # libraries that it depends on are installed. # # This wrapper script should never be moved out of the build directory. # If it is, it will not operate correctly. # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed='${SED} -e 1s/^X//' sed_quote_subst='$sed_quote_subst' # Be Bourne compatible if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH relink_command=\"$relink_command\" # This environment variable determines our operation mode. if test \"\$libtool_install_magic\" = \"$magic\"; then # install mode needs the following variables: generated_by_libtool_version='$macro_version' notinst_deplibs='$notinst_deplibs' else # When we are sourced in execute mode, \$file and \$ECHO are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then ECHO=\"$qecho\" file=\"\$0\" # Make sure echo works. if test \"X\$1\" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test \"X\`{ \$ECHO '\t'; } 2>/dev/null\`\" = 'X\t'; then # Yippee, \$ECHO works! : else # Restart under the correct shell, and then maybe \$ECHO will work. exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} fi fi\ " $ECHO "\ # Find the directory that this script lives in. thisdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` while test -n \"\$file\"; do destdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then case \"\$destdir\" in [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; *) thisdir=\"\$thisdir/\$destdir\" ;; esac fi file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` done " } # end: func_emit_wrapper_part1 # func_emit_wrapper_part2 [arg=no] # # Emit the second part of a libtool wrapper script on stdout. # For more information, see the description associated with # func_emit_wrapper(), below. func_emit_wrapper_part2 () { func_emit_wrapper_part2_arg1=no if test -n "$1" ; then func_emit_wrapper_part2_arg1=$1 fi $ECHO "\ # Usually 'no', except on cygwin/mingw when embedded into # the cwrapper. WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_part2_arg1 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then # special case for '.' if test \"\$thisdir\" = \".\"; then thisdir=\`pwd\` fi # remove .libs from thisdir case \"\$thisdir\" in *[\\\\/]$objdir ) thisdir=\`\$ECHO \"X\$thisdir\" | \$Xsed -e 's%[\\\\/][^\\\\/]*$%%'\` ;; $objdir ) thisdir=. ;; esac fi # Try to get the absolute directory name. absdir=\`cd \"\$thisdir\" && pwd\` test -n \"\$absdir\" && thisdir=\"\$absdir\" " if test "$fast_install" = yes; then $ECHO "\ program=lt-'$outputname'$exeext progdir=\"\$thisdir/$objdir\" if test ! -f \"\$progdir/\$program\" || { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ test \"X\$file\" != \"X\$progdir/\$program\"; }; then file=\"\$\$-\$program\" if test ! -d \"\$progdir\"; then $MKDIR \"\$progdir\" else $RM \"\$progdir/\$file\" fi" $ECHO "\ # relink executable if necessary if test -n \"\$relink_command\"; then if relink_command_output=\`eval \$relink_command 2>&1\`; then : else $ECHO \"\$relink_command_output\" >&2 $RM \"\$progdir/\$file\" exit 1 fi fi $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || { $RM \"\$progdir/\$program\"; $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } $RM \"\$progdir/\$file\" fi" else $ECHO "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi $ECHO "\ if test -f \"\$progdir/\$program\"; then" # Export our shlibpath_var if we have one. if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $ECHO "\ # Add our own library path to $shlibpath_var $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" # Some systems cannot cope with colon-terminated $shlibpath_var # The second colon is a workaround for a bug in BeOS R4 sed $shlibpath_var=\`\$ECHO \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` export $shlibpath_var " fi # fixup the dll searchpath if we need to. if test -n "$dllsearchpath"; then $ECHO "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi $ECHO "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. " case $host in # Backslashes separate directories on plain windows *-*-mingw | *-*-os2* | *-cegcc*) $ECHO "\ exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " ;; *) $ECHO "\ exec \"\$progdir/\$program\" \${1+\"\$@\"} " ;; esac $ECHO "\ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 exit 1 fi else # The program doesn't exist. \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 $ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 exit 1 fi fi\ " } # end: func_emit_wrapper_part2 # func_emit_wrapper [arg=no] # # Emit a libtool wrapper script on stdout. # Don't directly open a file because we may want to # incorporate the script contents within a cygwin/mingw # wrapper executable. Must ONLY be called from within # func_mode_link because it depends on a number of variables # set therein. # # ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR # variable will take. If 'yes', then the emitted script # will assume that the directory in which it is stored is # the $objdir directory. This is a cygwin/mingw-specific # behavior. func_emit_wrapper () { func_emit_wrapper_arg1=no if test -n "$1" ; then func_emit_wrapper_arg1=$1 fi # split this up so that func_emit_cwrapperexe_src # can call each part independently. func_emit_wrapper_part1 "${func_emit_wrapper_arg1}" func_emit_wrapper_part2 "${func_emit_wrapper_arg1}" } # func_to_host_path arg # # Convert paths to host format when used with build tools. # Intended for use with "native" mingw (where libtool itself # is running under the msys shell), or in the following cross- # build environments: # $build $host # mingw (msys) mingw [e.g. native] # cygwin mingw # *nix + wine mingw # where wine is equipped with the `winepath' executable. # In the native mingw case, the (msys) shell automatically # converts paths for any non-msys applications it launches, # but that facility isn't available from inside the cwrapper. # Similar accommodations are necessary for $host mingw and # $build cygwin. Calling this function does no harm for other # $host/$build combinations not listed above. # # ARG is the path (on $build) that should be converted to # the proper representation for $host. The result is stored # in $func_to_host_path_result. func_to_host_path () { func_to_host_path_result="$1" if test -n "$1" ; then case $host in *mingw* ) lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' case $build in *mingw* ) # actually, msys # awkward: cmd appends spaces to result lt_sed_strip_trailing_spaces="s/[ ]*\$//" func_to_host_path_tmp1=`( cmd //c echo "$1" |\ $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ $SED -e "$lt_sed_naive_backslashify"` ;; *cygwin* ) func_to_host_path_tmp1=`cygpath -w "$1"` func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ $SED -e "$lt_sed_naive_backslashify"` ;; * ) # Unfortunately, winepath does not exit with a non-zero # error code, so we are forced to check the contents of # stdout. On the other hand, if the command is not # found, the shell will set an exit code of 127 and print # *an error message* to stdout. So we must check for both # error code of zero AND non-empty stdout, which explains # the odd construction: func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null` if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ $SED -e "$lt_sed_naive_backslashify"` else # Allow warning below. func_to_host_path_result="" fi ;; esac if test -z "$func_to_host_path_result" ; then func_error "Could not determine host path corresponding to" func_error " '$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback: func_to_host_path_result="$1" fi ;; esac fi } # end: func_to_host_path # func_to_host_pathlist arg # # Convert pathlists to host format when used with build tools. # See func_to_host_path(), above. This function supports the # following $build/$host combinations (but does no harm for # combinations not listed here): # $build $host # mingw (msys) mingw [e.g. native] # cygwin mingw # *nix + wine mingw # # Path separators are also converted from $build format to # $host format. If ARG begins or ends with a path separator # character, it is preserved (but converted to $host format) # on output. # # ARG is a pathlist (on $build) that should be converted to # the proper representation on $host. The result is stored # in $func_to_host_pathlist_result. func_to_host_pathlist () { func_to_host_pathlist_result="$1" if test -n "$1" ; then case $host in *mingw* ) lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' # Remove leading and trailing path separator characters from # ARG. msys behavior is inconsistent here, cygpath turns them # into '.;' and ';.', and winepath ignores them completely. func_to_host_pathlist_tmp2="$1" # Once set for this call, this variable should not be # reassigned. It is used in tha fallback case. func_to_host_pathlist_tmp1=`echo "$func_to_host_pathlist_tmp2" |\ $SED -e 's|^:*||' -e 's|:*$||'` case $build in *mingw* ) # Actually, msys. # Awkward: cmd appends spaces to result. lt_sed_strip_trailing_spaces="s/[ ]*\$//" func_to_host_pathlist_tmp2=`( cmd //c echo "$func_to_host_pathlist_tmp1" |\ $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ $SED -e "$lt_sed_naive_backslashify"` ;; *cygwin* ) func_to_host_pathlist_tmp2=`cygpath -w -p "$func_to_host_pathlist_tmp1"` func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ $SED -e "$lt_sed_naive_backslashify"` ;; * ) # unfortunately, winepath doesn't convert pathlists func_to_host_pathlist_result="" func_to_host_pathlist_oldIFS=$IFS IFS=: for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do IFS=$func_to_host_pathlist_oldIFS if test -n "$func_to_host_pathlist_f" ; then func_to_host_path "$func_to_host_pathlist_f" if test -n "$func_to_host_path_result" ; then if test -z "$func_to_host_pathlist_result" ; then func_to_host_pathlist_result="$func_to_host_path_result" else func_to_host_pathlist_result="$func_to_host_pathlist_result;$func_to_host_path_result" fi fi fi IFS=: done IFS=$func_to_host_pathlist_oldIFS ;; esac if test -z "$func_to_host_pathlist_result" ; then func_error "Could not determine the host path(s) corresponding to" func_error " '$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback. This may break if $1 contains DOS-style drive # specifications. The fix is not to complicate the expression # below, but for the user to provide a working wine installation # with winepath so that path translation in the cross-to-mingw # case works properly. lt_replace_pathsep_nix_to_dos="s|:|;|g" func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\ $SED -e "$lt_replace_pathsep_nix_to_dos"` fi # Now, add the leading and trailing path separators back case "$1" in :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result" ;; esac case "$1" in *: ) func_to_host_pathlist_result="$func_to_host_pathlist_result;" ;; esac ;; esac fi } # end: func_to_host_pathlist # func_emit_cwrapperexe_src # emit the source code for a wrapper executable on stdout # Must ONLY be called from within func_mode_link because # it depends on a number of variable set therein. func_emit_cwrapperexe_src () { cat < #include #ifdef _MSC_VER # include # include # include # define setmode _setmode #else # include # include # ifdef __CYGWIN__ # include # define HAVE_SETENV # ifdef __STRICT_ANSI__ char *realpath (const char *, char *); int putenv (char *); int setenv (const char *, const char *, int); # endif # endif #endif #include #include #include #include #include #include #include #include #if defined(PATH_MAX) # define LT_PATHMAX PATH_MAX #elif defined(MAXPATHLEN) # define LT_PATHMAX MAXPATHLEN #else # define LT_PATHMAX 1024 #endif #ifndef S_IXOTH # define S_IXOTH 0 #endif #ifndef S_IXGRP # define S_IXGRP 0 #endif #ifdef _MSC_VER # define S_IXUSR _S_IEXEC # define stat _stat # ifndef _INTPTR_T_DEFINED # define intptr_t int # endif #endif #ifndef DIR_SEPARATOR # define DIR_SEPARATOR '/' # define PATH_SEPARATOR ':' #endif #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ defined (__OS2__) # define HAVE_DOS_BASED_FILE_SYSTEM # define FOPEN_WB "wb" # ifndef DIR_SEPARATOR_2 # define DIR_SEPARATOR_2 '\\' # endif # ifndef PATH_SEPARATOR_2 # define PATH_SEPARATOR_2 ';' # endif #endif #ifndef DIR_SEPARATOR_2 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) #else /* DIR_SEPARATOR_2 */ # define IS_DIR_SEPARATOR(ch) \ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) #endif /* DIR_SEPARATOR_2 */ #ifndef PATH_SEPARATOR_2 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) #else /* PATH_SEPARATOR_2 */ # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) #endif /* PATH_SEPARATOR_2 */ #ifdef __CYGWIN__ # define FOPEN_WB "wb" #endif #ifndef FOPEN_WB # define FOPEN_WB "w" #endif #ifndef _O_BINARY # define _O_BINARY 0 #endif #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) #define XFREE(stale) do { \ if (stale) { free ((void *) stale); stale = 0; } \ } while (0) #undef LTWRAPPER_DEBUGPRINTF #if defined DEBUGWRAPPER # define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args static void ltwrapper_debugprintf (const char *fmt, ...) { va_list args; va_start (args, fmt); (void) vfprintf (stderr, fmt, args); va_end (args); } #else # define LTWRAPPER_DEBUGPRINTF(args) #endif const char *program_name = NULL; void *xmalloc (size_t num); char *xstrdup (const char *string); const char *base_name (const char *name); char *find_executable (const char *wrapper); char *chase_symlinks (const char *pathspec); int make_executable (const char *path); int check_executable (const char *path); char *strendzap (char *str, const char *pat); void lt_fatal (const char *message, ...); void lt_setenv (const char *name, const char *value); char *lt_extend_str (const char *orig_value, const char *add, int to_end); void lt_opt_process_env_set (const char *arg); void lt_opt_process_env_prepend (const char *arg); void lt_opt_process_env_append (const char *arg); int lt_split_name_value (const char *arg, char** name, char** value); void lt_update_exe_path (const char *name, const char *value); void lt_update_lib_path (const char *name, const char *value); static const char *script_text_part1 = EOF func_emit_wrapper_part1 yes | $SED -e 's/\([\\"]\)/\\\1/g' \ -e 's/^/ "/' -e 's/$/\\n"/' echo ";" cat <"))); for (i = 0; i < newargc; i++) { LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d] : %s\n", i, (newargz[i] ? newargz[i] : ""))); } EOF case $host_os in mingw*) cat <<"EOF" /* execv doesn't actually work on mingw as expected on unix */ rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz); if (rval == -1) { /* failed to start process */ LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno)); return 127; } return rval; EOF ;; *) cat <<"EOF" execv (lt_argv_zero, newargz); return rval; /* =127, but avoids unused variable warning */ EOF ;; esac cat <<"EOF" } void * xmalloc (size_t num) { void *p = (void *) malloc (num); if (!p) lt_fatal ("Memory exhausted"); return p; } char * xstrdup (const char *string) { return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL; } const char * base_name (const char *name) { const char *base; #if defined (HAVE_DOS_BASED_FILE_SYSTEM) /* Skip over the disk name in MSDOS pathnames. */ if (isalpha ((unsigned char) name[0]) && name[1] == ':') name += 2; #endif for (base = name; *name; name++) if (IS_DIR_SEPARATOR (*name)) base = name + 1; return base; } int check_executable (const char *path) { struct stat st; LTWRAPPER_DEBUGPRINTF (("(check_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!")); if ((!path) || (!*path)) return 0; if ((stat (path, &st) >= 0) && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) return 1; else return 0; } int make_executable (const char *path) { int rval = 0; struct stat st; LTWRAPPER_DEBUGPRINTF (("(make_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!")); if ((!path) || (!*path)) return 0; if (stat (path, &st) >= 0) { rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); } return rval; } /* Searches for the full path of the wrapper. Returns newly allocated full path name if found, NULL otherwise Does not chase symlinks, even on platforms that support them. */ char * find_executable (const char *wrapper) { int has_slash = 0; const char *p; const char *p_next; /* static buffer for getcwd */ char tmp[LT_PATHMAX + 1]; int tmp_len; char *concat_name; LTWRAPPER_DEBUGPRINTF (("(find_executable) : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!")); if ((wrapper == NULL) || (*wrapper == '\0')) return NULL; /* Absolute path? */ #if defined (HAVE_DOS_BASED_FILE_SYSTEM) if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } else { #endif if (IS_DIR_SEPARATOR (wrapper[0])) { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } #if defined (HAVE_DOS_BASED_FILE_SYSTEM) } #endif for (p = wrapper; *p; p++) if (*p == '/') { has_slash = 1; break; } if (!has_slash) { /* no slashes; search PATH */ const char *path = getenv ("PATH"); if (path != NULL) { for (p = path; *p; p = p_next) { const char *q; size_t p_len; for (q = p; *q; q++) if (IS_PATH_SEPARATOR (*q)) break; p_len = q - p; p_next = (*q == '\0' ? q : q + 1); if (p_len == 0) { /* empty path: current directory */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal ("getcwd failed"); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); } else { concat_name = XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, p, p_len); concat_name[p_len] = '/'; strcpy (concat_name + p_len + 1, wrapper); } if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } } /* not found in PATH; assume curdir */ } /* Relative path | not found in path: prepend cwd */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal ("getcwd failed"); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); return NULL; } char * chase_symlinks (const char *pathspec) { #ifndef S_ISLNK return xstrdup (pathspec); #else char buf[LT_PATHMAX]; struct stat s; char *tmp_pathspec = xstrdup (pathspec); char *p; int has_symlinks = 0; while (strlen (tmp_pathspec) && !has_symlinks) { LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n", tmp_pathspec)); if (lstat (tmp_pathspec, &s) == 0) { if (S_ISLNK (s.st_mode) != 0) { has_symlinks = 1; break; } /* search backwards for last DIR_SEPARATOR */ p = tmp_pathspec + strlen (tmp_pathspec) - 1; while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) p--; if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) { /* no more DIR_SEPARATORS left */ break; } *p = '\0'; } else { char *errstr = strerror (errno); lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr); } } XFREE (tmp_pathspec); if (!has_symlinks) { return xstrdup (pathspec); } tmp_pathspec = realpath (pathspec, buf); if (tmp_pathspec == 0) { lt_fatal ("Could not follow symlinks for %s", pathspec); } return xstrdup (tmp_pathspec); #endif } char * strendzap (char *str, const char *pat) { size_t len, patlen; assert (str != NULL); assert (pat != NULL); len = strlen (str); patlen = strlen (pat); if (patlen <= len) { str += len - patlen; if (strcmp (str, pat) == 0) *str = '\0'; } return str; } static void lt_error_core (int exit_status, const char *mode, const char *message, va_list ap) { fprintf (stderr, "%s: %s: ", program_name, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); if (exit_status >= 0) exit (exit_status); } void lt_fatal (const char *message, ...) { va_list ap; va_start (ap, message); lt_error_core (EXIT_FAILURE, "FATAL", message, ap); va_end (ap); } void lt_setenv (const char *name, const char *value) { LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n", (name ? name : ""), (value ? value : ""))); { #ifdef HAVE_SETENV /* always make a copy, for consistency with !HAVE_SETENV */ char *str = xstrdup (value); setenv (name, str, 1); #else int len = strlen (name) + 1 + strlen (value) + 1; char *str = XMALLOC (char, len); sprintf (str, "%s=%s", name, value); if (putenv (str) != EXIT_SUCCESS) { XFREE (str); } #endif } } char * lt_extend_str (const char *orig_value, const char *add, int to_end) { char *new_value; if (orig_value && *orig_value) { int orig_value_len = strlen (orig_value); int add_len = strlen (add); new_value = XMALLOC (char, add_len + orig_value_len + 1); if (to_end) { strcpy (new_value, orig_value); strcpy (new_value + orig_value_len, add); } else { strcpy (new_value, add); strcpy (new_value + add_len, orig_value); } } else { new_value = xstrdup (add); } return new_value; } int lt_split_name_value (const char *arg, char** name, char** value) { const char *p; int len; if (!arg || !*arg) return 1; p = strchr (arg, (int)'='); if (!p) return 1; *value = xstrdup (++p); len = strlen (arg) - strlen (*value); *name = XMALLOC (char, len); strncpy (*name, arg, len-1); (*name)[len - 1] = '\0'; return 0; } void lt_opt_process_env_set (const char *arg) { char *name = NULL; char *value = NULL; if (lt_split_name_value (arg, &name, &value) != 0) { XFREE (name); XFREE (value); lt_fatal ("bad argument for %s: '%s'", env_set_opt, arg); } lt_setenv (name, value); XFREE (name); XFREE (value); } void lt_opt_process_env_prepend (const char *arg) { char *name = NULL; char *value = NULL; char *new_value = NULL; if (lt_split_name_value (arg, &name, &value) != 0) { XFREE (name); XFREE (value); lt_fatal ("bad argument for %s: '%s'", env_prepend_opt, arg); } new_value = lt_extend_str (getenv (name), value, 0); lt_setenv (name, new_value); XFREE (new_value); XFREE (name); XFREE (value); } void lt_opt_process_env_append (const char *arg) { char *name = NULL; char *value = NULL; char *new_value = NULL; if (lt_split_name_value (arg, &name, &value) != 0) { XFREE (name); XFREE (value); lt_fatal ("bad argument for %s: '%s'", env_append_opt, arg); } new_value = lt_extend_str (getenv (name), value, 1); lt_setenv (name, new_value); XFREE (new_value); XFREE (name); XFREE (value); } void lt_update_exe_path (const char *name, const char *value) { LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n", (name ? name : ""), (value ? value : ""))); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); /* some systems can't cope with a ':'-terminated path #' */ int len = strlen (new_value); while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1])) { new_value[len-1] = '\0'; } lt_setenv (name, new_value); XFREE (new_value); } } void lt_update_lib_path (const char *name, const char *value) { LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n", (name ? name : ""), (value ? value : ""))); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); lt_setenv (name, new_value); XFREE (new_value); } } EOF } # end: func_emit_cwrapperexe_src # func_mode_link arg... func_mode_link () { $opt_debug case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) # It is impossible to link a dll without this setting, and # we shouldn't force the makefile maintainer to figure out # which system we are compiling for in order to pass an extra # flag for every libtool invocation. # allow_undefined=no # FIXME: Unfortunately, there are problems with the above when trying # to make a dll which has undefined symbols, in which case not # even a static library is built. For now, we need to specify # -no-undefined on the libtool link line when we can be certain # that all symbols are satisfied, otherwise we get a static library. allow_undefined=yes ;; *) allow_undefined=yes ;; esac libtool_args=$nonopt base_compile="$nonopt $@" compile_command=$nonopt finalize_command=$nonopt compile_rpath= finalize_rpath= compile_shlibpath= finalize_shlibpath= convenience= old_convenience= deplibs= old_deplibs= compiler_flags= linker_flags= dllsearchpath= lib_search_path=`pwd` inst_prefix_dir= new_inherited_linker_flags= avoid_version=no dlfiles= dlprefiles= dlself=no export_dynamic=no export_symbols= export_symbols_regex= generated= libobjs= ltlibs= module=no no_install=no objs= non_pic_objects= precious_files_regex= prefer_static_libs=no preload=no prev= prevarg= release= rpath= xrpath= perm_rpath= temp_rpath= thread_safe=no vinfo= vinfo_number=no weak_libs= single_module="${wl}-single_module" func_infer_tag $base_compile # We need to know -static, to get the right output filenames. for arg do case $arg in -shared) test "$build_libtool_libs" != yes && \ func_fatal_configuration "can not build a shared library" build_old_libs=no break ;; -all-static | -static | -static-libtool-libs) case $arg in -all-static) if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then func_warning "complete static linking is impossible in this configuration" fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; -static) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=built ;; -static-libtool-libs) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; esac build_libtool_libs=no build_old_libs=yes break ;; esac done # See if our shared archives depend on static archives. test -n "$old_archive_from_new_cmds" && build_old_libs=yes # Go through the arguments, transforming them on the way. while test "$#" -gt 0; do arg="$1" shift func_quote_for_eval "$arg" qarg=$func_quote_for_eval_unquoted_result func_append libtool_args " $func_quote_for_eval_result" # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in output) func_append compile_command " @OUTPUT@" func_append finalize_command " @OUTPUT@" ;; esac case $prev in dlfiles|dlprefiles) if test "$preload" = no; then # Add the symbol object into the linking commands. func_append compile_command " @SYMFILE@" func_append finalize_command " @SYMFILE@" preload=yes fi case $arg in *.la | *.lo) ;; # We handle these cases below. force) if test "$dlself" = no; then dlself=needless export_dynamic=yes fi prev= continue ;; self) if test "$prev" = dlprefiles; then dlself=yes elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then dlself=yes else dlself=needless export_dynamic=yes fi prev= continue ;; *) if test "$prev" = dlfiles; then dlfiles="$dlfiles $arg" else dlprefiles="$dlprefiles $arg" fi prev= continue ;; esac ;; expsyms) export_symbols="$arg" test -f "$arg" \ || func_fatal_error "symbol file \`$arg' does not exist" prev= continue ;; expsyms_regex) export_symbols_regex="$arg" prev= continue ;; framework) case $host in *-*-darwin*) case "$deplibs " in *" $qarg.ltframework "*) ;; *) deplibs="$deplibs $qarg.ltframework" # this is fixed later ;; esac ;; esac prev= continue ;; inst_prefix) inst_prefix_dir="$arg" prev= continue ;; objectlist) if test -f "$arg"; then save_arg=$arg moreargs= for fil in `cat "$save_arg"` do # moreargs="$moreargs $fil" arg=$fil # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi done else func_fatal_error "link input file \`$arg' does not exist" fi arg=$save_arg prev= continue ;; precious_regex) precious_files_regex="$arg" prev= continue ;; release) release="-$arg" prev= continue ;; rpath | xrpath) # We need an absolute path. case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac if test "$prev" = rpath; then case "$rpath " in *" $arg "*) ;; *) rpath="$rpath $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) xrpath="$xrpath $arg" ;; esac fi prev= continue ;; shrext) shrext_cmds="$arg" prev= continue ;; weak) weak_libs="$weak_libs $arg" prev= continue ;; xcclinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xcompiler) compiler_flags="$compiler_flags $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xlinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $wl$qarg" prev= func_append compile_command " $wl$qarg" func_append finalize_command " $wl$qarg" continue ;; *) eval "$prev=\"\$arg\"" prev= continue ;; esac fi # test -n "$prev" prevarg="$arg" case $arg in -all-static) if test -n "$link_static_flag"; then # See comment for -static flag below, for more details. func_append compile_command " $link_static_flag" func_append finalize_command " $link_static_flag" fi continue ;; -allow-undefined) # FIXME: remove this flag sometime in the future. func_fatal_error "\`-allow-undefined' must not be used because it is the default" ;; -avoid-version) avoid_version=yes continue ;; -dlopen) prev=dlfiles continue ;; -dlpreopen) prev=dlprefiles continue ;; -export-dynamic) export_dynamic=yes continue ;; -export-symbols | -export-symbols-regex) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then func_fatal_error "more than one -exported-symbols argument is not allowed" fi if test "X$arg" = "X-export-symbols"; then prev=expsyms else prev=expsyms_regex fi continue ;; -framework) prev=framework continue ;; -inst-prefix-dir) prev=inst_prefix continue ;; # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* # so, if we see these flags be careful not to treat them like -L -L[A-Z][A-Z]*:*) case $with_gcc/$host in no/*-*-irix* | /*-*-irix*) func_append compile_command " $arg" func_append finalize_command " $arg" ;; esac continue ;; -L*) func_stripname '-L' '' "$arg" dir=$func_stripname_result if test -z "$dir"; then if test "$#" -gt 0; then func_fatal_error "require no space between \`-L' and \`$1'" else func_fatal_error "need path for \`-L' option" fi fi # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` test -z "$absdir" && \ func_fatal_error "cannot determine absolute directory name of \`$dir'" dir="$absdir" ;; esac case "$deplibs " in *" -L$dir "*) ;; *) deplibs="$deplibs -L$dir" lib_search_path="$lib_search_path $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; ::) dllsearchpath=$dir;; *) dllsearchpath="$dllsearchpath:$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac continue ;; -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc*) # These systems don't actually have a C or math library (as such) continue ;; *-*-os2*) # These systems don't actually have a C library (as such) test "X$arg" = "X-lc" && continue ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. test "X$arg" = "X-lc" && continue ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework deplibs="$deplibs System.ltframework" continue ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype test "X$arg" = "X-lc" && continue ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work test "X$arg" = "X-lc" && continue ;; esac elif test "X$arg" = "X-lc_r"; then case $host in *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc_r directly, use -pthread flag. continue ;; esac fi deplibs="$deplibs $arg" continue ;; -module) module=yes continue ;; # Tru64 UNIX uses -model [arg] to determine the layout of C++ # classes, name mangling, and exception handling. # Darwin uses the -arch flag to determine output architecture. -model|-arch|-isysroot) compiler_flags="$compiler_flags $arg" func_append compile_command " $arg" func_append finalize_command " $arg" prev=xcompiler continue ;; -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) compiler_flags="$compiler_flags $arg" func_append compile_command " $arg" func_append finalize_command " $arg" case "$new_inherited_linker_flags " in *" $arg "*) ;; * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;; esac continue ;; -multi_module) single_module="${wl}-multi_module" continue ;; -no-fast-install) fast_install=no continue ;; -no-install) case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) # The PATH hackery in wrapper scripts is required on Windows # and Darwin in order for the loader to find any dlls it needs. func_warning "\`-no-install' is ignored for $host" func_warning "assuming \`-no-fast-install' instead" fast_install=no ;; *) no_install=yes ;; esac continue ;; -no-undefined) allow_undefined=no continue ;; -objectlist) prev=objectlist continue ;; -o) prev=output ;; -precious-files-regex) prev=precious_regex continue ;; -release) prev=release continue ;; -rpath) prev=rpath continue ;; -R) prev=xrpath continue ;; -R*) func_stripname '-R' '' "$arg" dir=$func_stripname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac continue ;; -shared) # The effects of -shared are defined in a previous loop. continue ;; -shrext) prev=shrext continue ;; -static | -static-libtool-libs) # The effects of -static are defined in a previous loop. # We used to do the same as -all-static on platforms that # didn't have a PIC flag, but the assumption that the effects # would be equivalent was wrong. It would break on at least # Digital Unix and AIX. continue ;; -thread-safe) thread_safe=yes continue ;; -version-info) prev=vinfo continue ;; -version-number) prev=vinfo vinfo_number=yes continue ;; -weak) prev=weak continue ;; -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" arg="$arg $wl$func_quote_for_eval_result" compiler_flags="$compiler_flags $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Wl,*) func_stripname '-Wl,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" arg="$arg $wl$func_quote_for_eval_result" compiler_flags="$compiler_flags $wl$func_quote_for_eval_result" linker_flags="$linker_flags $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Xcompiler) prev=xcompiler continue ;; -Xlinker) prev=xlinker continue ;; -XCClinker) prev=xcclinker continue ;; # -msg_* for osf cc -msg_*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; # -64, -mips[0-9] enable 64-bit mode on the SGI compiler # -r[0-9][0-9]* specifies the processor on the SGI compiler # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler # +DA*, +DD* enable 64-bit mode on the HP compiler # -q* pass through compiler args for the IBM compiler # -m*, -t[45]*, -txscale* pass through architecture-specific # compiler args for GCC # -F/path gives path to uninstalled frameworks, gcc on darwin # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC # @file GCC response files -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" func_append compile_command " $arg" func_append finalize_command " $arg" compiler_flags="$compiler_flags $arg" continue ;; # Some other compiler flag. -* | +*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; *.$objext) # A standard object. objs="$objs $arg" ;; *.lo) # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi ;; *.$libext) # An archive. deplibs="$deplibs $arg" old_deplibs="$old_deplibs $arg" continue ;; *.la) # A libtool-controlled library. if test "$prev" = dlfiles; then # This library was specified with -dlopen. dlfiles="$dlfiles $arg" prev= elif test "$prev" = dlprefiles; then # The library was specified with -dlpreopen. dlprefiles="$dlprefiles $arg" prev= else deplibs="$deplibs $arg" fi continue ;; # Some other compiler argument. *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; esac # arg # Now actually substitute the argument into the commands. if test -n "$arg"; then func_append compile_command " $arg" func_append finalize_command " $arg" fi done # argument parsing loop test -n "$prev" && \ func_fatal_help "the \`$prevarg' option requires an argument" if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" func_append compile_command " $arg" func_append finalize_command " $arg" fi oldlibs= # calculate the name of the file, without its directory func_basename "$output" outputname="$func_basename_result" libobjs_save="$libobjs" if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var eval shlib_search_path=\`\$ECHO \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` else shlib_search_path= fi eval sys_lib_search_path=\"$sys_lib_search_path_spec\" eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" func_dirname "$output" "/" "" output_objdir="$func_dirname_result$objdir" # Create the object directory. func_mkdir_p "$output_objdir" # Determine the type of output case $output in "") func_fatal_help "you must specify an output file" ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; *.la) linkmode=lib ;; *) linkmode=prog ;; # Anything else should be a program. esac specialdeplibs= libs= # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do if $opt_duplicate_deps ; then case "$libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi libs="$libs $deplib" done if test "$linkmode" = lib; then libs="$predeps $libs $compiler_lib_search_path $postdeps" # Compute libraries that are listed more than once in $predeps # $postdeps and mark them as special (i.e., whose duplicates are # not to be eliminated). pre_post_deps= if $opt_duplicate_compiler_generated_deps; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; esac pre_post_deps="$pre_post_deps $pre_post_dep" done fi pre_post_deps= fi deplibs= newdependency_libs= newlib_search_path= need_relink=no # whether we're linking any uninstalled libtool libraries notinst_deplibs= # not-installed libtool libraries notinst_path= # paths that contain not-installed libtool libraries case $linkmode in lib) passes="conv dlpreopen link" for file in $dlfiles $dlprefiles; do case $file in *.la) ;; *) func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file" ;; esac done ;; prog) compile_deplibs= finalize_deplibs= alldeplibs=no newdlfiles= newdlprefiles= passes="conv scan dlopen dlpreopen link" ;; *) passes="conv" ;; esac for pass in $passes; do # The preopen pass in lib mode reverses $deplibs; put it back here # so that -L comes before libs that need it for instance... if test "$linkmode,$pass" = "lib,link"; then ## FIXME: Find the place where the list is rebuilt in the wrong ## order, and fix it there properly tmp_deplibs= for deplib in $deplibs; do tmp_deplibs="$deplib $tmp_deplibs" done deplibs="$tmp_deplibs" fi if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan"; then libs="$deplibs" deplibs= fi if test "$linkmode" = prog; then case $pass in dlopen) libs="$dlfiles" ;; dlpreopen) libs="$dlprefiles" ;; link) libs="$deplibs %DEPLIBS%" test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" ;; esac fi if test "$linkmode,$pass" = "lib,dlpreopen"; then # Collect and forward deplibs of preopened libtool libs for lib in $dlprefiles; do # Ignore non-libtool-libs dependency_libs= case $lib in *.la) func_source "$lib" ;; esac # Collect preopened libtool deplibs, except any this library # has declared as weak libs for deplib in $dependency_libs; do deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"` case " $weak_libs " in *" $deplib_base "*) ;; *) deplibs="$deplibs $deplib" ;; esac done done libs="$dlprefiles" fi if test "$pass" = dlopen; then # Collect dlpreopened libraries save_deplibs="$deplibs" deplibs= fi for deplib in $libs; do lib= found=no case $deplib in -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else compiler_flags="$compiler_flags $deplib" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; esac fi fi continue ;; -l*) if test "$linkmode" != lib && test "$linkmode" != prog; then func_warning "\`-l' is ignored for archives/objects" continue fi func_stripname '-l' '' "$deplib" name=$func_stripname_result if test "$linkmode" = lib; then searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" else searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" fi for searchdir in $searchdirs; do for search_ext in .la $std_shrext .so .a; do # Search the libtool library lib="$searchdir/lib${name}${search_ext}" if test -f "$lib"; then if test "$search_ext" = ".la"; then found=yes else found=no fi break 2 fi done done if test "$found" != yes; then # deplib doesn't seem to be a libtool library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue else # deplib is a libtool library # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, # We need to do some special things here, and not later. if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $deplib "*) if func_lalib_p "$lib"; then library_names= old_library= func_source "$lib" for l in $old_library $library_names; do ll="$l" done if test "X$ll" = "X$old_library" ; then # only static version available found=no func_dirname "$lib" "" "." ladir="$func_dirname_result" lib=$ladir/$old_library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue fi fi ;; *) ;; esac fi fi ;; # -l *.ltframework) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; esac fi fi continue ;; -L*) case $linkmode in lib) deplibs="$deplib $deplibs" test "$pass" = conv && continue newdependency_libs="$deplib $newdependency_libs" func_stripname '-L' '' "$deplib" newlib_search_path="$newlib_search_path $func_stripname_result" ;; prog) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi if test "$pass" = scan; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi func_stripname '-L' '' "$deplib" newlib_search_path="$newlib_search_path $func_stripname_result" ;; *) func_warning "\`-L' is ignored for archives/objects" ;; esac # linkmode continue ;; # -L -R*) if test "$pass" = link; then func_stripname '-R' '' "$deplib" dir=$func_stripname_result # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) lib="$deplib" ;; *.$libext) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi case $linkmode in lib) # Linking convenience modules into shared libraries is allowed, # but linking other static libraries is non-portable. case " $dlpreconveniencelibs " in *" $deplib "*) ;; *) valid_a_lib=no case $deplibs_check_method in match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=yes fi ;; pass_all) valid_a_lib=yes ;; esac if test "$valid_a_lib" != yes; then $ECHO $ECHO "*** Warning: Trying to link with static lib archive $deplib." $ECHO "*** I have the capability to make that library automatically link in when" $ECHO "*** you link to this library. But I can only do this if you have a" $ECHO "*** shared version of the library, which you do not appear to have" $ECHO "*** because the file extensions .$libext of this argument makes me believe" $ECHO "*** that it is just a static archive that I should not use here." else $ECHO $ECHO "*** Warning: Linking the shared library $output against the" $ECHO "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" fi ;; esac continue ;; prog) if test "$pass" != link; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi continue ;; esac # linkmode ;; # *.$libext *.lo | *.$objext) if test "$pass" = conv; then deplibs="$deplib $deplibs" elif test "$linkmode" = prog; then if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlopen support or we're linking statically, # we need to preload. newdlprefiles="$newdlprefiles $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else newdlfiles="$newdlfiles $deplib" fi fi continue ;; %DEPLIBS%) alldeplibs=yes continue ;; esac # case $deplib if test "$found" = yes || test -f "$lib"; then : else func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'" fi # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$lib" \ || func_fatal_error "\`$lib' is not a valid libtool archive" func_dirname "$lib" "" "." ladir="$func_dirname_result" dlname= dlopen= dlpreopen= libdir= library_names= old_library= inherited_linker_flags= # If the library was installed with an old release of libtool, # it will not redefine variables installed, or shouldnotlink installed=yes shouldnotlink=no avoidtemprpath= # Read the .la file func_source "$lib" # Convert "-framework foo" to "foo.ltframework" if test -n "$inherited_linker_flags"; then tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'` for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do case " $new_inherited_linker_flags " in *" $tmp_inherited_linker_flag "*) ;; *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";; esac done fi dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || { test "$linkmode" != prog && test "$linkmode" != lib; }; then test -n "$dlopen" && dlfiles="$dlfiles $dlopen" test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" fi if test "$pass" = conv; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # It is a libtool convenience library, so add in its objects. convenience="$convenience $ladir/$objdir/$old_library" old_convenience="$old_convenience $ladir/$objdir/$old_library" tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" if $opt_duplicate_deps ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done elif test "$linkmode" != prog && test "$linkmode" != lib; then func_fatal_error "\`$lib' is not a convenience library" fi continue fi # $pass = conv # Get the name of the library we link against. linklib= for l in $old_library $library_names; do linklib="$l" done if test -z "$linklib"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # This library was specified with -dlopen. if test "$pass" = dlopen; then if test -z "$libdir"; then func_fatal_error "cannot -dlopen a convenience library: \`$lib'" fi if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlname, no dlopen support or we're linking # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't # bomb out in the load deplibs phase. dlprefiles="$dlprefiles $lib $dependency_libs" else newdlfiles="$newdlfiles $lib" fi continue fi # $pass = dlopen # We need an absolute path. case $ladir in [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; *) abs_ladir=`cd "$ladir" && pwd` if test -z "$abs_ladir"; then func_warning "cannot determine absolute directory name of \`$ladir'" func_warning "passing it literally to the linker, although it might fail" abs_ladir="$ladir" fi ;; esac func_basename "$lib" laname="$func_basename_result" # Find the relevant object directory and library name. if test "X$installed" = Xyes; then if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then func_warning "library \`$lib' was moved." dir="$ladir" absdir="$abs_ladir" libdir="$abs_ladir" else dir="$libdir" absdir="$libdir" fi test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes else if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then dir="$ladir" absdir="$abs_ladir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" else dir="$ladir/$objdir" absdir="$abs_ladir/$objdir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" fi fi # $installed = yes func_stripname 'lib' '.la' "$laname" name=$func_stripname_result # This library was specified with -dlpreopen. if test "$pass" = dlpreopen; then if test -z "$libdir" && test "$linkmode" = prog; then func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" fi # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then newdlprefiles="$newdlprefiles $dir/$old_library" # Keep a list of preopened convenience libraries to check # that they are being used correctly in the link pass. test -z "$libdir" && \ dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then newdlprefiles="$newdlprefiles $dir/$dlname" else newdlprefiles="$newdlprefiles $dir/$linklib" fi fi # $pass = dlpreopen if test -z "$libdir"; then # Link the convenience library if test "$linkmode" = lib; then deplibs="$dir/$old_library $deplibs" elif test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else deplibs="$lib $deplibs" # used for prog,scan pass fi continue fi if test "$linkmode" = prog && test "$pass" != link; then newlib_search_path="$newlib_search_path $ladir" deplibs="$lib $deplibs" linkalldeplibs=no if test "$link_all_deplibs" != no || test -z "$library_names" || test "$build_libtool_libs" = no; then linkalldeplibs=yes fi tmp_libs= for deplib in $dependency_libs; do case $deplib in -L*) func_stripname '-L' '' "$deplib" newlib_search_path="$newlib_search_path $func_stripname_result" ;; esac # Need to link against all dependency_libs? if test "$linkalldeplibs" = yes; then deplibs="$deplib $deplibs" else # Need to hardcode shared library paths # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi if $opt_duplicate_deps ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done # for deplib continue fi # $linkmode = prog... if test "$linkmode,$pass" = "prog,link"; then if test -n "$library_names" && { { test "$prefer_static_libs" = no || test "$prefer_static_libs,$installed" = "built,yes"; } || test -z "$old_library"; }; then # We need to hardcode the library path if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then # Make sure the rpath contains only unique directories. case "$temp_rpath:" in *"$absdir:"*) ;; *) temp_rpath="$temp_rpath$absdir:" ;; esac fi # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi # $linkmode,$pass = prog,link... if test "$alldeplibs" = yes && { test "$deplibs_check_method" = pass_all || { test "$build_libtool_libs" = yes && test -n "$library_names"; }; }; then # We only need to search for static libraries continue fi fi link_static=no # Whether the deplib will be linked statically use_static_libs=$prefer_static_libs if test "$use_static_libs" = built && test "$installed" = yes; then use_static_libs=no fi if test -n "$library_names" && { test "$use_static_libs" = no || test -z "$old_library"; }; then case $host in *cygwin* | *mingw* | *cegcc*) # No point in relinking DLLs because paths are not encoded notinst_deplibs="$notinst_deplibs $lib" need_relink=no ;; *) if test "$installed" = no; then notinst_deplibs="$notinst_deplibs $lib" need_relink=yes fi ;; esac # This is a shared library # Warn about portability, can't link against -module's on some # systems (darwin). Don't bleat about dlopened modules though! dlopenmodule="" for dlpremoduletest in $dlprefiles; do if test "X$dlpremoduletest" = "X$lib"; then dlopenmodule="$dlpremoduletest" break fi done if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then $ECHO if test "$linkmode" = prog; then $ECHO "*** Warning: Linking the executable $output against the loadable module" else $ECHO "*** Warning: Linking the shared library $output against the loadable module" fi $ECHO "*** $linklib is not portable!" fi if test "$linkmode" = lib && test "$hardcode_into_libs" = yes; then # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi if test -n "$old_archive_from_expsyms_cmds"; then # figure out the soname set dummy $library_names shift realname="$1" shift libname=`eval "\\$ECHO \"$libname_spec\""` # use dlname if we got it. it's perfectly good, no? if test -n "$dlname"; then soname="$dlname" elif test -n "$soname_spec"; then # bleh windows case $host in *cygwin* | mingw* | *cegcc*) func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; esac eval soname=\"$soname_spec\" else soname="$realname" fi # Make a new name for the extract_expsyms_cmds to use soroot="$soname" func_basename "$soroot" soname="$func_basename_result" func_stripname 'lib' '.dll' "$soname" newlib=libimp-$func_stripname_result.a # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else func_verbose "extracting exported symbol list from \`$soname'" func_execute_cmds "$extract_expsyms_cmds" 'exit $?' fi # Create $newlib if test -f "$output_objdir/$newlib"; then :; else func_verbose "generating import library for \`$soname'" func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' fi # make sure the library variables are pointing to the new library dir=$output_objdir linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" if test "$linkmode" = prog || test "$mode" != relink; then add_shlibpath= add_dir= add= lib_linked=yes case $hardcode_action in immediate | unsupported) if test "$hardcode_direct" = no; then add="$dir/$linklib" case $host in *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; *-*-sysv4*uw2*) add_dir="-L$dir" ;; *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ *-*-unixware7*) add_dir="-L$dir" ;; *-*-darwin* ) # if the lib is a (non-dlopened) module then we can not # link against it, someone is ignoring the earlier warnings if /usr/bin/file -L $add 2> /dev/null | $GREP ": [^:]* bundle" >/dev/null ; then if test "X$dlopenmodule" != "X$lib"; then $ECHO "*** Warning: lib $linklib is a module, not a shared library" if test -z "$old_library" ; then $ECHO $ECHO "*** And there doesn't seem to be a static archive available" $ECHO "*** The link will probably fail, sorry" else add="$dir/$old_library" fi elif test -n "$old_library"; then add="$dir/$old_library" fi fi esac elif test "$hardcode_minus_L" = no; then case $host in *-*-sunos*) add_shlibpath="$dir" ;; esac add_dir="-L$dir" add="-l$name" elif test "$hardcode_shlibpath_var" = no; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; relink) if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then add="$dir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$dir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; *) lib_linked=no ;; esac if test "$lib_linked" != yes; then func_fatal_configuration "unsupported hardcode properties" fi if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; esac fi if test "$linkmode" = prog; then test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" test -n "$add" && compile_deplibs="$add $compile_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" if test "$hardcode_direct" != yes && test "$hardcode_minus_L" != yes && test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac fi fi fi if test "$linkmode" = prog || test "$mode" = relink; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then add="$libdir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$libdir" add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac add="-l$name" elif test "$hardcode_automatic" = yes; then if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; then add="$inst_prefix_dir$libdir/$linklib" else add="$libdir/$linklib" fi else # We cannot seem to hardcode it, guess we'll fake it. add_dir="-L$libdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" fi if test "$linkmode" = prog; then test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" fi fi elif test "$linkmode" = prog; then # Here we assume that one of hardcode_direct or hardcode_minus_L # is not unsupported. This is valid on all known static and # shared platforms. if test "$hardcode_direct" != unsupported; then test -n "$old_library" && linklib="$old_library" compile_deplibs="$dir/$linklib $compile_deplibs" finalize_deplibs="$dir/$linklib $finalize_deplibs" else compile_deplibs="-l$name -L$dir $compile_deplibs" finalize_deplibs="-l$name -L$dir $finalize_deplibs" fi elif test "$build_libtool_libs" = yes; then # Not a shared library if test "$deplibs_check_method" != pass_all; then # We're trying link a shared library against a static one # but the system doesn't support it. # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. $ECHO $ECHO "*** Warning: This system can not link to static lib archive $lib." $ECHO "*** I have the capability to make that library automatically link in when" $ECHO "*** you link to this library. But I can only do this if you have a" $ECHO "*** shared version of the library, which you do not appear to have." if test "$module" = yes; then $ECHO "*** But as you try to build a module library, libtool will still create " $ECHO "*** a static module, that should work as long as the dlopening application" $ECHO "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then $ECHO $ECHO "*** However, this would only work if libtool was able to extract symbol" $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could" $ECHO "*** not find such a program. So, this module is probably useless." $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi else deplibs="$dir/$old_library $deplibs" link_static=yes fi fi # link shared/static library? if test "$linkmode" = lib; then if test -n "$dependency_libs" && { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes || test "$link_static" = yes; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do case $libdir in -R*) func_stripname '-R' '' "$libdir" temp_xrpath=$func_stripname_result case " $xrpath " in *" $temp_xrpath "*) ;; *) xrpath="$xrpath $temp_xrpath";; esac;; *) temp_deplibs="$temp_deplibs $libdir";; esac done dependency_libs="$temp_deplibs" fi newlib_search_path="$newlib_search_path $absdir" # Link against this library test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" if $opt_duplicate_deps ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done if test "$link_all_deplibs" != no; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do path= case $deplib in -L*) path="$deplib" ;; *.la) func_dirname "$deplib" "" "." dir="$func_dirname_result" # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then func_warning "cannot determine absolute directory name of \`$dir'" absdir="$dir" fi ;; esac if $GREP "^installed=no" $deplib > /dev/null; then case $host in *-*-darwin*) depdepl= eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` if test -n "$deplibrary_names" ; then for tmp in $deplibrary_names ; do depdepl=$tmp done if test -f "$absdir/$objdir/$depdepl" ; then depdepl="$absdir/$objdir/$depdepl" darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` if test -z "$darwin_install_name"; then darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` fi compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}" path= fi fi ;; *) path="-L$absdir/$objdir" ;; esac else eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" test "$absdir" != "$libdir" && \ func_warning "\`$deplib' seems to be moved" path="-L$absdir" fi ;; esac case " $deplibs " in *" $path "*) ;; *) deplibs="$path $deplibs" ;; esac done fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs if test "$pass" = link; then if test "$linkmode" = "prog"; then compile_deplibs="$new_inherited_linker_flags $compile_deplibs" finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" else compiler_flags="$compiler_flags "`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` fi fi dependency_libs="$newdependency_libs" if test "$pass" = dlpreopen; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi if test "$pass" != dlopen; then if test "$pass" != conv; then # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;; *) lib_search_path="$lib_search_path $dir" ;; esac done newlib_search_path= fi if test "$linkmode,$pass" != "prog,link"; then vars="deplibs" else vars="compile_deplibs finalize_deplibs" fi for var in $vars dependency_libs; do # Add libraries to $var in reverse order eval tmp_libs=\"\$$var\" new_libs= for deplib in $tmp_libs; do # FIXME: Pedantically, this is the right thing to do, so # that some nasty dependency loop isn't accidentally # broken: #new_libs="$deplib $new_libs" # Pragmatically, this seems to cause very few problems in # practice: case $deplib in -L*) new_libs="$deplib $new_libs" ;; -R*) ;; *) # And here is the reason: when a library appears more # than once as an explicit dependence of a library, or # is implicitly linked in more than once by the # compiler, it is considered special, and multiple # occurrences thereof are not removed. Compare this # with having the same library being listed as a # dependency of multiple other libraries: in this case, # we know (pedantically, we assume) the library does not # need to be listed more than once, so we keep only the # last copy. This is not always right, but it is rare # enough that we require users that really mean to play # such unportable linking tricks to link the library # using -Wl,-lname, so that libtool does not consider it # for duplicate removal. case " $specialdeplibs " in *" $deplib "*) new_libs="$deplib $new_libs" ;; *) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$deplib $new_libs" ;; esac ;; esac ;; esac done tmp_libs= for deplib in $new_libs; do case $deplib in -L*) case " $tmp_libs " in *" $deplib "*) ;; *) tmp_libs="$tmp_libs $deplib" ;; esac ;; *) tmp_libs="$tmp_libs $deplib" ;; esac done eval $var=\"$tmp_libs\" done # for var fi # Last step: remove runtime libs from dependency_libs # (they stay in deplibs) tmp_libs= for i in $dependency_libs ; do case " $predeps $postdeps $compiler_lib_search_path " in *" $i "*) i="" ;; esac if test -n "$i" ; then tmp_libs="$tmp_libs $i" fi done dependency_libs=$tmp_libs done # for pass if test "$linkmode" = prog; then dlfiles="$newdlfiles" fi if test "$linkmode" = prog || test "$linkmode" = lib; then dlprefiles="$newdlprefiles" fi case $linkmode in oldlib) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for archives" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for archives" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for archives" test -n "$xrpath" && \ func_warning "\`-R' is ignored for archives" test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for archives" test -n "$release" && \ func_warning "\`-release' is ignored for archives" test -n "$export_symbols$export_symbols_regex" && \ func_warning "\`-export-symbols' is ignored for archives" # Now set the variables for building old libraries. build_libtool_libs=no oldlibs="$output" objs="$objs$old_deplibs" ;; lib) # Make sure we only generate libraries of the form `libNAME.la'. case $outputname in lib*) func_stripname 'lib' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" ;; *) test "$module" = no && \ func_fatal_help "libtool library \`$output' must begin with \`lib'" if test "$need_lib_prefix" != no; then # Add the "lib" prefix for modules if required func_stripname '' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" else func_stripname '' '.la' "$outputname" libname=$func_stripname_result fi ;; esac if test -n "$objs"; then if test "$deplibs_check_method" != pass_all; then func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" else $ECHO $ECHO "*** Warning: Linking the shared library $output against the non-libtool" $ECHO "*** objects $objs is not portable!" libobjs="$libobjs $objs" fi fi test "$dlself" != no && \ func_warning "\`-dlopen self' is ignored for libtool libraries" set dummy $rpath shift test "$#" -gt 1 && \ func_warning "ignoring multiple \`-rpath's for a libtool library" install_libdir="$1" oldlibs= if test -z "$rpath"; then if test "$build_libtool_libs" = yes; then # Building a libtool convenience library. # Some compilers have problems with a `.al' extension so # convenience libraries should have the same extension an # archive normally would. oldlibs="$output_objdir/$libname.$libext $oldlibs" build_libtool_libs=convenience build_old_libs=yes fi test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for convenience libraries" test -n "$release" && \ func_warning "\`-release' is ignored for convenience libraries" else # Parse the version information argument. save_ifs="$IFS"; IFS=':' set dummy $vinfo 0 0 0 shift IFS="$save_ifs" test -n "$7" && \ func_fatal_help "too many parameters to \`-version-info'" # convert absolute version numbers to libtool ages # this retains compatibility with .la files and attempts # to make the code below a bit more comprehensible case $vinfo_number in yes) number_major="$1" number_minor="$2" number_revision="$3" # # There are really only two kinds -- those that # use the current revision as the major version # and those that subtract age and use age as # a minor version. But, then there is irix # which has an extra 1 added just for fun # case $version_type in darwin|linux|osf|windows|none) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_revision" ;; freebsd-aout|freebsd-elf|sunos) current="$number_major" revision="$number_minor" age="0" ;; irix|nonstopux) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_minor" lt_irix_increment=no ;; *) func_fatal_configuration "$modename: unknown library version type \`$version_type'" ;; esac ;; no) current="$1" revision="$2" age="$3" ;; esac # Check that each of the things are valid numbers. case $current in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "CURRENT \`$current' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $revision in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "REVISION \`$revision' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $age in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "AGE \`$age' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac if test "$age" -gt "$current"; then func_error "AGE \`$age' is greater than the current interface number \`$current'" func_fatal_error "\`$vinfo' is not valid version information" fi # Calculate the version variables. major= versuffix= verstring= case $version_type in none) ;; darwin) # Like Linux, but with the current version available in # verstring for coding it into the library header func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" # Darwin ld doesn't like 0 for these options... func_arith $current + 1 minor_current=$func_arith_result xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" ;; freebsd-aout) major=".$current" versuffix=".$current.$revision"; ;; freebsd-elf) major=".$current" versuffix=".$current" ;; irix | nonstopux) if test "X$lt_irix_increment" = "Xno"; then func_arith $current - $age else func_arith $current - $age + 1 fi major=$func_arith_result case $version_type in nonstopux) verstring_prefix=nonstopux ;; *) verstring_prefix=sgi ;; esac verstring="$verstring_prefix$major.$revision" # Add in all the interfaces that we are compatible with. loop=$revision while test "$loop" -ne 0; do func_arith $revision - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring_prefix$major.$iface:$verstring" done # Before this point, $major must not contain `.'. major=.$major versuffix="$major.$revision" ;; linux) func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" ;; osf) func_arith $current - $age major=.$func_arith_result versuffix=".$current.$age.$revision" verstring="$current.$age.$revision" # Add in all the interfaces that we are compatible with. loop=$age while test "$loop" -ne 0; do func_arith $current - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring:${iface}.0" done # Make executables depend on our current version. verstring="$verstring:${current}.0" ;; qnx) major=".$current" versuffix=".$current" ;; sunos) major=".$current" versuffix=".$current.$revision" ;; windows) # Use '-' rather than '.', since we only want one # extension on DOS 8.3 filesystems. func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; *) func_fatal_configuration "unknown library version type \`$version_type'" ;; esac # Clear the version info if we defaulted, and they specified a release. if test -z "$vinfo" && test -n "$release"; then major= case $version_type in darwin) # we can't check for "0.0" in archive_cmds due to quoting # problems, so we reset it completely verstring= ;; *) verstring="0.0" ;; esac if test "$need_version" = no; then versuffix= else versuffix=".0.0" fi fi # Remove version info from name if versioning should be avoided if test "$avoid_version" = yes && test "$need_version" = no; then major= versuffix= verstring="" fi # Check to see if the archive will have undefined symbols. if test "$allow_undefined" = yes; then if test "$allow_undefined_flag" = unsupported; then func_warning "undefined symbols not allowed in $host shared libraries" build_libtool_libs=no build_old_libs=yes fi else # Don't allow undefined symbols. allow_undefined_flag="$no_undefined_flag" fi fi func_generate_dlsyms "$libname" "$libname" "yes" libobjs="$libobjs $symfileobj" test "X$libobjs" = "X " && libobjs= if test "$mode" != relink; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= tempremovelist=`$ECHO "$output_objdir/*"` for p in $tempremovelist; do case $p in *.$objext | *.gcno) ;; $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) if test "X$precious_files_regex" != "X"; then if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 then continue fi fi removelist="$removelist $p" ;; *) ;; esac done test -n "$removelist" && \ func_show_eval "${RM}r \$removelist" fi # Now set the variables for building old libraries. if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then oldlibs="$oldlibs $output_objdir/$libname.$libext" # Transform .lo files to .o files. oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` fi # Eliminate all temporary directories. #for path in $notinst_path; do # lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"` # deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"` # dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"` #done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do temp_xrpath="$temp_xrpath -R$libdir" case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then dependency_libs="$temp_xrpath $dependency_libs" fi fi # Make sure dlfiles contains only unique files that won't be dlpreopened old_dlfiles="$dlfiles" dlfiles= for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in *" $lib "*) ;; *) dlfiles="$dlfiles $lib" ;; esac done # Make sure dlprefiles contains only unique files old_dlprefiles="$dlprefiles" dlprefiles= for lib in $old_dlprefiles; do case "$dlprefiles " in *" $lib "*) ;; *) dlprefiles="$dlprefiles $lib" ;; esac done if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework deplibs="$deplibs System.ltframework" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work ;; *) # Add libc to deplibs on all other systems if necessary. if test "$build_libtool_need_lc" = "yes"; then deplibs="$deplibs -lc" fi ;; esac fi # Transform deplibs into only deplibs that can be linked in shared. name_save=$name libname_save=$libname release_save=$release versuffix_save=$versuffix major_save=$major # I'm not sure if I'm treating the release correctly. I think # release should show up in the -l (ie -lgmp5) so we don't want to # add it in twice. Is that correct? release="" versuffix="" major="" newdeplibs= droppeddeps=no case $deplibs_check_method in pass_all) # Don't check for shared/static. Everything works. # This might be a little naive. We might want to check # whether the library exists or not. But this is on # osf3 & osf4 and I'm not really sure... Just # implementing what was already the behavior. newdeplibs=$deplibs ;; test_compile) # This code stresses the "libraries are programs" paradigm to its # limits. Maybe even breaks it. We compile a program, linking it # against the deplibs as a proxy for the library. Then we can check # whether they linked in statically or dynamically with ldd. $opt_dry_run || $RM conftest.c cat > conftest.c </dev/null` for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null | $GREP " -> " >/dev/null; then continue fi # The statement above tries to avoid entering an # endless loop below, in case of cyclic links. # We might still enter an endless loop, since a link # loop can be closed while we follow links, # but so what? potlib="$potent_lib" while test -h "$potlib" 2>/dev/null; do potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; *) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | $SED -e 10q | $EGREP "$file_magic_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes $ECHO $ECHO "*** Warning: linker path does not have real file for library $a_deplib." $ECHO "*** I have the capability to make that library automatically link in when" $ECHO "*** you link to this library. But I can only do this if you have a" $ECHO "*** shared version of the library, which you do not appear to have" $ECHO "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for file magic test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a file magic. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" ;; esac done # Gone through all deplibs. ;; match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` for a_deplib in $deplibs; do case $a_deplib in -l*) func_stripname -l '' "$a_deplib" name=$func_stripname_result if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) newdeplibs="$newdeplibs $a_deplib" a_deplib="" ;; esac fi if test -n "$a_deplib" ; then libname=`eval "\\$ECHO \"$libname_spec\""` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do potlib="$potent_lib" # see symlink-check above in file_magic test if eval "\$ECHO \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \ $EGREP "$match_pattern_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes $ECHO $ECHO "*** Warning: linker path does not have real file for library $a_deplib." $ECHO "*** I have the capability to make that library automatically link in when" $ECHO "*** you link to this library. But I can only do this if you have a" $ECHO "*** shared version of the library, which you do not appear to have" $ECHO "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a regex pattern. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" ;; esac done # Gone through all deplibs. ;; none | unknown | *) newdeplibs="" tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \ -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'` if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then for i in $predeps $postdeps ; do # can't use Xsed below, because $i might contain '/' tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"` done fi if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' | $GREP . >/dev/null; then $ECHO if test "X$deplibs_check_method" = "Xnone"; then $ECHO "*** Warning: inter-library dependencies are not supported in this platform." else $ECHO "*** Warning: inter-library dependencies are not known to be supported." fi $ECHO "*** All declared inter-library dependencies are being dropped." droppeddeps=yes fi ;; esac versuffix=$versuffix_save major=$major_save release=$release_save libname=$libname_save name=$name_save case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library with the System framework newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'` ;; esac if test "$droppeddeps" = yes; then if test "$module" = yes; then $ECHO $ECHO "*** Warning: libtool could not satisfy all declared inter-library" $ECHO "*** dependencies of module $libname. Therefore, libtool will create" $ECHO "*** a static module, that should work as long as the dlopening" $ECHO "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then $ECHO $ECHO "*** However, this would only work if libtool was able to extract symbol" $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could" $ECHO "*** not find such a program. So, this module is probably useless." $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi else $ECHO "*** The inter-library dependencies that have been dropped here will be" $ECHO "*** automatically added whenever a program is linked with this library" $ECHO "*** or is declared to -dlopen it." if test "$allow_undefined" = no; then $ECHO $ECHO "*** Since this library must not contain undefined symbols," $ECHO "*** because either the platform does not support them or" $ECHO "*** it was explicitly requested with -no-undefined," $ECHO "*** libtool will only create a static version of it." if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi fi fi # Done checking deplibs! deplibs=$newdeplibs fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" case $host in *-*-darwin*) newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $deplibs " in *" -L$path/$objdir "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$new_libs $deplib" ;; esac done deplibs="$new_libs" # All the library-specific variables (install_libdir is set above). library_names= old_library= dlname= # Test again, we may have decided not to build it any more if test "$build_libtool_libs" = yes; then if test "$hardcode_into_libs" = yes; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath="$finalize_rpath" test "$mode" != relink && rpath="$compile_rpath$rpath" for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" dep_rpath="$dep_rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" if test -n "$hardcode_libdir_flag_spec_ld"; then eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" else eval dep_rpath=\"$hardcode_libdir_flag_spec\" fi fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" fi test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" fi shlibpath="$finalize_shlibpath" test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi # Get the real and link names of the library. eval shared_ext=\"$shrext_cmds\" eval library_names=\"$library_names_spec\" set dummy $library_names shift realname="$1" shift if test -n "$soname_spec"; then eval soname=\"$soname_spec\" else soname="$realname" fi if test -z "$dlname"; then dlname=$soname fi lib="$output_objdir/$realname" linknames= for link do linknames="$linknames $link" done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` test "X$libobjs" = "X " && libobjs= delfiles= if test -n "$export_symbols" && test -n "$include_expsyms"; then $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" export_symbols="$output_objdir/$libname.uexp" delfiles="$delfiles $export_symbols" fi orig_export_symbols= case $host_os in cygwin* | mingw* | cegcc*) if test -n "$export_symbols" && test -z "$export_symbols_regex"; then # exporting using user supplied symfile if test "x`$SED 1q $export_symbols`" != xEXPORTS; then # and it's NOT already a .def file. Must figure out # which of the given symbols are data symbols and tag # them as such. So, trigger use of export_symbols_cmds. # export_symbols gets reassigned inside the "prepare # the list of exported symbols" if statement, so the # include_expsyms logic still works. orig_export_symbols="$export_symbols" export_symbols= always_export_symbols=yes fi fi ;; esac # Prepare the list of exported symbols if test -z "$export_symbols"; then if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols cmds=$export_symbols_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" func_len " $cmd" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then func_show_eval "$cmd" 'exit $?' skipped_export=false else # The command line is too long to execute in one step. func_verbose "using reloadable object file for export list..." skipped_export=: # Break out early, otherwise skipped_export may be # set to false by a later but shorter cmd. break fi done IFS="$save_ifs" if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi fi if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' fi if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi tmp_deplibs= for test_deplib in $deplibs; do case " $convenience " in *" $test_deplib "*) ;; *) tmp_deplibs="$tmp_deplibs $test_deplib" ;; esac done deplibs="$tmp_deplibs" if test -n "$convenience"; then if test -n "$whole_archive_flag_spec" && test "$compiler_needs_object" = yes && test -z "$libobjs"; then # extract the archives, so we have objects to list. # TODO: could optimize this to just extract one archive. whole_archive_flag_spec= fi if test -n "$whole_archive_flag_spec"; then save_libobjs=$libobjs eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= else gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $convenience libobjs="$libobjs $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi fi if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" linker_flags="$linker_flags $flag" fi # Make a backup of the uninstalled library when relinking if test "$mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? fi # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then eval test_cmds=\"$module_expsym_cmds\" cmds=$module_expsym_cmds else eval test_cmds=\"$module_cmds\" cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then eval test_cmds=\"$archive_expsym_cmds\" cmds=$archive_expsym_cmds else eval test_cmds=\"$archive_cmds\" cmds=$archive_cmds fi fi if test "X$skipped_export" != "X:" && func_len " $test_cmds" && len=$func_len_result && test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then : else # The command line is too long to link in one step, link piecewise # or, if using GNU ld and skipped_export is not :, use a linker # script. # Save the value of $output and $libobjs because we want to # use them later. If we have whole_archive_flag_spec, we # want to use save_libobjs as it was before # whole_archive_flag_spec was expanded, because we can't # assume the linker understands whole_archive_flag_spec. # This may have to be revisited, in case too many # convenience libraries get linked in and end up exceeding # the spec. if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then save_libobjs=$libobjs fi save_output=$output output_la=`$ECHO "X$output" | $Xsed -e "$basename"` # Clear the reloadable object creation command queue and # initialize k to one. test_cmds= concat_cmds= objlist= last_robj= k=1 if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then output=${output_objdir}/${output_la}.lnkscript func_verbose "creating GNU ld script: $output" $ECHO 'INPUT (' > $output for obj in $save_libobjs do $ECHO "$obj" >> $output done $ECHO ')' >> $output delfiles="$delfiles $output" elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then output=${output_objdir}/${output_la}.lnk func_verbose "creating linker input file list: $output" : > $output set x $save_libobjs shift firstobj= if test "$compiler_needs_object" = yes; then firstobj="$1 " shift fi for obj do $ECHO "$obj" >> $output done delfiles="$delfiles $output" output=$firstobj\"$file_list_spec$output\" else if test -n "$save_libobjs"; then func_verbose "creating reloadable object files..." output=$output_objdir/$output_la-${k}.$objext eval test_cmds=\"$reload_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 # Loop over the list of objects to be linked. for obj in $save_libobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result if test "X$objlist" = X || test "$len" -lt "$max_cmd_len"; then func_append objlist " $obj" else # The command $test_cmds is almost too long, add a # command to the queue. if test "$k" -eq 1 ; then # The first file doesn't have a previous command to add. eval concat_cmds=\"$reload_cmds $objlist $last_robj\" else # All subsequent reloadable object files will link in # the last one created. eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj~\$RM $last_robj\" fi last_robj=$output_objdir/$output_la-${k}.$objext func_arith $k + 1 k=$func_arith_result output=$output_objdir/$output_la-${k}.$objext objlist=$obj func_len " $last_robj" func_arith $len0 + $func_len_result len=$func_arith_result fi done # Handle the remaining objects by creating one last # reloadable object file. All subsequent reloadable object # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" if test -n "$last_robj"; then eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" fi delfiles="$delfiles $output" else output= fi if ${skipped_export-false}; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols libobjs=$output # Append the command to create the export file. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" fi fi test -n "$save_libobjs" && func_verbose "creating a temporary reloadable object file: $output" # Loop through the commands generated above and execute them. save_ifs="$IFS"; IFS='~' for cmd in $concat_cmds; do IFS="$save_ifs" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" if test -n "$export_symbols_regex" && ${skipped_export-false}; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi if ${skipped_export-false}; then if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' fi if test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi fi libobjs=$output # Restore the value of output. output=$save_output if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= fi # Expand the library linking commands again to reset the # value of $libobjs for piecewise linking. # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then cmds=$module_expsym_cmds else cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then cmds=$archive_expsym_cmds else cmds=$archive_cmds fi fi fi if test -n "$delfiles"; then # Append the command to remove temporary files to $cmds. eval cmds=\"\$cmds~\$RM $delfiles\" fi # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $dlprefiles libobjs="$libobjs $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" # Restore the uninstalled library and exit if test "$mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? if test -n "$convenience"; then if test -z "$whole_archive_flag_spec"; then func_show_eval '${RM}r "$gentop"' fi fi exit $EXIT_SUCCESS fi # Create links to the real library. for linkname in $linknames; do if test "$realname" != "$linkname"; then func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' fi done # If -module or -export-dynamic was specified, set the dlname. if test "$module" = yes || test "$export_dynamic" = yes; then # On all known operating systems, these are identical. dlname="$soname" fi fi ;; obj) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for objects" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for objects" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for objects" test -n "$xrpath" && \ func_warning "\`-R' is ignored for objects" test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for objects" test -n "$release" && \ func_warning "\`-release' is ignored for objects" case $output in *.lo) test -n "$objs$old_deplibs" && \ func_fatal_error "cannot build library object \`$output' from non-libtool objects" libobj=$output func_lo2o "$libobj" obj=$func_lo2o_result ;; *) libobj= obj="$output" ;; esac # Delete the old objects. $opt_dry_run || $RM $obj $libobj # Objects from convenience libraries. This assumes # single-version convenience libraries. Whenever we create # different ones for PIC/non-PIC, this we'll have to duplicate # the extraction. reload_conv_objs= gentop= # reload_cmds runs $LD directly, so let us get rid of # -Wl from whole_archive_flag_spec and hope we can get by with # turning comma into space.. wl= if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'` else gentop="$output_objdir/${obj}x" generated="$generated $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi # Create the old-style object. reload_objs="$objs$old_deplibs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" func_execute_cmds "$reload_cmds" 'exit $?' # Exit if we aren't doing a library object file. if test -z "$libobj"; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS fi if test "$build_libtool_libs" != yes; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. # $show "echo timestamp > $libobj" # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? exit $EXIT_SUCCESS fi if test -n "$pic_flag" || test "$pic_mode" != default; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output="$libobj" func_execute_cmds "$reload_cmds" 'exit $?' fi if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS ;; prog) case $host in *cygwin*) func_stripname '' '.exe' "$output" output=$func_stripname_result.exe;; esac test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for programs" test -n "$release" && \ func_warning "\`-release' is ignored for programs" test "$preload" = yes \ && test "$dlopen_support" = unknown \ && test "$dlopen_self" = unknown \ && test "$dlopen_self_static" = unknown && \ func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` ;; esac case $host in *-*-darwin*) # Don't allow lazy linking, it breaks C++ global constructors # But is supposedly fixed on 10.4 or later (yay!). if test "$tagname" = CXX ; then case ${MACOSX_DEPLOYMENT_TARGET-10.0} in 10.[0123]) compile_command="$compile_command ${wl}-bind_at_load" finalize_command="$finalize_command ${wl}-bind_at_load" ;; esac fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $compile_deplibs " in *" -L$path/$objdir "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $compile_deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$new_libs $deplib" ;; esac done compile_deplibs="$new_libs" compile_command="$compile_command $compile_deplibs" finalize_command="$finalize_command $finalize_deplibs" if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. for libdir in $rpath $xrpath; do # This is the magic to use -rpath. case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done fi # Now hardcode the library paths rpath= hardcode_libdirs= for libdir in $compile_rpath $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; ::) dllsearchpath=$libdir;; *) dllsearchpath="$dllsearchpath:$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi compile_rpath="$rpath" rpath= hardcode_libdirs= for libdir in $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi finalize_rpath="$rpath" if test -n "$libobjs" && test "$build_old_libs" = yes; then # Transform all the library objects into standard objects. compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` fi func_generate_dlsyms "$outputname" "@PROGRAM@" "no" # template prelinking step if test -n "$prelink_cmds"; then func_execute_cmds "$prelink_cmds" 'exit $?' fi wrappers_required=yes case $host in *cygwin* | *mingw* ) if test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; *cegcc) # Disable wrappers for cegcc, we are cross compiling anyway. wrappers_required=no ;; *) if test "$need_relink" = no || test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; esac if test "$wrappers_required" = no; then # Replace the output file specification. compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` link_command="$compile_command$compile_rpath" # We have no uninstalled library dependencies, so finalize right now. exit_status=0 func_show_eval "$link_command" 'exit_status=$?' # Delete the generated files. if test -f "$output_objdir/${outputname}S.${objext}"; then func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' fi exit $exit_status fi if test -n "$compile_shlibpath$finalize_shlibpath"; then compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" fi if test -n "$finalize_shlibpath"; then finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" fi compile_var= finalize_var= if test -n "$runpath_var"; then if test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done compile_var="$runpath_var=\"$rpath\$$runpath_var\" " fi if test -n "$finalize_perm_rpath"; then # We should set the runpath_var. rpath= for dir in $finalize_perm_rpath; do rpath="$rpath$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi fi if test "$no_install" = yes; then # We don't need to create a wrapper script. link_command="$compile_var$compile_command$compile_rpath" # Replace the output file specification. link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $opt_dry_run || $RM $output # Link the executable and exit func_show_eval "$link_command" 'exit $?' exit $EXIT_SUCCESS fi if test "$hardcode_action" = relink; then # Fast installation is not supported link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" func_warning "this platform does not like uninstalled shared libraries" func_warning "\`$output' will be relinked during installation" else if test "$fast_install" != no; then link_command="$finalize_var$compile_command$finalize_rpath" if test "$fast_install" = yes; then relink_command=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` else # fast_install is set to needless relink_command= fi else link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" fi fi # Replace the output file specification. link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname func_show_eval "$link_command" 'exit $?' # Now create the wrapper script. func_verbose "creating $output" # Quote the relink command for shipping. if test -n "$relink_command"; then # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done relink_command="(cd `pwd`; $relink_command)" relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` fi # Quote $ECHO for shipping. if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then case $progpath in [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; esac qecho=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"` else qecho=`$ECHO "X$ECHO" | $Xsed -e "$sed_quote_subst"` fi # Only actually do things if not in dry run mode. $opt_dry_run || { # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in *.exe) func_stripname '' '.exe' "$output" output=$func_stripname_result ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in *cygwin*) exeext=.exe func_stripname '' '.exe' "$outputname" outputname=$func_stripname_result ;; *) exeext= ;; esac case $host in *cygwin* | *mingw* ) func_dirname_and_basename "$output" "" "." output_name=$func_basename_result output_path=$func_dirname_result cwrappersource="$output_path/$objdir/lt-$output_name.c" cwrapper="$output_path/$output_name.exe" $RM $cwrappersource $cwrapper trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 func_emit_cwrapperexe_src > $cwrappersource # The wrapper executable is built using the $host compiler, # because it contains $host paths and files. If cross- # compiling, it, like the target executable, must be # executed on the $host or under an emulation environment. $opt_dry_run || { $LTCC $LTCFLAGS -o $cwrapper $cwrappersource $STRIP $cwrapper } # Now, create the wrapper script for func_source use: func_ltwrapper_scriptname $cwrapper $RM $func_ltwrapper_scriptname_result trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 $opt_dry_run || { # note: this script will not be executed, so do not chmod. if test "x$build" = "x$host" ; then $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result else func_emit_wrapper no > $func_ltwrapper_scriptname_result fi } ;; * ) $RM $output trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 func_emit_wrapper no > $output chmod +x $output ;; esac } exit $EXIT_SUCCESS ;; esac # See if we need to build an old-fashioned archive. for oldlib in $oldlibs; do if test "$build_libtool_libs" = convenience; then oldobjs="$libobjs_save $symfileobj" addlibs="$convenience" build_libtool_libs=no else if test "$build_libtool_libs" = module; then oldobjs="$libobjs_save" build_libtool_libs=no else oldobjs="$old_deplibs $non_pic_objects" if test "$preload" = yes && test -f "$symfileobj"; then oldobjs="$oldobjs $symfileobj" fi fi addlibs="$old_convenience" fi if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $addlibs oldobjs="$oldobjs $func_extract_archives_result" fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then cmds=$old_archive_from_new_cmds else # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $dlprefiles oldobjs="$oldobjs $func_extract_archives_result" fi # POSIX demands no paths to be encoded in archives. We have # to avoid creating archives with duplicate basenames if we # might have to extract them afterwards, e.g., when creating a # static archive out of a convenience library, or when linking # the entirety of a libtool archive into another (currently # not supported by libtool). if (for obj in $oldobjs do func_basename "$obj" $ECHO "$func_basename_result" done | sort | sort -uc >/dev/null 2>&1); then : else $ECHO "copying selected object files to avoid basename conflicts..." gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_mkdir_p "$gentop" save_oldobjs=$oldobjs oldobjs= counter=1 for obj in $save_oldobjs do func_basename "$obj" objbase="$func_basename_result" case " $oldobjs " in " ") oldobjs=$obj ;; *[\ /]"$objbase "*) while :; do # Make sure we don't pick an alternate name that also # overlaps. newobj=lt$counter-$objbase func_arith $counter + 1 counter=$func_arith_result case " $oldobjs " in *[\ /]"$newobj "*) ;; *) if test ! -f "$gentop/$newobj"; then break; fi ;; esac done func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" oldobjs="$oldobjs $gentop/$newobj" ;; *) oldobjs="$oldobjs $obj" ;; esac done fi eval cmds=\"$old_archive_cmds\" func_len " $cmds" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts func_verbose "using piecewise archive linking..." save_RANLIB=$RANLIB RANLIB=: objlist= concat_cmds= save_oldobjs=$oldobjs oldobjs= # Is there a better way of finding the last object in the list? for obj in $save_oldobjs do last_oldobj=$obj done eval test_cmds=\"$old_archive_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 for obj in $save_oldobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result func_append objlist " $obj" if test "$len" -lt "$max_cmd_len"; then : else # the above command should be used before it gets too long oldobjs=$objlist if test "$obj" = "$last_oldobj" ; then RANLIB=$save_RANLIB fi test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" objlist= len=$len0 fi done RANLIB=$save_RANLIB oldobjs=$objlist if test "X$oldobjs" = "X" ; then eval cmds=\"\$concat_cmds\" else eval cmds=\"\$concat_cmds~\$old_archive_cmds\" fi fi fi func_execute_cmds "$cmds" 'exit $?' done test -n "$generated" && \ func_show_eval "${RM}r$generated" # Now create the libtool archive. case $output in *.la) old_library= test "$build_old_libs" = yes && old_library="$libname.$libext" func_verbose "creating $output" # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` if test "$hardcode_automatic" = yes ; then relink_command= fi # Only create the output if not a dry run. $opt_dry_run || { for installed in no yes; do if test "$installed" = yes; then if test -z "$install_libdir"; then break fi output="$output_objdir/$outputname"i # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do case $deplib in *.la) func_basename "$deplib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" newdependency_libs="$newdependency_libs $libdir/$name" ;; *) newdependency_libs="$newdependency_libs $deplib" ;; esac done dependency_libs="$newdependency_libs" newdlfiles= for lib in $dlfiles; do case $lib in *.la) func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" newdlfiles="$newdlfiles $libdir/$name" ;; *) newdlfiles="$newdlfiles $lib" ;; esac done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in *.la) # Only pass preopened files to the pseudo-archive (for # eventual linking with the app. that links it) if we # didn't already link the preopened objects directly into # the library: func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" newdlprefiles="$newdlprefiles $libdir/$name" ;; esac done dlprefiles="$newdlprefiles" else newdlfiles= for lib in $dlfiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlfiles="$newdlfiles $abs" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlprefiles="$newdlprefiles $abs" done dlprefiles="$newdlprefiles" fi $RM $output # place dlname in correct position for cygwin tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; esac $ECHO > $output "\ # $outputname - a libtool library file # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='$tdlname' # Names of this library. library_names='$library_names' # The name of the static archive. old_library='$old_library' # Linker flags that can not go in dependency_libs. inherited_linker_flags='$new_inherited_linker_flags' # Libraries that this one depends upon. dependency_libs='$dependency_libs' # Names of additional weak libraries provided by this library weak_library_names='$weak_libs' # Version information for $libname. current=$current age=$age revision=$revision # Is this an already installed library? installed=$installed # Should we warn about portability when linking against -modules? shouldnotlink=$module # Files to dlopen/dlpreopen dlopen='$dlfiles' dlpreopen='$dlprefiles' # Directory that this library needs to be installed in: libdir='$install_libdir'" if test "$installed" = no && test "$need_relink" = yes; then $ECHO >> $output "\ relink_command=\"$relink_command\"" fi done } # Do a symbolic link so that the libtool archive can be found in # LD_LIBRARY_PATH before the program is installed. func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' ;; esac exit $EXIT_SUCCESS } { test "$mode" = link || test "$mode" = relink; } && func_mode_link ${1+"$@"} # func_mode_uninstall arg... func_mode_uninstall () { $opt_debug RM="$nonopt" files= rmforce= exit_status=0 # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" for arg do case $arg in -f) RM="$RM $arg"; rmforce=yes ;; -*) RM="$RM $arg" ;; *) files="$files $arg" ;; esac done test -z "$RM" && \ func_fatal_help "you must specify an RM program" rmdirs= origobjdir="$objdir" for file in $files; do func_dirname "$file" "" "." dir="$func_dirname_result" if test "X$dir" = X.; then objdir="$origobjdir" else objdir="$dir/$origobjdir" fi func_basename "$file" name="$func_basename_result" test "$mode" = uninstall && objdir="$dir" # Remember objdir for removal later, being careful to avoid duplicates if test "$mode" = clean; then case " $rmdirs " in *" $objdir "*) ;; *) rmdirs="$rmdirs $objdir" ;; esac fi # Don't error if the file doesn't exist and rm -f was used. if { test -L "$file"; } >/dev/null 2>&1 || { test -h "$file"; } >/dev/null 2>&1 || test -f "$file"; then : elif test -d "$file"; then exit_status=1 continue elif test "$rmforce" = yes; then continue fi rmfiles="$file" case $name in *.la) # Possibly a libtool archive, so verify it. if func_lalib_p "$file"; then func_source $dir/$name # Delete the libtool libraries and symlinks. for n in $library_names; do rmfiles="$rmfiles $objdir/$n" done test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" case "$mode" in clean) case " $library_names " in # " " in the beginning catches empty $dlname *" $dlname "*) ;; *) rmfiles="$rmfiles $objdir/$dlname" ;; esac test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" ;; uninstall) if test -n "$library_names"; then # Do each command in the postuninstall commands. func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi # FIXME: should reinstall the best remaining shared library. ;; esac fi ;; *.lo) # Possibly a libtool object, so verify it. if func_lalib_p "$file"; then # Read the .lo file func_source $dir/$name # Add PIC object to the list of files to remove. if test -n "$pic_object" && test "$pic_object" != none; then rmfiles="$rmfiles $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. if test -n "$non_pic_object" && test "$non_pic_object" != none; then rmfiles="$rmfiles $dir/$non_pic_object" fi fi ;; *) if test "$mode" = clean ; then noexename=$name case $file in *.exe) func_stripname '' '.exe' "$file" file=$func_stripname_result func_stripname '' '.exe' "$name" noexename=$func_stripname_result # $file with .exe has already been added to rmfiles, # add $file without .exe rmfiles="$rmfiles $file" ;; esac # Do a test to see if this is a libtool program. if func_ltwrapper_p "$file"; then if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" relink_command= func_source $func_ltwrapper_scriptname_result rmfiles="$rmfiles $func_ltwrapper_scriptname_result" else relink_command= func_source $dir/$noexename fi # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" if test "$fast_install" = yes && test -n "$relink_command"; then rmfiles="$rmfiles $objdir/lt-$name" fi if test "X$noexename" != "X$name" ; then rmfiles="$rmfiles $objdir/lt-${noexename}.c" fi fi fi ;; esac func_show_eval "$RM $rmfiles" 'exit_status=1' done objdir="$origobjdir" # Try to remove the ${objdir}s in the directories where we deleted files for dir in $rmdirs; do if test -d "$dir"; then func_show_eval "rmdir $dir >/dev/null 2>&1" fi done exit $exit_status } { test "$mode" = uninstall || test "$mode" = clean; } && func_mode_uninstall ${1+"$@"} test -z "$mode" && { help="$generic_help" func_fatal_help "you must specify a MODE" } test -z "$exec_cmd" && \ func_fatal_help "invalid operation mode \`$mode'" if test -n "$exec_cmd"; then eval exec "$exec_cmd" exit $EXIT_FAILURE fi exit $exit_status # The TAGs below are defined such that we never get into a situation # in which we disable both kinds of libraries. Given conflicting # choices, we go for a static library, that is the most portable, # since we can't tell whether shared libraries were disabled because # the user asked for that or because the platform doesn't support # them. This is particularly important on AIX, because we don't # support having both static and shared libraries enabled at the same # time on that platform, so we default to a shared-only configuration. # If a disable-shared tag is given, we'll fallback to a static-only # configuration. But we'll never go from static-only to shared-only. # ### BEGIN LIBTOOL TAG CONFIG: disable-shared build_libtool_libs=no build_old_libs=yes # ### END LIBTOOL TAG CONFIG: disable-shared # ### BEGIN LIBTOOL TAG CONFIG: disable-static build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` # ### END LIBTOOL TAG CONFIG: disable-static # Local Variables: # mode:shell-script # sh-indentation:2 # End: # vi:sw=2 pidgin-otr-4.0.0/Makefile.mingw0000644000175000017500000001115612020421667013274 00000000000000WIN32=1 # The version number to put in the plugin info PIDGIN_OTR_VERSION = 4.0.0 # Name of the gettext domain GETTEXT_PACKAGE = pidgin-otr # Replace this with the path to the pidgin and purple headers PIDGIN_HEADERS ?= -I/usr/i586-mingw32msvc/include/pidgin \ -I/usr/i586-mingw32msvc/include/pidgin/win32 PURPLE_HEADERS ?= -I/usr/i586-mingw32msvc/include/libpurple \ -I/usr/i586-mingw32msvc/include/libpurple/win32 # Replace this with the path to the extracted GTK+ "all-in-one" win32 bundle GTK_WIN32_BUNDLE ?= /usr/i586-mingw32msvc/misc/gtk_bundle # Replace this with the to path DLL files from a Win32 Pidgin distributable # (i.e. pidgin.dll and libpurple.dll) PIDGIN_WIN32_LIBS ?= /usr/i586-mingw32msvc/misc/pidgin_dlls # If you have a pkg-config that finds the win32 versions, you can use it # instead of the -I lines below #GTK_HDRS ?= `pkg-config --cflags glib-2.0 gtk+-2.0` GTK_HDRS ?= -I$(GTK_WIN32_BUNDLE)/include \ -I$(GTK_WIN32_BUNDLE)/include/gtk-2.0 \ -I$(GTK_WIN32_BUNDLE)/include/glib-2.0 \ -I$(GTK_WIN32_BUNDLE)/include/cairo \ -I$(GTK_WIN32_BUNDLE)/include/pango-1.0 \ -I$(GTK_WIN32_BUNDLE)/include/atk-1.0 \ -I$(GTK_WIN32_BUNDLE)/include/gdk-pixbuf-2.0 \ -I$(GTK_WIN32_BUNDLE)/lib/glib-2.0/include \ -I$(GTK_WIN32_BUNDLE)/lib/gtk-2.0/include # The location of the libotr include files. Note that if, for example, # the full path of message.h is /usr/include/libotr/message.h, you # should put /usr/include on the next line, not /usr/include/libotr LIBOTRINCDIR = /usr/i586-mingw32msvc/include # The locataion of libotr.a. LIBOTRLIBDIR = /usr/i586-mingw32msvc/lib # Location of libintl.h LIBINTLINCDIR = /usr/i586-mingw32msvc/include # Location of intl.dll LIBINTLLIBDIR = /usr/i586-mingw32msvc/lib # Installed location of libotr toolkit LIBOTRBINDIR = /usr/i586-mingw32msvc/bin # Source location of libotr LIBOTRSRCDIR = ../libotr # The target TARGET = pidgin-otr.dll # The target zipfile ZIPFILE = pidgin-otr-$(PIDGIN_OTR_VERSION).zip # Compiling with -fPIE and linking with -pie causes the plugin to crash # on load, so we'll skip those. CC_HARDENING_OPTIONS ?= -fstack-protector-all -Wstack-protector -fwrapv \ --param ssp-buffer-size=1 -fno-strict-overflow -Wall -Wextra \ -Wno-unused-parameter -Wno-missing-field-initializers -Wformat-security # In theory, we'd also like the following: # LD_HARDENING_OPTIONS ?= -dynamicbase --nxcompat -pie -z relro -z now LD_HARDENING_OPTIONS ?= --dynamicbase --nxcompat CC = i586-mingw32msvc-gcc LDFLAGS = -Wl,--enable-auto-image-base $(LD_HARDENING_OPTIONS) LDLIBS = $(LIBOTRLIBDIR)/libotr.a -L$(GTK_WIN32_BUNDLE)/lib \ -L$(PIDGIN_WIN32_LIBS) -lgtk-win32-2.0 -lglib-2.0 \ -lgdk_pixbuf-2.0 -lgobject-2.0 -lpidgin -llibpurple \ -lgcrypt -lgpg-error -L$(LIBINTLLIBDIR) -lintl -lssp CC ?= gcc override CFLAGS += -g -O2 -Wall $(CC_HARDENING_OPTIONS) \ $(PIDGIN_HEADERS) $(PURPLE_HEADERS) \ $(GTK_HDRS) -I$(LIBOTRINCDIR) $(FPIC) -DUSING_GTK -DPURPLE_PLUGINS \ -DPIDGIN_OTR_VERSION=\"$(PIDGIN_OTR_VERSION)\" \ -I$(LIBINTLINCDIR) -DENABLE_NLS \ -DGETTEXT_PACKAGE=\"$(GETTEXT_PACKAGE)\" #-DPIDGIN_NAME=\"Pidgin\" all: $(TARGET) $(MAKE) -C po -f Makefile.mingw $(TARGET): otr-plugin.o ui.o dialogs.o gtk-ui.o gtk-dialog.o tooltipmenu.o $(CC) -g -shared $(LDFLAGS) $^ -o $@ $(LDLIBS) clean: rm -f *.o rm -f $(TARGET) $(MAKE) -C po -f Makefile.mingw clean distclean: clean $(MAKE) -C po -f Makefile.mingw distclean ## Prepare the win32_export directory prepare_win32_export: all mkdir win32_export # Copy pieces over from the libotr source dir for f in otr_mackey.exe otr_parse.exe otr_remac.exe otr_modify.exe \ otr_readforge.exe otr_sesskeys.exe; do \ cp -a $(LIBOTRBINDIR)/$$f win32_export/; done cp -a $(LIBOTRSRCDIR)/README win32_export/README.Toolkit.txt cp -a $(LIBOTRSRCDIR)/Protocol-v3.html win32_export/Protocol-v3.html cp -a $(LIBOTRSRCDIR)/COPYING win32_export/COPYING.txt cp -a $(LIBOTRSRCDIR)/COPYING.LIB win32_export/COPYING.LIB.txt cp -a $(TARGET) win32_export/ cp -a README win32_export/README.txt cp -a packaging/windows/pidgin-otr.nsi win32_export/ for i in po/*.gmo; do \ l=`basename $$i .gmo`; \ mkdir -p win32_export/locale/$$l/LC_MESSAGES; \ cp -a $$i win32_export/locale/$$l/LC_MESSAGES/pidgin-otr.mo; \ done cd win32_export; \ i586-mingw32msvc-strip *.exe *.dll; \ perl -pi -e 's/$$/\r/' README.Toolkit.txt Protocol-v3.html \ COPYING.txt COPYING.LIB.txt README.txt; installer: prepare_win32_export makensis packaging/windows/pidgin-otr.nsi rm -rf win32_export ## Package up all the pieces needed to build the installer zip: prepare_win32_export rm -f $(ZIPFILE) cd win32_export; \ zip -r $(ZIPFILE) ./*; \ mv $(ZIPFILE) ../; rm -rf win32_export pidgin-otr-4.0.0/Makefile.static0000644000175000017500000000130611754224345013445 00000000000000LIBOTRDIR?=/usr/lib LIBGCRYPTDIR?=/usr/lib .libs/pidgin-otr.so: FORCE # Build everything from the standard Makefile make # Link everything, including libotr and libgcrypt, together into # a single .o file ld -r .libs/otr-plugin.o .libs/ui.o .libs/dialogs.o .libs/gtk-ui.o \ .libs/gtk-dialog.o .libs/tooltipmenu.o $(LIBOTRDIR)/libotr.a \ $(LIBGCRYPTDIR)/libgcrypt.a $(LIBGCRYPTDIR)/libgpg-error.a \ -o .libs/pidgin-otr-shared.o # Make all the libgcrypt references local to that .o file objcopy -w -L '*gcry*' .libs/pidgin-otr-shared.o \ .libs/pidgin-otr-static.o # Turn the .o into a .so gcc -shared .libs/pidgin-otr-static.o -Wl,-soname -Wl,pidgin-otr.so \ -o .libs/pidgin-otr.so FORCE: pidgin-otr-4.0.0/NEWS0000644000175000017500000003056512020421667011220 0000000000000024 Aug 2012: - Release 4.0.0 21 Jun 2012: - Fixed an issue that happened when enabling the OTR plugin while a conversation is open. - Release 4.0.0-beta2 7 Jun 2012: - The plugin now supports multiple OTR conversations with the same buddy who is logged in at multiple locations. In this case, a new OTR menu will appear, which allows you to select which session an outgoing message is indended for. Note that concurrent SMP authentications with the same buddy who is logged in multiple times is not yet supported (starting a second authentication will end the first). - During a private conversation with a buddy, an incoming unencrypted message will now trigger the regular incoming message notifications. In Pidgin this includes showing the message in the top-right notification area, if it is normally configured to do so. - New Italian, Swedish, Polish and Vietnamese translations. Updates to the French translation. - When a private conversation begins, the plugin will indicate whether Pidgin is configured to log the conversation. - By default, OTR conversations will not be logged by Pidgin. - Fingerprints in the manual authentication dialog are now selectable - The plugin will no longer delete the OTR menus if a non-foreground conversation window is closed. - Except on WIN32, the plugin will now set the umask to 0077 before creating the otr.* files in the purple directory so that they end up mode 0600. - The menu item now says "Reauthenticate buddy" when the buddy is already authenticated. - Release 4.0.0-beta1 28 May 2008: - The functionality of the OTR button has now moved to a menu. There's an "OTR" menu, as well as an icon showing the current OTR state of each active conversation in the window. - New OTR icons from - OTR icons show up inline in the conversation window when the OTR status changes. - Buddy authentication has been revamped, based on the user study published in SOUPS 2008. The default is now to choose a question and an answer only you and the buddy should know. The question is displayed to the buddy, who is prompted for the answer. The "shared secret" and "fingerprint" authentication methods are still available. - Translations for Arabic, German, Russian, Hungarian 1 Aug 2007: - Released 3.1.0 31 Jul 2007: - Translations for English, Dutch, Spanish, French, Slovak 24 Jul 2007: - Added option to not log OTR conversations - Large messages are now fragmented transparently instead of failing - Removed "view secure session id" and "verify fingerprint" options from OTR button menu. Added "authenticate buddy" option in its place. This new option allows you to authenticate your buddies by entering some secret that only the two of you know, rather than by using a long user-unfriendly sequence of hex characters. [The old "verify fingerprint" dialog is still available via an "Advanced..." button from the new "authenticate buddy" dialog.] 06 May 2007: - Ported to Pidgin 2.0.0 02 Nov 2005: - Released 3.0.0 16 Oct 2005: - There are now four states a conversation can be in: * Not Private (not using OTR) * Unverified (using OTR, but to a fingerprint that hasn't been verified, so you are subject to a straightforward active attack) * Private (using OTR with a verified fingerprint) * Finished (the other person has ended his side of the OTR conversation, so we won't send any more messages at all until we either end our side, or start a new OTR conversatrion) - There are new icons for these states that appear in the OTR button. 24 Jun 2005: - Right-clicking the OTR button now produces an OTR menu, with options to start or end the private conversation, verify the fingerprint, view the secure session id, or get help. - The OTR button obeys the user's requested style (text only, pictures only, pictures and text, none). Note that if the user chooses "none", there's currently no way to reach the aforementioned menu. - The "private connection established", "private connection refreshed", and "private connection ended" messages no longer pop up dialog boxes. Instead, they appear inline in the conversation window. The session id and fingerprint which used to appear in the "private connection established" dialog are now viewable via the OTR button right-click menu. 27 May 2005: - The OTR button no longer disappears if you change your button style in the gaim preferences. - There is now a right-click context menu on the OTR button. 19 May 2005: - OTR doesn't work over IRC (since IRC's maximum message size is too small for a Key Exchange Message to fit), so don't even provide the OTR Settings buddy-menu option or the OTR conversation window button for IRC. 03 May 2005: - Released 2.0.2 - Fix to co-exist more nicely with other encrypting gaim plugins. 01 Mar 2005: - Initial autoconfiscation, thanks to Greg Troxel . 23 Feb 2005: - Released 2.0.1 22 Feb 2005: - Removed people without fingerprints from the Known Fingerprints list - The column heads in the Known Fingerprints list cause sorting to happen in the expected way. 08 Feb 2005: - Released 2.0.0 - Clicking the OTR button produces a notice in the conversation window that it's doing something. 30 Jan 2005: - Added default and per-buddy policy selection: never use OTR, OTR only if manually requested, automatically start OTR if possible, refuse to *not* use OTR. - The OTR: button disappears if a particular buddy is set to never use OTR. - Resend the last message if it caused a re-keying. - OTR control messages are no longer displayed as if they were received as IM messages. - New multi-page UI - Send a control message to your buddy if you terminate a private conversation with him. 27 Jan 2005: - Updated gaim-otr to match libotr 2.0.0 API. 23 Jan 2005: - Separated gtk-specific code from general gaim code, with help from Evan Schoenberg . 18 Jan 2005: - Released 1.0.3 - Split gaim-otr and libotr into separate packages. 13 Jan 2005: - Generate private keys automatically, if needed. Show a Please Wait dialog while this is happening. - We may as well try to use the "tag" method of checking for OTR, even when we don't already know a fingerprint for the correspondent. - Add version checking to the otrl_init() call. 12 Jan 2005: - Refactored the logic parts of gaim-otr into libotr, so they can be shared by other libotr-enabled apps. 21 Dec 2004: - Released 1.0.2 - If a Man-in-the-Middle steals both Alice's and Bob's DSA private keys, he can perform a birthday attack to try to get his session id with each end to match. Since the session id was only 64 bits long, his work was only 2^32, which is not enough. We now make the session id the whole SHA-1 hash, instead of truncating it. - Made otr_sesskeys output the calculated public key as well, for added ease of forging messages when you don't know any plaintext. 14 Dec 2004: - Released 1.0.1 - Added a more sensible error message in the event that we receive our own OTR Key Exchange messages. - If we're about to send a plaintext message to a correspondent for whom we've got a fingerprint, append a special (whitespace) OTR tag sequence. The other side (if in fact running OTR) will recognize it and start a Key Exchange. 12 Dec 2004: - Released 1.0.0 11 Dec 2004: - OTR button now gets sensitized and desensitized along with the other buttons in the conversation window when you log in and out of accounts. 10 Dec 2004: - Released 0.9.9rc2 - Heartbeats now only get sent if (1) we have just received a message, and (2) we haven't sent one to that user in over a minute. 09 Dec 2004: - Back out of the sending of heartbeats. They were causing too many problems. It seems some networks don't let buddies know when you log out, and then you get a dialog box "unable to send message" each minute. :-( 08 Dec 2004: - Released 0.9.9rc1 - Removed the 100 private connection limit, by not using a fixed amount of secure memory. Unfortuantely, this means that *no* memory is pinned any more, but pinning only ever happened before in the unlikely event you ran gaim as root. - Changed the "Private connection with (username) refreshed" dialog at Paul's request so that it's no longer in "scary" "evil" bold, and rephrased it so it's less likely to be misread as "refused" instead of "refreshed". ;-) - We now send heartbeats (OTR Data Messages with an empty message part) once a minute, to anyone we're confident is still online. If both sides are doing this, then keys get rotated regularly, even if one or both sides aren't actively typing. This aids perfect forward secrecy. 04 Dec 2004: - Fixed a bug wherein multi-person chat windows would get the OTR button in their button bar if the OTR plugin was enabled when one of them was active. 03 Dec 2004: - Released 0.9.1 02 Dec 2004: - Clicking "OTR: Private" when you're already private will display an info dialog letting you know the connection was refreshed (assuming it actually is; if the other side isn't running OTR at all, the dialog doesn't show, and if the other side had lost its private connection, a new one will be established, with the "new private connection" dialog displayed to each side (as before)). - The toolip for "OTR: Private" is now "Refresh the private connection". - "make install" now depends on "make all". - Added man page for OTR toolkit programs - Log a debug message when we receive and discard a heartbeat 01 Dec 2004: - Fixed the Makefiles so that "make clean" also removes the binaries - Fixed the Makefiles so that they install into DESTDIR - Added packaging/debian 30 Nov 2004: - Released 0.9.0 - Included the OTR Messaging Toolkit. See the README for details. 28 Nov 2004: - Finished the Protocol document - Changed the name of the plugin binary from "otr-plugin.so" to "gaim-otr.so". *** NOTE: this means you'll have to (1) remove the old otr-plugin.so file from your plugins directory, and (2) re-enable the Off-the-Record Messaging plugin in the Preferences panel. - Included MAC keys used to create messages in the revealed MAC section of the Data message, in addition to MAC keys used to verify messages. - Set all exported symbols to start with otrl_ (for the library) or otrg_ (for the gaim plugin), in preparation for moving the pieces into their own directories. - If we receive a Data message with no actual message in it, don't display it to the user. This may eventually be useful for doing "heartbeat" key rotations. - Separated libotr and gaim-otr into their own directories. 27 Nov 2004: - Switched from using gaim_notify_* to a slightly modified version that doesn't grab the focus 26 Nov 2004: - Put all the cipher operations in secure memory. This makes each private connection take 9472 bytes of secure memory, so we up the available amount of secure memory to 100 times that. Eventually, we'd like to make this dynamically grow. 25 Nov 2004: - Released 0.8.3 - Don't put the DSA keys in libgcrypt secure memory, since (a) we read them off disk anyway, and (b) we want to avoid running out of secure memory. - Removed the "Do you want to start a private conversation" dialogs when one side in encrypted and the other side isn't, and instead just try to start one if we know for sure the other side supports it. - Sped up the DH computations by using a 320-bit exponent. 23 Nov 2004: - Released 0.8.2 - There was a crash if you received an OTR Query before setting up a private key. Fixed. - The fingerprint in the UI is now selectable, for cut/paste. - *** Protocol change. We're no longer backward compatible. - The "revealed MAC keys" moved out of the MAC'd region of the data packet. It's not wrong where it is, but it's more obviously correct in the new place. 22 Nov 2004: - Released 0.8.1 - Jabber wasn't working, for two reasons: - it sticks ... around the message - it refers to the same user by multiple names; e.g. "user@jabber.org" vs. "user@jabber.org/Gaim" Both are now fixed: we look for the OTR message anywhere in the packet now, not just at the beginning, and we normalize all usernames. - Each account now has its own private key / fingerprint - This is so you don't automatically leak the information that the accounts are owned by the same person - There's a better indicator of private / not private status in the conversation window, which you can click to start the private communication. 21 Nov 2004: - Initial 0.8.0 release pidgin-otr-4.0.0/INSTALL0000644000175000017500000000362612020421667011550 00000000000000REQUIREMENTS To compile the OTR plugin for pidgin, you'll need at least: - libgpg-error 1.0 [ftp://ftp.gnupg.org/gcrypt/libgpg-error/] - libgcrypt 1.2.0 [ftp://ftp.gnupg.org/gcrypt/libgcrypt/] - libotr 3.1.0 [http://otr.cypherpunks.ca/] - glib 2.6 [http://www.gtk.org/download/] - gtk+ 2.6 [http://www.gtk.org/download/] - pidgin 2.x [http://pidgin.im/] You'll also need the usual autotools, such as automake-1.9, autoreconf, libtool, intltool, etc. If you install these with a package manager, you'll probably need the -dev or -devel versions of the packages. COMPILING (non-Win32) If you're got a CVS copy, you will need to regenerate the configure script using: intltoolize --force --copy autoreconf -s -i [If you installed libotr.m4 somewhere that autoreconf can't find it, you can try putting "ACLOCAL_FLAGS= -I /path/to/share/aclocal" at the top of Makefile.am.] Once you have the configure script (which comes with the source deistribution), run it with any options that may be necessary for your system. Some examples: Linux: ./configure --prefix=/usr --mandir=/usr/share/man NETBSD: CPPFLAGS="-I/usr/pkg/include" LDFLAGS="-R/usr/pkg/lib -L/usr/pkg/lib" \ ./configure --prefix=/usr/pkg Once the configure script writes a Makefile, you should be able to just run "make". If you want a plugin that has libgcrypt linked statically, use "make -f Makefile.static". Makefile.static assumes libotr.a and libgcrypt.a are available in /usr/lib. If they're somewhere else, use something like "LIBOTRDIR=/usr/local/lib make -f Makefile.static". COMPILING (Win32) Use the provided Makefile.mingw: make -f Makefile.mingw See INSTALL.mingw for a few hints. INSTALLATION You should be able to simply do "make install". If you want to install somewhere other than / (this is useful for package creators), use something like "make DESTDIR=/path/to/install/to install". pidgin-otr-4.0.0/AUTHORS0000644000175000017500000000032212020421667011555 00000000000000Off-the-Record Messaging plugin for pidgin Authors: Ian Goldberg, Rob Smits, Chris Alexander, Willy Lew, Lisa Du, Nikita Borisov See the README file for mailing list information pidgin-otr-4.0.0/gtk-dialog.c0000644000175000017500000031422412020740343012677 00000000000000/* * Off-the-Record Messaging plugin for pidgin * Copyright (C) 2004-2012 Ian Goldberg, Rob Smits, * Chris Alexander, Willy Lew, * Lisa Du, Nikita Borisov * * * This program is free software; you can redistribute it and/or modify * it under the terms of version 2 of the GNU General Public License as * published by the Free Software Foundation. * * 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 */ /* config.h */ #ifdef HAVE_CONFIG_H #include "config.h" #endif /* system headers */ #include #include #include /* gcrypt headers */ #include /* purple headers */ #include "version.h" #include "pidginstock.h" #include "plugin.h" #include "notify.h" #include "gtkconv.h" #include "gtkutils.h" #include "gtkimhtml.h" #include "util.h" #include "core.h" #include "gtkmenutray.h" #include "tooltipmenu.h" #ifdef ENABLE_NLS /* internationalisation headers */ #include #endif /* libotr headers */ #include #include #include #include #include #include /* purple-otr headers */ #include "otr-plugin.h" #include "dialogs.h" #include "gtk-dialog.h" #include "ui.h" #include "otr-icons.h" static GHashTable * otr_win_menus = 0; static GHashTable * otr_win_status = 0; static int img_id_not_private = 0; static int img_id_unverified = 0; static int img_id_private = 0; static int img_id_finished = 0; typedef struct { ConnContext *context; /* The context used to fire library code */ GtkEntry* question_entry; /* The text entry field containing the user * question */ GtkEntry *entry; /* The text entry field containing the secret */ int smp_type; /* Whether the SMP type is based on question * challenge (0) or shared secret (1) */ gboolean responder; /* Whether or not this is the first side to give * their secret */ } SmpResponsePair; /* Information used by the plugin that is specific to both the * application and connection. */ typedef struct dialog_context_data { GtkWidget *smp_secret_dialog; SmpResponsePair *smp_secret_smppair; GtkWidget *smp_progress_dialog; GtkWidget *smp_progress_bar; GtkWidget *smp_progress_label; otrl_instag_t their_instance; } SMPData; typedef struct { SmpResponsePair *smppair; GtkEntry *one_way_entry; GtkEntry *two_way_entry; GtkWidget *notebook; } AuthSignalData; typedef struct { enum { convctx_none, convctx_conv, convctx_ctx } convctx_type; PurpleConversation *conv; ConnContext *context; } ConvOrContext; static gint get_new_instance_index(PurpleConversation *conv) { gint * max_index = (gint *) purple_conversation_get_data(conv, "otr-max_idx"); *max_index = (*max_index) + 1; return *max_index; } static gint get_context_instance_to_index(PurpleConversation *conv, ConnContext *context) { GHashTable * conv_to_idx_map = purple_conversation_get_data(conv, "otr-conv_to_idx"); gpointer index = NULL; if (!g_hash_table_lookup_extended(conv_to_idx_map, context, NULL, &index)) { index = g_malloc(sizeof(gint)); *(gint *)index = get_new_instance_index(conv); g_hash_table_replace(conv_to_idx_map, context, index); } return *(gint *)index; } static void close_progress_window(SMPData *smp_data) { if (smp_data->smp_progress_dialog) { gtk_dialog_response(GTK_DIALOG(smp_data->smp_progress_dialog), GTK_RESPONSE_REJECT); } smp_data->smp_progress_dialog = NULL; smp_data->smp_progress_bar = NULL; smp_data->smp_progress_label = NULL; } static void otrg_gtk_dialog_free_smp_data(PurpleConversation *conv) { SMPData *smp_data = purple_conversation_get_data(conv, "otr-smpdata"); if (!smp_data) return; if (smp_data->smp_secret_dialog) { gtk_dialog_response(GTK_DIALOG(smp_data->smp_secret_dialog), GTK_RESPONSE_REJECT); } smp_data->smp_secret_dialog = NULL; smp_data->smp_secret_smppair = NULL; close_progress_window(smp_data); free(smp_data); g_hash_table_remove(conv->data, "otr-smpdata"); } static void otrg_gtk_dialog_add_smp_data(PurpleConversation *conv) { SMPData *smp_data = malloc(sizeof(SMPData)); smp_data->smp_secret_dialog = NULL; smp_data->smp_secret_smppair = NULL; smp_data->smp_progress_dialog = NULL; smp_data->smp_progress_bar = NULL; smp_data->smp_progress_label = NULL; /* Chosen as initialized value since libotr should never allow * this as a "their_instance" value */ smp_data->their_instance = OTRL_INSTAG_BEST; purple_conversation_set_data(conv, "otr-smpdata", smp_data); } static GtkWidget *otr_icon(GtkWidget *image, TrustLevel level, gboolean sensitivity) { GdkPixbuf *pixbuf = NULL; const guint8 *data = NULL; switch(level) { case TRUST_NOT_PRIVATE: data = not_private_pixbuf; break; case TRUST_UNVERIFIED: data = unverified_pixbuf; break; case TRUST_PRIVATE: data = private_pixbuf; break; case TRUST_FINISHED: data = finished_pixbuf; break; } pixbuf = gdk_pixbuf_new_from_inline(-1, data, FALSE, NULL); if (image) { gtk_image_set_from_pixbuf(GTK_IMAGE(image), pixbuf); } else { image = gtk_image_new_from_pixbuf(pixbuf); } gdk_pixbuf_unref(pixbuf); gtk_widget_set_sensitive (image, sensitivity); return image; } static void message_response_cb(GtkDialog *dialog, gint id, GtkWidget *widget) { gtk_widget_destroy(GTK_WIDGET(widget)); } /* Forward declarations for the benefit of smp_message_response_cb/redraw * authvbox */ static void verify_fingerprint(GtkWindow *parent, Fingerprint *fprint); static void add_vrfy_fingerprint(GtkWidget *vbox, void *data); static struct vrfy_fingerprint_data* vrfy_fingerprint_data_new( Fingerprint *fprint); static void vrfy_fingerprint_destroyed(GtkWidget *w, struct vrfy_fingerprint_data *vfd); static void conversation_switched ( PurpleConversation *conv, void * data ); static GtkWidget *create_smp_progress_dialog(GtkWindow *parent, ConnContext *context); /* Called when a button is pressed on the "progress bar" smp dialog */ static void smp_progress_response_cb(GtkDialog *dialog, gint response, ConnContext *context) { PurpleConversation *conv = otrg_plugin_context_to_conv(context, 0); SMPData *smp_data = NULL; if (conv) { gdouble frac; smp_data = purple_conversation_get_data(conv, "otr-smpdata"); frac = gtk_progress_bar_get_fraction( GTK_PROGRESS_BAR(smp_data->smp_progress_bar)); if (frac != 0.0 && frac != 1.0 && response == GTK_RESPONSE_REJECT) { otrg_plugin_abort_smp(context); } } /* In all cases, destroy the current window */ gtk_widget_destroy(GTK_WIDGET(dialog)); /* Clean up variables pointing to the destroyed objects */ if (smp_data) { smp_data->smp_progress_bar = NULL; smp_data->smp_progress_label = NULL; smp_data->smp_progress_dialog = NULL; } } /* Called when a button is pressed on the "enter the secret" smp dialog * The data passed contains a pointer to the text entry field containing * the entered secret as well as the current context. */ static void smp_secret_response_cb(GtkDialog *dialog, gint response, AuthSignalData *auth_opt_data) { ConnContext* context; PurpleConversation *conv; SMPData *smp_data; SmpResponsePair *smppair; if (!auth_opt_data) return; smppair = auth_opt_data->smppair; if (!smppair) return; context = smppair->context; if (response == GTK_RESPONSE_ACCEPT && smppair->entry) { GtkEntry* entry = smppair->entry; char *secret; size_t secret_len; GtkEntry* question_entry = smppair->question_entry; const char *user_question = NULL; if (context == NULL || context->msgstate != OTRL_MSGSTATE_ENCRYPTED) { return; } secret = g_strdup(gtk_entry_get_text(entry)); secret_len = strlen(secret); if (smppair->responder) { otrg_plugin_continue_smp(context, (const unsigned char *)secret, secret_len); } else { if (smppair->smp_type == 0) { if (!question_entry) { return; } user_question = gtk_entry_get_text(question_entry); if (user_question == NULL || strlen(user_question) == 0) { return; } } /* pass user question here */ otrg_plugin_start_smp(context, user_question, (const unsigned char *)secret, secret_len); } g_free(secret); /* launch progress bar window */ create_smp_progress_dialog(GTK_WINDOW(dialog), context); } else if (response == GTK_RESPONSE_HELP) { char *helpurl = g_strdup_printf("%s%s&context=%s", AUTHENTICATE_HELPURL, _("?lang=en"), auth_opt_data->smppair->smp_type == 0 ? ( /* Question and Answer */ auth_opt_data->smppair->responder ? "answer" : "question" ) : auth_opt_data->smppair->smp_type == 1 ? ( /* Shared secret */ auth_opt_data->smppair->responder ? "secretresp" : "secret" ) : /* Fingerprint */ "fingerprint" ); purple_notify_uri(otrg_plugin_handle, helpurl); g_free(helpurl); /* Don't destroy the window */ return; } else { otrg_plugin_abort_smp(context); } /* In all cases except HELP, destroy the current window */ gtk_widget_destroy(GTK_WIDGET(dialog)); /* Clean up references to this window */ conv = otrg_plugin_context_to_conv(smppair->context, 0); smp_data = purple_conversation_get_data(conv, "otr-smpdata"); if (smp_data) { smp_data->smp_secret_dialog = NULL; smp_data->smp_secret_smppair = NULL; } /* Free memory */ free(auth_opt_data); free(smppair); } static void close_smp_window(PurpleConversation *conv) { SMPData *smp_data = purple_conversation_get_data(conv, "otr-smpdata"); if (smp_data && smp_data->smp_secret_dialog) { gtk_dialog_response(GTK_DIALOG(smp_data->smp_secret_dialog), GTK_RESPONSE_REJECT); } } static GtkWidget *create_dialog(GtkWindow *parent, PurpleNotifyMsgType type, const char *title, const char *primary, const char *secondary, int sensitive, GtkWidget **labelp, void (*add_custom)(GtkWidget *vbox, void *data), void *add_custom_data) { GtkWidget *dialog; GtkWidget *hbox; GtkWidget *vbox; GtkWidget *label; GtkWidget *img = NULL; char *label_text; const char *icon_name = NULL; switch (type) { case PURPLE_NOTIFY_MSG_ERROR: icon_name = PIDGIN_STOCK_DIALOG_ERROR; break; case PURPLE_NOTIFY_MSG_WARNING: icon_name = PIDGIN_STOCK_DIALOG_WARNING; break; case PURPLE_NOTIFY_MSG_INFO: icon_name = PIDGIN_STOCK_DIALOG_INFO; break; default: icon_name = NULL; break; } if (icon_name != NULL) { img = gtk_image_new_from_stock(icon_name, gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_HUGE)); gtk_misc_set_alignment(GTK_MISC(img), 0, 0); } dialog = gtk_dialog_new_with_buttons( title ? title : PIDGIN_ALERT_TITLE, parent, 0, GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, NULL); gtk_window_set_focus_on_map(GTK_WINDOW(dialog), FALSE); gtk_window_set_role(GTK_WINDOW(dialog), "notify_dialog"); g_signal_connect(G_OBJECT(dialog), "response", G_CALLBACK(message_response_cb), dialog); gtk_dialog_set_response_sensitive(GTK_DIALOG(dialog), GTK_RESPONSE_ACCEPT, sensitive); gtk_container_set_border_width(GTK_CONTAINER(dialog), 6); gtk_window_set_resizable(GTK_WINDOW(dialog), FALSE); gtk_dialog_set_has_separator(GTK_DIALOG(dialog), FALSE); gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(dialog)->vbox), 12); gtk_container_set_border_width(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), 6); hbox = gtk_hbox_new(FALSE, 12); vbox = gtk_vbox_new(FALSE, 0); gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), hbox); if (img != NULL) { gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); } label_text = g_strdup_printf( "%s%s%s", (primary ? primary : ""), (primary ? "\n\n" : ""), (secondary ? secondary : "")); label = gtk_label_new(NULL); gtk_label_set_markup(GTK_LABEL(label), label_text); gtk_label_set_selectable(GTK_LABEL(label), 1); g_free(label_text); gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); gtk_misc_set_alignment(GTK_MISC(label), 0, 0); gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); if (add_custom) { add_custom(vbox, add_custom_data); } gtk_box_pack_start(GTK_BOX(hbox), vbox, FALSE, FALSE, 0); gtk_widget_show_all(dialog); if (labelp) *labelp = label; return dialog; } static void add_to_vbox_init_one_way_auth(GtkWidget *vbox, ConnContext *context, AuthSignalData *auth_opt_data, char *question) { GtkWidget *question_entry; GtkWidget *entry; GtkWidget *label; GtkWidget *label2; char *label_text; SmpResponsePair* smppair = auth_opt_data->smppair; if (smppair->responder) { label_text = g_strdup_printf("\n%s\n", _("Your buddy is attempting to determine if he or she is really " "talking to you, or if it's someone pretending to be you. " "Your buddy has asked a question, indicated below. " "To authenticate to your buddy, enter the answer and " "click OK.")); } else { label_text = g_strdup_printf("\n%s\n", _("To authenticate using a question, pick a question whose " "answer is known only to you and your buddy. Enter this " "question and this answer, then wait for your buddy to " "enter the answer too. If the answers " "don't match, then you may be talking to an imposter.")); } label = gtk_label_new(NULL); gtk_label_set_markup(GTK_LABEL(label), label_text); gtk_label_set_selectable(GTK_LABEL(label), FALSE); g_free(label_text); gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); gtk_misc_set_alignment(GTK_MISC(label), 0, 0); gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); if (smppair->responder) { label_text = g_strdup_printf(_("This is the question asked by " "your buddy:")); } else { label_text = g_strdup_printf(_("Enter question here:")); } label = gtk_label_new(label_text); gtk_label_set_selectable(GTK_LABEL(label), FALSE); g_free(label_text); gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); gtk_misc_set_alignment(GTK_MISC(label), 0, 0); gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); if (smppair->responder && question) { label_text = g_markup_printf_escaped("%s", question); label = gtk_label_new(NULL); gtk_label_set_markup (GTK_LABEL(label), label_text); gtk_label_set_selectable(GTK_LABEL(label), FALSE); g_free(label_text); gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); gtk_misc_set_alignment(GTK_MISC(label), 0, 0); gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); smppair->question_entry = NULL; } else { /* Create the text view where the user enters their question */ question_entry = gtk_entry_new (); smppair->question_entry = GTK_ENTRY(question_entry); gtk_box_pack_start(GTK_BOX(vbox), question_entry, FALSE, FALSE, 0); } if (context->active_fingerprint->trust && context->active_fingerprint->trust[0] && !(smppair->responder)) { label2 = gtk_label_new(_("This buddy is already authenticated.")); } else { label2 = NULL; } /* Leave a blank line */ gtk_box_pack_start(GTK_BOX(vbox), gtk_label_new(NULL), FALSE, FALSE, 0); label_text = g_strdup_printf(_("Enter secret answer here " "(case sensitive):")); label = gtk_label_new(NULL); gtk_label_set_markup(GTK_LABEL(label), label_text); gtk_label_set_selectable(GTK_LABEL(label), FALSE); g_free(label_text); gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); gtk_misc_set_alignment(GTK_MISC(label), 0, 0); gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); /* Create the text view where the user enters their secret */ entry = gtk_entry_new(); gtk_entry_set_text(GTK_ENTRY(entry), ""); auth_opt_data->one_way_entry = GTK_ENTRY(entry); gtk_entry_set_activates_default(GTK_ENTRY(entry), smppair->responder); gtk_box_pack_start(GTK_BOX(vbox), entry, FALSE, FALSE, 0); /* Leave a blank line */ gtk_box_pack_start(GTK_BOX(vbox), gtk_label_new(NULL), FALSE, FALSE, 0); if (label2) { gtk_box_pack_start(GTK_BOX(vbox), label2, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox), gtk_label_new(NULL), FALSE, FALSE, 0); } } static void add_to_vbox_init_two_way_auth(GtkWidget *vbox, ConnContext *context, AuthSignalData *auth_opt_data) { GtkWidget *entry; GtkWidget *label; GtkWidget *label2; char *label_text; label_text = g_strdup_printf("\n%s\n", _("To authenticate, pick a secret known " "only to you and your buddy. Enter this secret, then " "wait for your buddy to enter it too. If the secrets " "don't match, then you may be talking to an imposter.")); label = gtk_label_new(NULL); gtk_label_set_markup(GTK_LABEL(label), label_text); gtk_label_set_selectable(GTK_LABEL(label), FALSE); g_free(label_text); gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); gtk_misc_set_alignment(GTK_MISC(label), 0, 0); gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); label_text = g_strdup_printf(_("Enter secret here:")); label = gtk_label_new(label_text); gtk_label_set_selectable(GTK_LABEL(label), FALSE); g_free(label_text); gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); gtk_misc_set_alignment(GTK_MISC(label), 0, 0); gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); /* Create the text view where the user enters their secret */ entry = gtk_entry_new(); gtk_entry_set_text(GTK_ENTRY(entry), ""); gtk_entry_set_activates_default(GTK_ENTRY(entry), TRUE); auth_opt_data->two_way_entry = GTK_ENTRY(entry); if (context->active_fingerprint->trust && context->active_fingerprint->trust[0]) { label2 = gtk_label_new(_("This buddy is already authenticated.")); } else { label2 = NULL; } gtk_box_pack_start(GTK_BOX(vbox), entry, FALSE, FALSE, 0); /* Leave a blank line */ gtk_box_pack_start(GTK_BOX(vbox), gtk_label_new(NULL), FALSE, FALSE, 0); if (label2) { gtk_box_pack_start(GTK_BOX(vbox), label2, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox), gtk_label_new(NULL), FALSE, FALSE, 0); } } static void add_to_vbox_verify_fingerprint(GtkWidget *vbox, ConnContext *context, SmpResponsePair* smppair) { char our_hash[OTRL_PRIVKEY_FPRINT_HUMAN_LEN], their_hash[OTRL_PRIVKEY_FPRINT_HUMAN_LEN]; GtkWidget *label; char *label_text; struct vrfy_fingerprint_data *vfd; PurplePlugin *p; char *proto_name; Fingerprint *fprint = context->active_fingerprint; if (fprint == NULL) return; if (fprint->fingerprint == NULL) return; label_text = g_strdup_printf("\n%s %s\n", _("To verify the fingerprint, contact your buddy via some " "other authenticated channel, such as the telephone " "or GPG-signed email. Each of you should tell your fingerprint " "to the other."), _("If everything matches up, you should chose I have " "in the menu below.")); label = gtk_label_new(NULL); gtk_label_set_markup(GTK_LABEL(label), label_text); gtk_label_set_selectable(GTK_LABEL(label), FALSE); g_free(label_text); gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); vfd = vrfy_fingerprint_data_new(fprint); strncpy(our_hash, _("[none]"), 44); our_hash[44] = '\0'; otrl_privkey_fingerprint(otrg_plugin_userstate, our_hash, context->accountname, context->protocol); otrl_privkey_hash_to_human(their_hash, fprint->fingerprint); p = purple_find_prpl(context->protocol); proto_name = (p && p->info->name) ? p->info->name : _("Unknown"); label_text = g_strdup_printf(_("Fingerprint for you, %s (%s):\n%s\n\n" "Purported fingerprint for %s:\n%s\n"), context->accountname, proto_name, our_hash, context->username, their_hash); label = gtk_label_new(NULL); gtk_label_set_markup(GTK_LABEL(label), label_text); /* Make the label containing the fingerprints selectable, but * not auto-selected. */ gtk_label_set_selectable(GTK_LABEL(label), TRUE); g_object_set(label, "can-focus", FALSE, NULL); g_free(label_text); gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); gtk_misc_set_alignment(GTK_MISC(label), 0, 0); gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); add_vrfy_fingerprint(vbox, vfd); g_signal_connect(G_OBJECT(vbox), "destroy", G_CALLBACK(vrfy_fingerprint_destroyed), vfd); } static void redraw_auth_vbox(GtkComboBox *combo, void *data) { AuthSignalData *auth_data = (AuthSignalData*) data; GtkWidget *notebook = auth_data ? auth_data->notebook : NULL; int selected; if (auth_data == NULL) return; selected = gtk_combo_box_get_active(combo); if (selected == 0) { gtk_notebook_set_current_page (GTK_NOTEBOOK(notebook), 0); auth_data->smppair->entry = auth_data->one_way_entry; auth_data->smppair->smp_type = 0; } else if (selected == 1) { gtk_notebook_set_current_page (GTK_NOTEBOOK(notebook), 1); auth_data->smppair->entry = auth_data->two_way_entry; auth_data->smppair->smp_type = 1; } else if (selected == 2) { auth_data->smppair->entry = NULL; gtk_notebook_set_current_page (GTK_NOTEBOOK(notebook), 2); auth_data->smppair->smp_type = -1; } } static void add_other_authentication_options(GtkWidget *vbox, GtkWidget *notebook, ConnContext *context, AuthSignalData *data) { GtkWidget *label; GtkWidget *combo; char *labeltext; labeltext = g_strdup_printf("\n%s", _("How would you like to authenticate your buddy?")); label = gtk_label_new(labeltext); g_free(labeltext); gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.0); gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); combo = gtk_combo_box_new_text(); gtk_combo_box_append_text(GTK_COMBO_BOX(combo), _("Question and answer")); gtk_combo_box_append_text(GTK_COMBO_BOX(combo), _("Shared secret")); gtk_combo_box_append_text(GTK_COMBO_BOX(combo), _("Manual fingerprint verification")); gtk_combo_box_set_active(GTK_COMBO_BOX(combo), 0); gtk_box_pack_start(GTK_BOX(vbox), combo, FALSE, FALSE, 0); data->notebook = notebook; g_signal_connect (combo, "changed", G_CALLBACK (redraw_auth_vbox), data); } static GtkWidget *create_smp_dialog(const char *title, const char *primary, ConnContext *context, gboolean responder, char *question) { GtkWidget *dialog; PurpleConversation *conv = otrg_plugin_context_to_conv(context, 1); SMPData *smp_data = purple_conversation_get_data(conv, "otr-smpdata"); close_progress_window(smp_data); /* If you start SMP authentication on a different context, it * will kill any existing SMP */ if (smp_data->their_instance != context->their_instance) { otrg_gtk_dialog_free_smp_data(conv); otrg_gtk_dialog_add_smp_data(conv); } if (!(smp_data->smp_secret_dialog)) { GtkWidget *hbox; GtkWidget *vbox; GtkWidget *auth_vbox; GtkWidget *label; GtkWidget *img = NULL; char *label_text; const char *icon_name = NULL; SmpResponsePair* smppair; GtkWidget *notebook; AuthSignalData *auth_opt_data; smp_data->their_instance = context->their_instance; icon_name = PIDGIN_STOCK_DIALOG_INFO; img = gtk_image_new_from_stock(icon_name, gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_HUGE)); gtk_misc_set_alignment(GTK_MISC(img), 0, 0); dialog = gtk_dialog_new_with_buttons(title ? title : PIDGIN_ALERT_TITLE, NULL, 0, GTK_STOCK_HELP, GTK_RESPONSE_HELP, GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT, _("_Authenticate"), GTK_RESPONSE_ACCEPT, NULL); gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_ACCEPT); auth_vbox = gtk_vbox_new(FALSE, 0); hbox = gtk_hbox_new(FALSE, 15); vbox = gtk_vbox_new(FALSE, 0); smppair = malloc(sizeof(SmpResponsePair)); smppair->responder = responder; smppair->context = context; notebook = gtk_notebook_new(); auth_opt_data = malloc(sizeof(AuthSignalData)); auth_opt_data->smppair = smppair; gtk_window_set_focus_on_map(GTK_WINDOW(dialog), !responder); gtk_window_set_role(GTK_WINDOW(dialog), "notify_dialog"); gtk_container_set_border_width(GTK_CONTAINER(dialog), 6); gtk_window_set_resizable(GTK_WINDOW(dialog), FALSE); gtk_dialog_set_has_separator(GTK_DIALOG(dialog), FALSE); gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(dialog)->vbox), 12); gtk_container_set_border_width(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), 6); gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), hbox); gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); label_text = g_strdup_printf( "%s\n\n%s", (primary ? primary : ""), _("Authenticating a buddy helps ensure that the person " "you are talking to is who he or she claims to be.")); label = gtk_label_new(NULL); gtk_label_set_markup(GTK_LABEL(label), label_text); gtk_label_set_selectable(GTK_LABEL(label), FALSE); g_free(label_text); gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); gtk_misc_set_alignment(GTK_MISC(label), 0, 0); gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); if (!responder) { add_other_authentication_options(vbox, notebook, context, auth_opt_data); } g_signal_connect(G_OBJECT(dialog), "response", G_CALLBACK(smp_secret_response_cb), auth_opt_data); if (!responder || (responder && question != NULL)) { GtkWidget *one_way_vbox = gtk_vbox_new(FALSE, 0); add_to_vbox_init_one_way_auth(one_way_vbox, context, auth_opt_data, question); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), one_way_vbox, gtk_label_new("0")); smppair->entry = auth_opt_data->one_way_entry; smppair->smp_type = 0; } if (!responder || (responder && question == NULL)) { GtkWidget *two_way_vbox = gtk_vbox_new(FALSE, 0); add_to_vbox_init_two_way_auth(two_way_vbox, context, auth_opt_data); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), two_way_vbox, gtk_label_new("1")); if (responder && question == NULL) { smppair->entry = auth_opt_data->two_way_entry; smppair->smp_type = 1; } } if (!responder) { GtkWidget *fingerprint_vbox = gtk_vbox_new(FALSE, 0); add_to_vbox_verify_fingerprint(fingerprint_vbox, context, smppair); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), fingerprint_vbox, gtk_label_new("2")); } gtk_notebook_set_show_tabs (GTK_NOTEBOOK(notebook), FALSE); gtk_notebook_set_show_border (GTK_NOTEBOOK(notebook), FALSE); gtk_box_pack_start(GTK_BOX(auth_vbox), notebook, FALSE, FALSE, 0); gtk_widget_show(notebook); gtk_box_pack_start(GTK_BOX(vbox), auth_vbox, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(hbox), vbox, FALSE, FALSE, 0); gtk_widget_show_all(dialog); gtk_notebook_set_current_page (GTK_NOTEBOOK(notebook), 0); if (!responder) { gtk_window_set_focus(GTK_WINDOW(dialog), GTK_WIDGET(smppair->question_entry)); } else { gtk_window_set_focus(GTK_WINDOW(dialog), GTK_WIDGET(smppair->entry)); } smp_data->smp_secret_dialog = dialog; smp_data->smp_secret_smppair = smppair; } else { /* Set the responder field to TRUE if we were passed that value, * even if the window was already up. */ if (responder) { smp_data->smp_secret_smppair->responder = responder; } } return smp_data->smp_secret_dialog; } static GtkWidget *create_smp_progress_dialog(GtkWindow *parent, ConnContext *context) { GtkWidget *dialog; GtkWidget *hbox; GtkWidget *vbox; GtkWidget *label; GtkWidget *proglabel; GtkWidget *bar; GtkWidget *img = NULL; char *label_text, *label_pat; const char *icon_name = NULL; PurpleConversation *conv; SMPData *smp_data; icon_name = PIDGIN_STOCK_DIALOG_INFO; img = gtk_image_new_from_stock(icon_name, gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_HUGE)); gtk_misc_set_alignment(GTK_MISC(img), 0, 0); dialog = gtk_dialog_new_with_buttons( context->smstate->received_question ? /* Translators: you are asked to authenticate yourself */ _("Authenticating to Buddy") : /* Translators: you asked your buddy to authenticate him/herself */ _("Authenticating Buddy"), parent, 0, GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT, GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, NULL); gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_ACCEPT); gtk_dialog_set_response_sensitive(GTK_DIALOG(dialog), GTK_RESPONSE_REJECT, 1); gtk_dialog_set_response_sensitive(GTK_DIALOG(dialog), GTK_RESPONSE_ACCEPT, 0); gtk_window_set_focus_on_map(GTK_WINDOW(dialog), FALSE); gtk_window_set_role(GTK_WINDOW(dialog), "notify_dialog"); gtk_container_set_border_width(GTK_CONTAINER(dialog), 6); gtk_window_set_resizable(GTK_WINDOW(dialog), FALSE); gtk_dialog_set_has_separator(GTK_DIALOG(dialog), FALSE); gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(dialog)->vbox), 12); gtk_container_set_border_width(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), 6); hbox = gtk_hbox_new(FALSE, 12); vbox = gtk_vbox_new(FALSE, 0); gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), hbox); gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); label_pat = g_strdup_printf("" "%s\n", context->smstate->received_question ? _("Authenticating to %s") : _("Authenticating %s")); label_text = g_strdup_printf(label_pat, context->username); g_free(label_pat); label = gtk_label_new(NULL); gtk_label_set_markup(GTK_LABEL(label), label_text); gtk_label_set_selectable(GTK_LABEL(label), 1); g_free(label_text); gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); gtk_misc_set_alignment(GTK_MISC(label), 0, 0); gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); proglabel = gtk_label_new(NULL); gtk_label_set_selectable(GTK_LABEL(proglabel), 1); gtk_label_set_line_wrap(GTK_LABEL(proglabel), TRUE); gtk_misc_set_alignment(GTK_MISC(proglabel), 0, 0); gtk_box_pack_start(GTK_BOX(vbox), proglabel, FALSE, FALSE, 0); /* Create the progress bar */ bar = gtk_progress_bar_new(); gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(bar), 0.1); gtk_box_pack_start(GTK_BOX(vbox), bar, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(hbox), vbox, FALSE, FALSE, 0); conv = otrg_plugin_context_to_conv(context, 0); smp_data = purple_conversation_get_data(conv, "otr-smpdata"); if (smp_data) { smp_data->smp_progress_dialog = dialog; smp_data->smp_progress_bar = bar; smp_data->smp_progress_label = proglabel; } gtk_label_set_text(GTK_LABEL(proglabel), _("Waiting for buddy...")); g_signal_connect(G_OBJECT(dialog), "response", G_CALLBACK(smp_progress_response_cb), context); gtk_widget_show_all(dialog); return dialog; } /* This is just like purple_notify_message, except: (a) it doesn't grab * keyboard focus, (b) the button is "OK" instead of "Close", and (c) * the labels aren't limited to 2K. */ static void otrg_gtk_dialog_notify_message(PurpleNotifyMsgType type, const char *accountname, const char *protocol, const char *username, const char *title, const char *primary, const char *secondary) { create_dialog(NULL, type, title, primary, secondary, 1, NULL, NULL, NULL); } struct s_OtrgDialogWait { GtkWidget *dialog; GtkWidget *label; }; /* Put up a Please Wait dialog, with the "OK" button desensitized. * Return a handle that must eventually be passed to * otrg_dialog_private_key_wait_done. */ static OtrgDialogWaitHandle otrg_gtk_dialog_private_key_wait_start( const char *account, const char *protocol) { PurplePlugin *p; const char *title = _("Generating private key"); const char *primary = _("Please wait"); char *secondary; const char *protocol_print; GtkWidget *label; GtkWidget *dialog; OtrgDialogWaitHandle handle; p = purple_find_prpl(protocol); protocol_print = (p ? p->info->name : _("Unknown")); /* Create the Please Wait... dialog */ secondary = g_strdup_printf(_("Generating private key for %s (%s)..."), account, protocol_print); dialog = create_dialog(NULL, PURPLE_NOTIFY_MSG_INFO, title, primary, secondary, 0, &label, NULL, NULL); handle = malloc(sizeof(struct s_OtrgDialogWait)); handle->dialog = dialog; handle->label = label; /* Make sure the dialog is actually displayed before doing any * compute-intensive stuff. */ while (gtk_events_pending ()) { gtk_main_iteration (); } g_free(secondary); return handle; } static int otrg_gtk_dialog_display_otr_message(const char *accountname, const char *protocol, const char *username, const char *msg, int force_create) { /* See if there's a conversation window we can put this in. */ PurpleConversation *conv = otrg_plugin_userinfo_to_conv(accountname, protocol, username, force_create); if (!conv) return -1; purple_conversation_write(conv, NULL, msg, PURPLE_MESSAGE_SYSTEM, time(NULL)); return 0; } /* End a Please Wait dialog. */ static void otrg_gtk_dialog_private_key_wait_done(OtrgDialogWaitHandle handle) { const char *oldmarkup; char *newmarkup; oldmarkup = gtk_label_get_label(GTK_LABEL(handle->label)); newmarkup = g_strdup_printf(_("%s Done."), oldmarkup); gtk_label_set_markup(GTK_LABEL(handle->label), newmarkup); gtk_widget_show(handle->label); gtk_dialog_set_response_sensitive(GTK_DIALOG(handle->dialog), GTK_RESPONSE_ACCEPT, 1); g_free(newmarkup); free(handle); } /* Inform the user that an unknown fingerprint was received. */ static void otrg_gtk_dialog_unknown_fingerprint(OtrlUserState us, const char *accountname, const char *protocol, const char *who, unsigned char fingerprint[20]) { PurpleConversation *conv; char *buf; ConnContext *context; int seenbefore = FALSE; /* Figure out if this is the first fingerprint we've seen for this * user. */ context = otrl_context_find(us, who, accountname, protocol, OTRL_INSTAG_MASTER, 0, NULL, NULL, NULL); if (context) { Fingerprint *fp = context->fingerprint_root.next; while(fp) { if (memcmp(fingerprint, fp->fingerprint, 20)) { /* This is a previously seen fingerprint for this user, * different from the one we were passed. */ seenbefore = TRUE; break; } fp = fp->next; } } if (seenbefore) { buf = g_strdup_printf(_("%s is contacting you from an unrecognized " "computer. You should authenticate " "this buddy."), who, AUTHENTICATE_HELPURL, _("?lang=en")); } else { buf = g_strdup_printf(_("%s has not been authenticated yet. You " "should authenticate this buddy."), who, AUTHENTICATE_HELPURL, _("?lang=en")); } conv = otrg_plugin_userinfo_to_conv(accountname, protocol, who, TRUE); purple_conversation_write(conv, NULL, buf, PURPLE_MESSAGE_SYSTEM, time(NULL)); g_free(buf); } static void otrg_gtk_dialog_clicked_connect(GtkWidget *widget, gpointer data); static void build_otr_menu(ConvOrContext *convctx, GtkWidget *menu, TrustLevel level); static void otr_refresh_otr_buttons(PurpleConversation *conv); static void otr_destroy_top_menu_objects(PurpleConversation *conv); static void otr_add_top_otr_menu(PurpleConversation *conv); static void otr_add_buddy_top_menus(PurpleConversation *conv); static void otr_check_conv_status_change(PurpleConversation *conv); static void destroy_menuitem(GtkWidget *widget, gpointer data) { gtk_widget_destroy(widget); } static void otr_build_status_submenu(PidginWindow *win, ConvOrContext *convctx, GtkWidget *menu, TrustLevel level); static void dialog_update_label_conv(PurpleConversation *conv, TrustLevel level) { GtkWidget *label; GtkWidget *icon; GtkWidget *button; GtkWidget *menu; ConvOrContext *convctx; GHashTable * conv_or_ctx_map; char *markup; PidginConversation *gtkconv = PIDGIN_CONVERSATION(conv); label = purple_conversation_get_data(conv, "otr-label"); icon = purple_conversation_get_data(conv, "otr-icon"); button = purple_conversation_get_data(conv, "otr-button"); menu = purple_conversation_get_data(conv, "otr-menu"); otr_icon(icon, level, 1); markup = g_strdup_printf(" %s", level == TRUST_FINISHED ? "#000000" : level == TRUST_PRIVATE ? "#00a000" : level == TRUST_UNVERIFIED ? "#a06000" : "#ff0000", level == TRUST_FINISHED ? _("Finished") : level == TRUST_PRIVATE ? _("Private") : level == TRUST_UNVERIFIED ? _("Unverified") : _("Not private")); gtk_label_set_markup(GTK_LABEL(label), markup); g_free(markup); gtk_tooltips_set_tip(gtkconv->tooltips, button, _("OTR"), NULL); /* Use any non-NULL value for "private", NULL for "not private" */ purple_conversation_set_data(conv, "otr-private", (level == TRUST_NOT_PRIVATE || level == TRUST_FINISHED) ? NULL : conv); /* Use any non-NULL value for "unauthenticated", NULL for * "authenticated" */ purple_conversation_set_data(conv, "otr-authenticated", (level == TRUST_PRIVATE) ? conv : NULL); /* Use any non-NULL value for "finished", NULL for "not finished" */ purple_conversation_set_data(conv, "otr-finished", level == TRUST_FINISHED ? conv : NULL); conv_or_ctx_map = purple_conversation_get_data(conv, "otr-convorctx"); convctx = g_hash_table_lookup(conv_or_ctx_map, conv); if (!convctx) { convctx = malloc(sizeof(ConvOrContext)); g_hash_table_insert(conv_or_ctx_map, conv, (gpointer)convctx); } convctx->convctx_type = convctx_conv; convctx->conv = conv; build_otr_menu(convctx, menu, level); otr_build_status_submenu(pidgin_conv_get_window(gtkconv), convctx, menu, level); conv = gtkconv->active_conv; otr_check_conv_status_change(conv); /* Update other widgets */ if (gtkconv != pidgin_conv_window_get_active_gtkconv(gtkconv->win)) { return; } otr_destroy_top_menu_objects(conv); otr_add_top_otr_menu(conv); otr_refresh_otr_buttons(conv); otr_add_buddy_top_menus(conv); } static void dialog_update_label(ConnContext *context) { PurpleAccount *account; PurpleConversation *conv; TrustLevel level = otrg_plugin_context_to_trust(context); account = purple_accounts_find(context->accountname, context->protocol); if (!account) return; conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, context->username, account); if (!conv) return; dialog_update_label_conv(conv, level); } struct vrfy_fingerprint_data { Fingerprint *fprint; /* You can use this pointer right away, but you can't rely on it sticking around for a while. Use the copied pieces below instead. */ char *accountname, *username, *protocol; otrl_instag_t their_instance; unsigned char fingerprint[20]; }; static void vrfy_fingerprint_data_free(struct vrfy_fingerprint_data *vfd) { free(vfd->accountname); free(vfd->username); free(vfd->protocol); free(vfd); } static struct vrfy_fingerprint_data* vrfy_fingerprint_data_new( Fingerprint *fprint) { struct vrfy_fingerprint_data *vfd; ConnContext *context = fprint->context; vfd = malloc(sizeof(*vfd)); vfd->fprint = fprint; vfd->accountname = strdup(context->accountname); vfd->username = strdup(context->username); vfd->protocol = strdup(context->protocol); vfd->their_instance = context->their_instance; memmove(vfd->fingerprint, fprint->fingerprint, 20); return vfd; } static void vrfy_fingerprint_destroyed(GtkWidget *w, struct vrfy_fingerprint_data *vfd) { vrfy_fingerprint_data_free(vfd); } static void vrfy_fingerprint_changed(GtkComboBox *combo, void *data) { struct vrfy_fingerprint_data *vfd = data; ConnContext *context = otrl_context_find(otrg_plugin_userstate, vfd->username, vfd->accountname, vfd->protocol, vfd->their_instance, 0, NULL, NULL, NULL); Fingerprint *fprint; int oldtrust, trust; if (context == NULL) return; fprint = otrl_context_find_fingerprint(context, vfd->fingerprint, 0, NULL); if (fprint == NULL) return; oldtrust = (fprint->trust && fprint->trust[0]); trust = gtk_combo_box_get_active(combo) == 1 ? 1 : 0; /* See if anything's changed */ if (trust != oldtrust) { otrl_context_set_trust(fprint, trust ? "verified" : ""); /* Write the new info to disk, redraw the ui, and redraw the * OTR buttons. */ otrg_plugin_write_fingerprints(); otrg_ui_update_keylist(); otrg_dialog_resensitize_all(); } } /* Add the verify widget and the help text for the verify fingerprint box. */ static void add_vrfy_fingerprint(GtkWidget *vbox, void *data) { GtkWidget *hbox; GtkWidget *combo, *label; struct vrfy_fingerprint_data *vfd = data; char *labelt; int verified = 0; if (vfd->fprint->trust && vfd->fprint->trust[0]) { verified = 1; } hbox = gtk_hbox_new(FALSE, 0); combo = gtk_combo_box_new_text(); /* Translators: the following four messages should give alternative * sentences. The user selects the first or second message in a combo box; * the third message, a new line, a fingerprint, a new line, and * the fourth message will follow it. */ gtk_combo_box_append_text(GTK_COMBO_BOX(combo), _("I have not")); /* 2nd message */ gtk_combo_box_append_text(GTK_COMBO_BOX(combo), _("I have")); gtk_combo_box_set_active(GTK_COMBO_BOX(combo), verified); /* 3rd message */ label = gtk_label_new(_(" verified that this is in fact the correct")); gtk_box_pack_start(GTK_BOX(hbox), combo, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); g_signal_connect(G_OBJECT(combo), "changed", G_CALLBACK(vrfy_fingerprint_changed), vfd); hbox = gtk_hbox_new(FALSE, 0); /* 4th message */ labelt = g_strdup_printf(_("fingerprint for %s."), vfd->username); label = gtk_label_new(labelt); g_free(labelt); gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); /* Leave a blank line */ gtk_box_pack_start(GTK_BOX(vbox), gtk_label_new(NULL), FALSE, FALSE, 0); } static void verify_fingerprint(GtkWindow *parent, Fingerprint *fprint) { GtkWidget *dialog; char our_hash[OTRL_PRIVKEY_FPRINT_HUMAN_LEN], their_hash[OTRL_PRIVKEY_FPRINT_HUMAN_LEN]; char *primary; char *secondary; struct vrfy_fingerprint_data *vfd; ConnContext *context; PurplePlugin *p; char *proto_name; if (fprint == NULL) return; if (fprint->fingerprint == NULL) return; context = fprint->context; if (context == NULL) return; primary = g_strdup_printf(_("Verify fingerprint for %s"), context->username); vfd = vrfy_fingerprint_data_new(fprint); strncpy(our_hash, _("[none]"), 44); our_hash[44] = '\0'; otrl_privkey_fingerprint(otrg_plugin_userstate, our_hash, context->accountname, context->protocol); otrl_privkey_hash_to_human(their_hash, fprint->fingerprint); p = purple_find_prpl(context->protocol); proto_name = (p && p->info->name) ? p->info->name : _("Unknown"); secondary = g_strdup_printf(_("%s %s\n\n" "Fingerprint for you, %s (%s):\n%s\n\n" "Purported fingerprint for %s:\n%s\n"), _("To verify the fingerprint, contact your buddy via some " "other authenticated channel, such as the telephone " "or GPG-signed email. Each of you should tell your fingerprint " "to the other."), _("If everything matches up, you should indicate in the above " "dialog that you have verified the fingerprint."), context->accountname, proto_name, our_hash, context->username, their_hash); dialog = create_dialog(parent, PURPLE_NOTIFY_MSG_INFO, _("Verify fingerprint"), primary, secondary, 1, NULL, add_vrfy_fingerprint, vfd); g_signal_connect(G_OBJECT(dialog), "destroy", G_CALLBACK(vrfy_fingerprint_destroyed), vfd); g_free(primary); g_free(secondary); } static void otrg_gtk_dialog_verify_fingerprint(Fingerprint *fprint) { verify_fingerprint(NULL, fprint); } /* Create the SMP dialog. responder is true if this is called in * response to someone else's run of SMP. */ static void otrg_gtk_dialog_socialist_millionaires(ConnContext *context, char *question, gboolean responder) { char *primary; PurplePlugin *p; char *proto_name; if (context == NULL) return; if (responder && question) { primary = g_strdup_printf(_("Authentication from %s"), context->username); } else { primary = g_strdup_printf(_("Authenticate %s"), context->username); } p = purple_find_prpl(context->protocol); proto_name = (p && p->info->name) ? p->info->name : _("Unknown"); create_smp_dialog(_("Authenticate Buddy"), primary, context, responder, question); g_free(primary); } /* Call this to update the status of an ongoing socialist millionaires * protocol. Progress_level is a percentage, from 0.0 (aborted) to * 1.0 (complete). Any other value represents an intermediate state. */ static void otrg_gtk_dialog_update_smp(ConnContext *context, OtrlSMPEvent smp_event, double progress_level) { PurpleConversation *conv = otrg_plugin_context_to_conv(context, 0); GtkProgressBar *bar; SMPData *smp_data = purple_conversation_get_data(conv, "otr-smpdata"); if (!smp_data) return; bar = GTK_PROGRESS_BAR(smp_data->smp_progress_bar); gtk_progress_bar_set_fraction(bar, progress_level); /* If the counter is reset to absolute zero, the protocol has aborted */ if (progress_level == 0.0) { GtkDialog *dialog = GTK_DIALOG(smp_data->smp_progress_dialog); gtk_dialog_set_response_sensitive(dialog, GTK_RESPONSE_ACCEPT, 1); gtk_dialog_set_response_sensitive(dialog, GTK_RESPONSE_REJECT, 0); gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_ACCEPT); gtk_label_set_text(GTK_LABEL(smp_data->smp_progress_label), _("An error occurred during authentication.")); return; } else if (progress_level == 1.0) { /* If the counter reaches 1.0, the protocol is complete */ GtkDialog *dialog = GTK_DIALOG(smp_data->smp_progress_dialog); gtk_dialog_set_response_sensitive(dialog, GTK_RESPONSE_ACCEPT, 1); gtk_dialog_set_response_sensitive(dialog, GTK_RESPONSE_REJECT, 0); gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_ACCEPT); if (smp_event == OTRL_SMPEVENT_SUCCESS) { if (context->active_fingerprint->trust && context->active_fingerprint->trust[0]) { gtk_label_set_text(GTK_LABEL(smp_data->smp_progress_label), _("Authentication successful.")); } else { gtk_label_set_text(GTK_LABEL(smp_data->smp_progress_label), _("Your buddy has successfully authenticated you. " "You may want to authenticate your buddy as " "well by asking your own question.")); } } else { gtk_label_set_text(GTK_LABEL(smp_data->smp_progress_label), _("Authentication failed.")); } } else { /* Clear the progress label */ gtk_label_set_text(GTK_LABEL(smp_data->smp_progress_label), ""); } } /* Call this when a context transitions to ENCRYPTED. */ static void otrg_gtk_dialog_connected(ConnContext *context) { PurpleConversation *conv; char *buf; char *format_buf; TrustLevel level; OtrgUiPrefs prefs; gboolean * is_multi_inst; conv = otrg_plugin_context_to_conv(context, TRUE); level = otrg_plugin_context_to_trust(context); otrg_ui_get_prefs(&prefs, purple_conversation_get_account(conv), context->username); if (prefs.avoid_logging_otr) { purple_conversation_set_logging(conv, FALSE); } switch(level) { case TRUST_PRIVATE: format_buf = g_strdup( _("Private conversation with %s started.%s%s")); break; case TRUST_UNVERIFIED: format_buf = g_strdup_printf(_("Unverified " "conversation with %%s started.%%s%%s"), UNVERIFIED_HELPURL, _("?lang=en")); break; default: /* This last case should never happen, since we know * we're in ENCRYPTED. */ format_buf = g_strdup(_("Not private conversation with %s " "started.%s%s")); break; } buf = g_strdup_printf(format_buf, purple_conversation_get_name(conv), context->protocol_version == 1 ? _(" Warning: using old " "protocol version 1.") : "", conv->logging ? _(" Your client is logging this conversation.") : _(" Your client is not logging this conversation.")); purple_conversation_write(conv, NULL, buf, PURPLE_MESSAGE_SYSTEM, time(NULL)); g_free(buf); g_free(format_buf); dialog_update_label(context); is_multi_inst = (gboolean *) purple_conversation_get_data(conv, "otr-conv_multi_instances"); if (*is_multi_inst) { gboolean * have_warned_instances = (gboolean *) purple_conversation_get_data(conv, "otr-warned_instances"); if (!*have_warned_instances) { *have_warned_instances = TRUE; buf = g_strdup_printf(_("Your buddy is logged in multiple times and" " OTR has established multiple sessions" ". Use the icon menu above if you wish to select the " "outgoing session."), SESSIONS_HELPURL, _("?lang=en")); otrg_gtk_dialog_display_otr_message(context->accountname, context->protocol, context->username, buf, 0); g_free(buf); } } } /* Call this when a context transitions to PLAINTEXT. */ static void otrg_gtk_dialog_disconnected(ConnContext *context) { PurpleConversation *conv; char *buf; OtrgUiPrefs prefs; conv = otrg_plugin_context_to_conv(context, 1); buf = g_strdup_printf(_("Private conversation with %s lost."), purple_conversation_get_name(conv)); purple_conversation_write(conv, NULL, buf, PURPLE_MESSAGE_SYSTEM, time(NULL)); g_free(buf); otrg_ui_get_prefs(&prefs, purple_conversation_get_account(conv), context->username); if (prefs.avoid_logging_otr) { if (purple_prefs_get_bool("/purple/logging/log_ims")) { purple_conversation_set_logging(conv, TRUE); } } dialog_update_label(context); close_smp_window(conv); } /* Call this if the remote user terminates his end of an ENCRYPTED * connection, and lets us know. */ static void otrg_gtk_dialog_finished(const char *accountname, const char *protocol, const char *username) { /* See if there's a conversation window we can put this in. */ PurpleAccount *account; PurpleConversation *conv; ConnContext *context; char *buf; account = purple_accounts_find(accountname, protocol); if (!account) return; conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, username, account); if (!conv) return; buf = g_strdup_printf(_("%s has ended his/her private conversation with " "you; you should do the same."), purple_conversation_get_name(conv)); purple_conversation_write(conv, NULL, buf, PURPLE_MESSAGE_SYSTEM, time(NULL)); g_free(buf); context = otrg_plugin_conv_to_selected_context(conv, 0); dialog_update_label_conv(conv, otrg_plugin_context_to_trust(context)); close_smp_window(conv); } /* Call this when we receive a Key Exchange message that doesn't cause * our state to change (because it was just the keys we knew already). */ static void otrg_gtk_dialog_stillconnected(ConnContext *context) { PurpleConversation *conv; char *buf; char *format_buf; TrustLevel level; conv = otrg_plugin_context_to_conv(context, 1); level = otrg_plugin_context_to_trust(context); switch(level) { case TRUST_PRIVATE: format_buf = g_strdup(_("Successfully refreshed the private " "conversation with %s.%s")); break; case TRUST_UNVERIFIED: format_buf = g_strdup_printf(_("Successfully refreshed the " "unverified conversation with " "%%s.%%s"), UNVERIFIED_HELPURL, _("?lang=en")); break; default: /* This last case should never happen, since we know * we're in ENCRYPTED. */ format_buf = g_strdup(_("Successfully refreshed the not private " "conversation with %s.%s")); break; } buf = g_strdup_printf(format_buf, purple_conversation_get_name(conv), context->protocol_version == 1 ? _(" Warning: using old " "protocol version 1.") : ""); purple_conversation_write(conv, NULL, buf, PURPLE_MESSAGE_SYSTEM, time(NULL)); g_free(buf); g_free(format_buf); dialog_update_label(context); } /* This is called when the OTR button in the button box is clicked, or * when the appropriate context menu item is selected. */ static void otrg_gtk_dialog_clicked_connect(GtkWidget *widget, gpointer data) { const char *format; char *buf; PurpleConversation *conv = data; PidginConversation *gtkconv = PIDGIN_CONVERSATION(conv); if (gtkconv->active_conv != conv) { pidgin_conv_switch_active_conversation(conv); } if (purple_conversation_get_data(conv, "otr-private")) { format = _("Attempting to refresh the private conversation with %s..."); } else { format = _("Attempting to start a private conversation with %s..."); } buf = g_strdup_printf(format, purple_conversation_get_name(conv)); purple_conversation_write(conv, NULL, buf, PURPLE_MESSAGE_SYSTEM, time(NULL)); g_free(buf); otrg_plugin_send_default_query_conv(conv); } /* Called when SMP verification option selected from menu */ static void socialist_millionaires(GtkWidget *widget, gpointer data) { ConvOrContext *convctx = data; PurpleConversation *conv; ConnContext *context = NULL; if (convctx->convctx_type == convctx_conv) { conv = convctx->conv; context = otrg_plugin_conv_to_selected_context(conv, 0); } else if (convctx->convctx_type == convctx_ctx) { context = convctx->context; } if (context == NULL || context->msgstate != OTRL_MSGSTATE_ENCRYPTED) return; otrg_gtk_dialog_socialist_millionaires(context, NULL, FALSE); } static void menu_whatsthis(GtkWidget *widget, gpointer data) { char *uri = g_strdup_printf("%s%s", LEVELS_HELPURL, _("?lang=en")); purple_notify_uri(otrg_plugin_handle, uri); g_free(uri); } static void menu_end_private_conversation(GtkWidget *widget, gpointer data) { PurpleConversation *conv; ConnContext *context = NULL; ConvOrContext *convctx = data; if (convctx->convctx_type == convctx_conv) { conv = convctx->conv; context = otrg_plugin_conv_to_selected_context(conv, 0); } else if (convctx->convctx_type == convctx_ctx) { context = convctx->context; } otrg_ui_disconnect_connection(context); } static void dialog_resensitize(PurpleConversation *conv); /* If the OTR button is right-clicked, show the context menu. */ static gboolean button_pressed(GtkWidget *w, GdkEventButton *event, gpointer data) { PurpleConversation *conv = data; /* Any button will do */ if (event->type == GDK_BUTTON_PRESS) { GtkWidget *menu = purple_conversation_get_data(conv, "otr-menu"); if (menu) { gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL, 3, event->time); return TRUE; } } return FALSE; } static void otrg_gtk_dialog_new_purple_conv(PurpleConversation *conv); static void otr_refresh_otr_buttons(PurpleConversation *conv) { PidginConversation *gtkconv = PIDGIN_CONVERSATION ( conv ); GList * list_iter = gtkconv->convs; PurpleConversation * current_conv; GtkWidget *button; for (;list_iter;list_iter = list_iter->next) { current_conv = list_iter->data; button = purple_conversation_get_data(current_conv, "otr-button"); if (button) { if (current_conv == gtkconv->active_conv) { gtk_widget_show (button); } else { gtk_widget_hide (button); } } } } /* Menu has been destroyed -- let's remove it from the menu_list * so that it won't be destroyed again. */ static void otr_menu_destroy(GtkWidget *widget, gpointer pdata) { PidginWindow *win = (PidginWindow *) pdata ; GtkWidget *top_menu = widget; GList * menu_list = g_hash_table_lookup ( otr_win_menus, win ); menu_list = g_list_remove ( menu_list, top_menu ); g_hash_table_replace ( otr_win_menus, win, menu_list ); } static void otr_clear_win_menu_list(PidginWindow *win) { GList * head = g_hash_table_lookup ( otr_win_menus, win ); /* menu_list */ GList * old_head = 0; while(head) { old_head = head; gtk_object_destroy ( GTK_OBJECT ( head->data ) ); head = g_hash_table_lookup ( otr_win_menus, win ); if (head && head == old_head) { /* The head was not removed by the "destroyed" callback Something is wrong */ break; } } g_hash_table_replace ( otr_win_menus, win, head ); } static void otr_destroy_top_menu_objects(PurpleConversation *conv) { PidginConversation *gtkconv = PIDGIN_CONVERSATION ( conv ); PidginWindow *win = pidgin_conv_get_window ( gtkconv ); otr_clear_win_menu_list(win); } static int otr_get_menu_insert_pos(PurpleConversation *conv) { PidginConversation *gtkconv = PIDGIN_CONVERSATION ( conv ); PidginWindow *win = pidgin_conv_get_window ( gtkconv ); GtkWidget *menu_bar = win->menu.menubar; GList * list_iter = gtk_container_get_children(GTK_CONTAINER(menu_bar)); GList * head = list_iter; int pos = 0; while ( list_iter ) { pos++; list_iter = list_iter->next; } if (pos != 0) pos--; g_list_free ( head ); return pos; } static void otr_set_menu_labels(ConvOrContext *convctx, GtkWidget *query, GtkWidget *end, GtkWidget *smp) { PurpleConversation *conv; int insecure = 0; int authen = 0; int finished = 0; TrustLevel level = TRUST_NOT_PRIVATE; if (convctx->convctx_type == convctx_conv) { conv = convctx->conv; insecure = purple_conversation_get_data(conv, "otr-private") ? 0 : 1; authen = purple_conversation_get_data(conv, "otr-authenticated") ? 1 :0; finished = purple_conversation_get_data(conv, "otr-finished") ? 1 : 0; } else if (convctx->convctx_type == convctx_ctx) { level = otrg_plugin_context_to_trust(convctx->context); insecure = level == TRUST_UNVERIFIED || level == TRUST_PRIVATE ? 0 : 1; authen = level == TRUST_PRIVATE ? 1 : 0; finished = level == TRUST_FINISHED ? 1 : 0; } else { return; } GtkWidget * label = gtk_bin_get_child(GTK_BIN(query)); gtk_label_set_markup_with_mnemonic(GTK_LABEL(label), insecure ? _("Start _private conversation") : _("Refresh _private conversation")); label = gtk_bin_get_child(GTK_BIN(smp)); gtk_label_set_markup_with_mnemonic(GTK_LABEL(label), (!insecure && authen) ? _("Re_authenticate buddy") : _("_Authenticate buddy")); gtk_widget_set_sensitive(GTK_WIDGET(end), !insecure || finished); gtk_widget_set_sensitive(GTK_WIDGET(smp), !insecure); } static void force_deselect(GtkItem *item, gpointer data) { gtk_item_deselect(item); } static void otr_build_status_submenu(PidginWindow *win, ConvOrContext *convctx, GtkWidget *menu, TrustLevel level) { char *status = ""; GtkWidget *image; GtkWidget *levelimage; GtkWidget *buddy_name; GtkWidget *buddy_status; GtkWidget *menusep, *menusep2; GdkPixbuf *pixbuf; GtkWidget *whatsthis; gchar *text = NULL; PurpleConversation *conv; if (convctx->convctx_type == convctx_conv) { conv = convctx->conv; } else if (convctx->convctx_type == convctx_ctx) { conv = otrg_plugin_context_to_conv(convctx->context, 0); } else { return; } text = g_strdup_printf("%s (%s)", conv->name, purple_account_get_username(conv->account)); buddy_name = gtk_image_menu_item_new_with_label(text); g_free(text); /* Create a pixmap for the protocol icon. */ pixbuf = pidgin_create_prpl_icon(conv->account, PIDGIN_PRPL_ICON_SMALL); /* Now convert it to GtkImage */ if (pixbuf == NULL) { image = gtk_image_new(); } else { image = gtk_image_new_from_pixbuf(pixbuf); } gtk_image_menu_item_set_image ( GTK_IMAGE_MENU_ITEM ( buddy_name ), image); switch(level) { case TRUST_NOT_PRIVATE: status = _("Not Private"); break; case TRUST_UNVERIFIED: status = _("Unverified"); break; case TRUST_PRIVATE: status = _("Private"); break; case TRUST_FINISHED: status = _("Finished"); break; } buddy_status = gtk_image_menu_item_new_with_label(status); levelimage = otr_icon(NULL, level, 1); gtk_image_menu_item_set_image ( GTK_IMAGE_MENU_ITEM ( buddy_status ), levelimage); menusep = gtk_separator_menu_item_new(); menusep2 = gtk_separator_menu_item_new(); whatsthis = gtk_image_menu_item_new_with_mnemonic(_("_What's this?")); gtk_image_menu_item_set_image ( GTK_IMAGE_MENU_ITEM ( whatsthis ), gtk_image_new_from_stock(GTK_STOCK_HELP, gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_EXTRA_SMALL))); gtk_menu_shell_append(GTK_MENU_SHELL(menu), menusep); gtk_menu_shell_append(GTK_MENU_SHELL(menu), buddy_name); gtk_menu_shell_append(GTK_MENU_SHELL(menu), buddy_status); gtk_menu_shell_append(GTK_MENU_SHELL(menu), menusep2); gtk_menu_shell_append(GTK_MENU_SHELL(menu), whatsthis); gtk_widget_show(menusep); gtk_widget_show_all(buddy_name); gtk_widget_show_all(buddy_status); gtk_widget_show(menusep2); gtk_widget_show_all(whatsthis); gtk_signal_connect(GTK_OBJECT(buddy_name), "select", GTK_SIGNAL_FUNC(force_deselect), NULL); gtk_signal_connect(GTK_OBJECT(buddy_status), "select", GTK_SIGNAL_FUNC(force_deselect), NULL); gtk_signal_connect(GTK_OBJECT(whatsthis), "activate", GTK_SIGNAL_FUNC(menu_whatsthis), conv); } static void build_otr_menu(ConvOrContext *convctx, GtkWidget *menu, TrustLevel level) { PurpleConversation *conv; if (convctx->convctx_type == convctx_conv) { conv = convctx->conv; } else if (convctx->convctx_type == convctx_ctx) { conv = otrg_plugin_context_to_conv(convctx->context, 0); } else { return; } GtkWidget *buddymenuquery = gtk_menu_item_new_with_mnemonic( _("Start _private conversation")); GtkWidget *buddymenuend = gtk_menu_item_new_with_mnemonic( _("_End private conversation")); GtkWidget *buddymenusmp = gtk_menu_item_new_with_mnemonic( _("_Authenticate buddy")); otr_set_menu_labels(convctx, buddymenuquery, buddymenuend, buddymenusmp); /* Empty out the menu */ gtk_container_foreach(GTK_CONTAINER(menu), destroy_menuitem, NULL); gtk_menu_shell_append(GTK_MENU_SHELL(menu), buddymenuquery); gtk_menu_shell_append(GTK_MENU_SHELL(menu), buddymenuend); gtk_menu_shell_append(GTK_MENU_SHELL(menu), buddymenusmp); gtk_widget_show(buddymenuquery); gtk_widget_show(buddymenuend); gtk_widget_show(buddymenusmp); gtk_signal_connect(GTK_OBJECT(buddymenuquery), "activate", GTK_SIGNAL_FUNC(otrg_gtk_dialog_clicked_connect), conv); gtk_signal_connect(GTK_OBJECT(buddymenuend), "activate", GTK_SIGNAL_FUNC(menu_end_private_conversation), convctx); gtk_signal_connect(GTK_OBJECT(buddymenusmp), "activate", GTK_SIGNAL_FUNC(socialist_millionaires), convctx); } static void otr_add_top_otr_menu(PurpleConversation *conv) { PidginConversation *gtkconv = PIDGIN_CONVERSATION ( conv ); PidginWindow *win = pidgin_conv_get_window ( gtkconv ); GtkWidget *menu_bar = win->menu.menubar; GList * menu_list = g_hash_table_lookup ( otr_win_menus, win ); GtkWidget *topmenu; GtkWidget *topmenuitem; TrustLevel level = TRUST_NOT_PRIVATE; ConnContext *context = otrg_plugin_conv_to_selected_context(conv, 1); ConvOrContext *convctx; GHashTable * conv_or_ctx_map = purple_conversation_get_data(conv, "otr-convorctx"); int pos = otr_get_menu_insert_pos(conv); if (purple_conversation_get_type(conv) != PURPLE_CONV_TYPE_IM) return; topmenuitem = gtk_menu_item_new_with_label ( "OTR" ); topmenu = gtk_menu_new(); if (context != NULL) { level = otrg_plugin_context_to_trust(context); } convctx = g_hash_table_lookup(conv_or_ctx_map, conv); if (!convctx) { convctx = malloc(sizeof(ConvOrContext)); g_hash_table_insert(conv_or_ctx_map, conv, (gpointer)convctx); } convctx->convctx_type = convctx_conv; convctx->conv = conv; build_otr_menu(convctx, topmenu, level); otr_build_status_submenu(win, convctx, topmenu, level); gtk_menu_item_set_submenu ( GTK_MENU_ITEM ( topmenuitem ), topmenu ); gtk_widget_show(topmenuitem); gtk_widget_show(topmenu); gtk_menu_shell_insert ( GTK_MENU_SHELL ( menu_bar ), topmenuitem, pos++ ); g_signal_connect(G_OBJECT(topmenuitem), "destroy", G_CALLBACK(otr_menu_destroy), win); menu_list = g_list_append(menu_list, topmenuitem); g_hash_table_replace ( otr_win_menus, win, menu_list ); } static GList* otr_get_full_buddy_list(PurpleConversation *conv) { PidginConversation *gtkconv = PIDGIN_CONVERSATION ( conv ); GList *pres_list = NULL; GList *conv_list = NULL; GSList *l, *buds; /* This code is derived from pidgin's 'generating sendto menu' stuff */ if ( gtkconv->active_conv->type == PURPLE_CONV_TYPE_IM ) { buds = purple_find_buddies ( gtkconv->active_conv->account, gtkconv->active_conv->name ); if ( buds == NULL && !g_list_find(conv_list, conv)) { /* buddy not on list */ conv_list = g_list_prepend ( conv_list, conv); } else { for ( l = buds; l != NULL; l = l->next ) { PurpleBlistNode *node = ( PurpleBlistNode * ) purple_buddy_get_contact ( ( PurpleBuddy * ) l->data ); for ( node = node->child; node != NULL; node = node->next ) { PurpleBuddy *buddy = ( PurpleBuddy * ) node; PurpleAccount *account; if ( !PURPLE_BLIST_NODE_IS_BUDDY ( node ) ) continue; account = purple_buddy_get_account ( buddy ); if ( purple_account_is_connected ( account ) ) { /* Use the PurplePresence to get unique buddies. */ PurplePresence *presence = purple_buddy_get_presence( buddy ); if ( !g_list_find ( pres_list, presence ) ) { PurpleConversation * currentConv = purple_find_conversation_with_account( PURPLE_CONV_TYPE_IM, \ purple_buddy_get_name ( buddy ), purple_buddy_get_account ( buddy )); pres_list = g_list_prepend ( pres_list, presence ); if (currentConv != NULL && !g_list_find(conv_list, currentConv)) { conv_list = g_list_prepend ( conv_list, currentConv ); } } } } } g_slist_free ( buds ); g_list_free( pres_list ); } } return conv_list; } static void unselect_meta_ctx(PurpleConversation *conv) { GtkWidget *select_best = (GtkWidget *) purple_conversation_get_data(conv, "otr-select_best"); GtkWidget *select_recent = (GtkWidget *) purple_conversation_get_data(conv, "otr-select_recent"); GTK_CHECK_MENU_ITEM(select_recent)->active = 0; GTK_CHECK_MENU_ITEM(select_best)->active = 0; } static void select_meta_ctx(GtkWidget *widget, gpointer data) { PurpleConversation *conv = (PurpleConversation *) data; GtkWidget *select_best = (GtkWidget *) purple_conversation_get_data(conv, "otr-select_best"); GtkWidget *select_recent = (GtkWidget *) purple_conversation_get_data(conv, "otr-select_recent"); gboolean value = FALSE; otrl_instag_t * selected_instance = (otrl_instag_t *) purple_conversation_get_data(conv, "otr-ui_selected_ctx"); ConnContext * context = NULL; ConnContext * recent_context = NULL; value = gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget)); if (widget == select_best) { GTK_CHECK_MENU_ITEM(select_recent)->active = !value; if (value) { if (selected_instance) { *selected_instance = OTRL_INSTAG_BEST; } context = (ConnContext *) otrg_plugin_conv_to_selected_context(conv, 1); recent_context = (ConnContext *) otrg_plugin_conv_to_context(conv, OTRL_INSTAG_RECENT_RECEIVED, 0); if (context != recent_context) { gchar *buf = g_strdup_printf(_("Warning: The selected outgoing " "OTR session (%u) is not the most recently active " "one (%u). Your buddy may not receive your messages." " Use the icon menu above to select a different " "outgoing session."), get_context_instance_to_index(conv, context), get_context_instance_to_index(conv, recent_context)); otrg_gtk_dialog_display_otr_message(context->accountname, context->protocol, context->username, buf, 0); g_free(buf); } } } else if (widget == select_recent) { GTK_CHECK_MENU_ITEM(select_best)->active = !value; if (value && selected_instance) { *selected_instance = OTRL_INSTAG_RECENT_RECEIVED; } } if (!context) context = (ConnContext *) otrg_plugin_conv_to_selected_context(conv, 1); pidgin_conv_switch_active_conversation(conv); dialog_update_label(context); } static void select_menu_ctx(GtkWidget *widget, gpointer data) { ConnContext *context = (ConnContext *) data; PurpleConversation *conv = otrg_plugin_context_to_conv(context, 1); ConnContext *recent_context = (ConnContext *) otrg_plugin_conv_to_context( conv, (otrl_instag_t)OTRL_INSTAG_RECENT_RECEIVED, 0); otrl_instag_t *selected_instance = (otrl_instag_t *) purple_conversation_get_data(conv, "otr-ui_selected_ctx"); gboolean *is_multi_instance = purple_conversation_get_data(conv, "otr-conv_multi_instances"); if (is_multi_instance && *is_multi_instance) { if (selected_instance) { *selected_instance = context->their_instance; } unselect_meta_ctx(conv); } pidgin_conv_switch_active_conversation(conv); dialog_update_label(context); if (is_multi_instance && *is_multi_instance && context != recent_context) { gchar *buf = g_strdup_printf(_("Warning: The selected outgoing OTR " "session (%u) is not the most recently active one (%u). " "Your buddy may not receive your messages. Use the icon menu " "above to select a different outgoing session."), get_context_instance_to_index(conv, context), get_context_instance_to_index(conv, recent_context)); otrg_gtk_dialog_display_otr_message(context->accountname, context->protocol, context->username, buf, 0); g_free(buf); } } static void build_meta_instance_submenu( PurpleConversation *conv, GtkWidget *menu) { GtkWidget *menusep = gtk_separator_menu_item_new(); GtkWidget *select_best = gtk_check_menu_item_new_with_label( _("Send to most secure")); GtkWidget *select_recent = gtk_check_menu_item_new_with_label( _("Send to most recent")); otrl_instag_t * selected_instance = purple_conversation_get_data(conv, "otr-ui_selected_ctx"); if (!selected_instance || *selected_instance == OTRL_INSTAG_BEST) { GTK_CHECK_MENU_ITEM(select_recent)->active = 0; GTK_CHECK_MENU_ITEM(select_best)->active = 1; } else if (*selected_instance == OTRL_INSTAG_RECENT_RECEIVED) { GTK_CHECK_MENU_ITEM(select_recent)->active = 1; GTK_CHECK_MENU_ITEM(select_best)->active = 0; } else { GTK_CHECK_MENU_ITEM(select_recent)->active = 0; GTK_CHECK_MENU_ITEM(select_best)->active = 0; } purple_conversation_set_data(conv, "otr-select_best", select_best); purple_conversation_set_data(conv, "otr-select_recent", select_recent); gtk_signal_connect(GTK_OBJECT(select_best), "toggled", GTK_SIGNAL_FUNC(select_meta_ctx), conv); gtk_signal_connect(GTK_OBJECT(select_recent), "toggled", GTK_SIGNAL_FUNC(select_meta_ctx), conv); gtk_widget_show(menusep); gtk_menu_shell_append(GTK_MENU_SHELL(menu), menusep); gtk_widget_show(select_best); gtk_menu_shell_append(GTK_MENU_SHELL(menu), select_best); gtk_widget_show(select_recent); gtk_menu_shell_append(GTK_MENU_SHELL(menu), select_recent); } /* Build an OTR buddy menu (where the root menu item is an icon corresponding * to the conversation status) for a conversation that has multiple instances. * The ConnContexts are given in the GList "instances". Keep track of the * position this menu was inserted in the "pos" argument. "active_conv" * corresponds to whether this conversation is the active PurpleConversation * for this PidginConversation pane. */ static void otr_add_buddy_instances_top_menu(PidginConversation *gtkconv, GList *instances, gboolean active_conv, const char *username, const char *accountname, int *pos) { PidginWindow *win = pidgin_conv_get_window ( gtkconv ); GtkWidget *menu_bar = win->menu.menubar; GtkWidget *menu; GtkWidget *menu_image; GtkWidget * tooltip_menu; gchar *tooltip_text; gpointer gp_instance; otrl_instag_t * selected_instance = NULL; gboolean selection_exists = 0; ConnContext * context = instances->data; TrustLevel level = TRUST_NOT_PRIVATE; GHashTable * conv_or_ctx_map; PurpleConversation * conv = NULL; ConvOrContext convctx; GList * menu_list; conv = otrg_plugin_context_to_conv(context, 0); selection_exists = g_hash_table_lookup_extended(conv->data, "otr-ui_selected_ctx", NULL, &gp_instance); /* Find the selected or default instance */ if (selection_exists) { selected_instance = gp_instance; context = otrl_context_find(otrg_plugin_userstate, context->username, context->accountname, context->protocol, *selected_instance, 0, NULL, NULL, NULL); } else { context = otrl_context_find(otrg_plugin_userstate, context->username, context->accountname, context->protocol, OTRL_INSTAG_BEST, 0, NULL, NULL, NULL); } menu = gtk_menu_new(); conv_or_ctx_map = purple_conversation_get_data(conv, "otr-convorctx"); for (; instances; instances = instances->next) { GtkWidget *instance_menu_item; GtkWidget *instance_submenu; gchar* text; ConnContext *curr_context = instances->data; ConvOrContext * curr_convctx = g_hash_table_lookup(conv_or_ctx_map, curr_context); gboolean selected = (curr_context->their_instance == context->their_instance); gint instance_i = -1; if (curr_context->m_context == curr_context && curr_context->msgstate == OTRL_MSGSTATE_PLAINTEXT) { continue; } if (!curr_convctx) { curr_convctx = malloc(sizeof(ConvOrContext)); g_hash_table_insert(conv_or_ctx_map, curr_context, (gpointer)curr_convctx); curr_convctx->convctx_type = convctx_ctx; curr_convctx->context = curr_context; } instance_i = get_context_instance_to_index(conv, curr_context); text = g_strdup_printf(_("Session %u"), instance_i); instance_menu_item = gtk_image_menu_item_new_with_label(text); instance_submenu = gtk_menu_new(); level = otrg_plugin_context_to_trust(curr_context); menu_image = otr_icon(NULL, level, selected); gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(instance_menu_item), menu_image); gtk_image_menu_item_set_always_show_image( GTK_IMAGE_MENU_ITEM(instance_menu_item), 1); build_otr_menu(curr_convctx, instance_submenu, level); g_free(text); if (!selection_exists || *selected_instance != curr_context->their_instance) { GtkWidget *select_ctx = gtk_menu_item_new_with_label(_("Select")); GtkWidget *menusep = gtk_separator_menu_item_new(); gtk_signal_connect(GTK_OBJECT(select_ctx), "activate", GTK_SIGNAL_FUNC(select_menu_ctx), curr_context); gtk_menu_shell_prepend(GTK_MENU_SHELL(instance_submenu), menusep); gtk_widget_show(menusep); gtk_menu_shell_prepend(GTK_MENU_SHELL(instance_submenu), select_ctx); gtk_widget_show(select_ctx); } else if (selection_exists && *selected_instance == curr_context->their_instance) { GtkWidget *selected_ctx = gtk_menu_item_new_with_label(_("Selected")); GtkWidget *menusep = gtk_separator_menu_item_new(); gtk_signal_connect(GTK_OBJECT(selected_ctx), "select", GTK_SIGNAL_FUNC(force_deselect), NULL); gtk_menu_shell_prepend(GTK_MENU_SHELL(instance_submenu), menusep); gtk_widget_show(menusep); gtk_menu_shell_prepend(GTK_MENU_SHELL(instance_submenu), selected_ctx); gtk_widget_show(selected_ctx); } gtk_widget_show(menu_image); gtk_widget_show(instance_menu_item); gtk_widget_show(instance_submenu); gtk_menu_item_set_submenu (GTK_MENU_ITEM (instance_menu_item), instance_submenu); gtk_menu_shell_append(GTK_MENU_SHELL(menu), instance_menu_item); } level = otrg_plugin_context_to_trust(context); menu_image = otr_icon(NULL, level, active_conv); convctx.convctx_type = convctx_ctx; convctx.context = context; build_meta_instance_submenu(conv, menu); otr_build_status_submenu(win, &convctx, menu, level); tooltip_menu = tooltip_menu_new(); gtk_widget_show ( menu_image ); gtk_widget_show(tooltip_menu); gtk_menu_shell_insert ( GTK_MENU_SHELL(menu_bar), tooltip_menu, (*pos)++); gtk_menu_item_set_submenu ( GTK_MENU_ITEM(tooltip_menu), menu); tooltip_text = g_strdup_printf("%s (%s)", username, accountname); tooltip_menu_prepend(TOOLTIP_MENU(tooltip_menu), menu_image, tooltip_text); g_free(tooltip_text); menu_list = g_hash_table_lookup ( otr_win_menus, win ); g_signal_connect(G_OBJECT(tooltip_menu), "destroy", G_CALLBACK(otr_menu_destroy), win); menu_list = g_list_append(menu_list, tooltip_menu); g_hash_table_replace ( otr_win_menus, win, menu_list ); } /* Build an OTR buddy menu (where the root menu item is an icon corresponding * to the conversation status) for a conversation that does not have multiple * instances. A pre-allocated ConvOrContext is given. Keep track of the * position this menu was inserted in the "pos" argument. "active_conv" * corresponds to whether this conversation is the active PurpleConversation * for this PidginConversation pane. */ static void otr_add_buddy_top_menu(PidginConversation *gtkconv, ConvOrContext *convctx, gboolean active_conv, const char *username, const char *accountname, int *pos) { PidginWindow *win = pidgin_conv_get_window ( gtkconv ); GtkWidget *menu_bar = win->menu.menubar; GtkWidget *menu; GtkWidget *menu_image; TrustLevel level; ConnContext *context = NULL; GList * menu_list; GtkWidget * tooltip_menu; gchar *tooltip_text; GtkWidget *select_ctx = NULL; if (convctx->convctx_type == convctx_ctx) { context = convctx->context; } else if (convctx->convctx_type == convctx_conv) { context = otrg_plugin_conv_to_selected_context(convctx->conv, 0); } level = TRUST_NOT_PRIVATE; if (context != NULL) { level = otrg_plugin_context_to_trust(context); } menu_image = otr_icon(NULL, level, active_conv); menu = gtk_menu_new(); build_otr_menu(convctx, menu, level); otr_build_status_submenu(win, convctx, menu, level); if (!active_conv) { select_ctx = gtk_menu_item_new_with_label(_("Select")); gtk_menu_shell_prepend(GTK_MENU_SHELL(menu), select_ctx); gtk_widget_show(select_ctx); gtk_signal_connect(GTK_OBJECT(select_ctx), "activate", GTK_SIGNAL_FUNC(select_menu_ctx), context); } tooltip_menu = tooltip_menu_new(); gtk_widget_show ( menu_image ); gtk_widget_show(tooltip_menu); gtk_menu_shell_insert ( GTK_MENU_SHELL(menu_bar), tooltip_menu, (*pos)++); gtk_menu_item_set_submenu ( GTK_MENU_ITEM ( tooltip_menu ), menu ); tooltip_text = g_strdup_printf("%s (%s)", username, accountname); tooltip_menu_prepend(TOOLTIP_MENU(tooltip_menu), menu_image, tooltip_text); g_free(tooltip_text); menu_list = g_hash_table_lookup ( otr_win_menus, win ); g_signal_connect(G_OBJECT(tooltip_menu), "destroy", G_CALLBACK(otr_menu_destroy), win); menu_list = g_list_append(menu_list, tooltip_menu); g_hash_table_replace ( otr_win_menus, win, menu_list ); } static void otr_add_buddy_top_menus(PurpleConversation *conv) { PidginConversation *gtkconv = PIDGIN_CONVERSATION ( conv ); PurpleConversation * currentConv = NULL; /* Auxiliary variables re-used */ ConnContext *currentContext = NULL; /* within loops. */ GList *full_buddy_list = NULL; GList *list_iter; int pos = otr_get_menu_insert_pos(conv); GHashTable *conv_to_context_map = g_hash_table_new(g_direct_hash, g_direct_equal); GHashTable * conv_or_ctx_map = purple_conversation_get_data(conv, "otr-convorctx"); full_buddy_list = otr_get_full_buddy_list(conv); list_iter = full_buddy_list; /* First determine how many contexts are associated with each conv */ for (list_iter = g_list_last ( full_buddy_list ); list_iter != NULL; list_iter = list_iter->prev) { PurpleAccount *account; char *username; const char *accountname, *proto; GList * contexts = NULL; currentConv = list_iter->data; if (currentConv == NULL) { continue; } if (purple_conversation_get_type(currentConv) != PURPLE_CONV_TYPE_IM) { continue; } account = purple_conversation_get_account(currentConv); accountname = purple_account_get_username(account); proto = purple_account_get_protocol_id(account); username = g_strdup(purple_normalize(account, purple_conversation_get_name(currentConv))); for (currentContext = otrg_plugin_userstate->context_root; currentContext != NULL; currentContext = currentContext->next) { if (!strcmp(currentContext->accountname, accountname) && !strcmp(currentContext->protocol, proto) && !strcmp(currentContext->username, username)) { contexts = g_list_append(contexts, currentContext); } } g_free(username); g_hash_table_insert(conv_to_context_map, currentConv, (gpointer) contexts); } list_iter = full_buddy_list; for (list_iter = g_list_last ( full_buddy_list ); list_iter != NULL; list_iter = list_iter->prev) { GList * contexts = NULL; GList * contexts_iter = NULL; gboolean active_conv = 0; ConvOrContext * convctx = NULL; ConnContext * m_context = NULL; PurpleAccount * account = NULL; char * username = NULL; const char * accountname = NULL; int num_contexts = 0; gboolean * is_multi_instance; currentConv = list_iter->data; if (currentConv == NULL) { continue; } active_conv = (currentConv == gtkconv->active_conv); contexts = (GList *) g_hash_table_lookup(conv_to_context_map, currentConv); if (purple_conversation_get_type(currentConv) != PURPLE_CONV_TYPE_IM) { continue; } num_contexts = g_list_length(contexts); is_multi_instance = purple_conversation_get_data(currentConv, "otr-conv_multi_instances"); if (is_multi_instance) { *is_multi_instance = FALSE; } if (num_contexts > 1) { /* We will need the master context */ currentContext = (ConnContext *) contexts->data; m_context = currentContext->m_context; } if (num_contexts <= 1) { /* Just add a menu for the possibly not yet created master inst */ convctx = g_hash_table_lookup(conv_or_ctx_map, currentConv); if (!convctx) { convctx = malloc(sizeof(ConvOrContext)); g_hash_table_insert(conv_or_ctx_map, currentConv, (gpointer)convctx); convctx->convctx_type = convctx_conv; convctx->conv = currentConv; } account = purple_conversation_get_account(currentConv); accountname = purple_account_get_username(account); username = g_strdup( purple_normalize(account, purple_conversation_get_name(currentConv))); otr_add_buddy_top_menu(gtkconv, convctx, active_conv, username, accountname, &pos); g_free(username); } else if (num_contexts == 2 && m_context->msgstate == OTRL_MSGSTATE_PLAINTEXT) { /* Just add a menu for the non_master instance */ contexts_iter = contexts; currentContext = contexts_iter->data; while (currentContext->m_context == currentContext && contexts_iter->next != NULL) { contexts_iter = contexts_iter->next; currentContext = contexts_iter->data; } convctx = g_hash_table_lookup(conv_or_ctx_map, currentContext); if (!convctx) { convctx = malloc(sizeof(ConvOrContext)); g_hash_table_insert(conv_or_ctx_map, currentContext, (gpointer)convctx); convctx->convctx_type = convctx_ctx; convctx->context = currentContext; } otr_add_buddy_top_menu(gtkconv, convctx, active_conv, currentContext->username, currentContext->accountname, &pos); } else { /* Multi-instances */ *is_multi_instance = TRUE; otr_add_buddy_instances_top_menu(gtkconv, contexts, active_conv, currentContext->username, currentContext->accountname, &pos); } if (contexts) { g_list_free(contexts); } } g_hash_table_destroy (conv_to_context_map); g_list_free ( full_buddy_list ); } static void otr_check_conv_status_change( PurpleConversation *conv) { PidginConversation *gtkconv = PIDGIN_CONVERSATION(conv); TrustLevel current_level = TRUST_NOT_PRIVATE; ConnContext *context = otrg_plugin_conv_to_context(conv, OTRL_INSTAG_RECENT, 0); TrustLevel *previous_level; char *buf; char *status = ""; if (context != NULL) { current_level = otrg_plugin_context_to_trust(context); } previous_level = g_hash_table_lookup ( otr_win_status, gtkconv ); if (!previous_level || (previous_level && *previous_level == current_level)) { return; } buf = _("The privacy status of the current conversation is now: " "%s"); switch(current_level) { case TRUST_NOT_PRIVATE: status = _("Not Private"); break; case TRUST_UNVERIFIED: status = _("Unverified"); break; case TRUST_PRIVATE: status = _("Private"); break; case TRUST_FINISHED: status = _("Finished"); break; } buf = g_strdup_printf(buf, LEVELS_HELPURL, _("?lang=en"), status); /* Write a new message indicating the level change. The timestamp image will * be appended as the message timestamp signal is caught, which will also * update the privacy level for this gtkconv */ purple_conversation_write(conv, NULL, buf, PURPLE_MESSAGE_SYSTEM, time(NULL)); g_free(buf); } /* If the conversation switches on us */ static void conversation_switched ( PurpleConversation *conv, void * data ) { if ( conv == NULL ) return; otrg_gtk_dialog_new_purple_conv(conv); } /* If the conversation gets destroyed on us, clean up the data we stored * pointing to it. */ static void conversation_destroyed(PurpleConversation *conv, void *data) { GtkWidget *menu = (GtkWidget *) purple_conversation_get_data(conv, "otr-menu"); PidginConversation *gtkconv; PidginWindow *win; GHashTable * conv_or_ctx_map; GHashTable * conv_to_idx_map; gint * max_instance_idx; gboolean * is_conv_multi_instance; gboolean * have_warned_instances; otrl_instag_t * last_received_instance; if (menu) gtk_object_destroy(GTK_OBJECT(menu)); conv_or_ctx_map = purple_conversation_get_data(conv, "otr-convorctx"); g_hash_table_destroy(conv_or_ctx_map); conv_to_idx_map = purple_conversation_get_data(conv, "otr-conv_to_idx"); g_hash_table_destroy(conv_to_idx_map); max_instance_idx = purple_conversation_get_data(conv, "otr-max_idx"); if (max_instance_idx) { g_free(max_instance_idx); } is_conv_multi_instance = purple_conversation_get_data(conv, "otr-conv_multi_instances"); if (is_conv_multi_instance) { g_free(is_conv_multi_instance); } have_warned_instances = purple_conversation_get_data(conv, "otr-warned_instances"); if (have_warned_instances) { g_free(have_warned_instances); } last_received_instance = purple_conversation_get_data(conv, "otr-last_received_ctx"); if (last_received_instance) { g_free(last_received_instance); } g_hash_table_remove(conv->data, "otr-label"); g_hash_table_remove(conv->data, "otr-button"); g_hash_table_remove(conv->data, "otr-icon"); g_hash_table_remove(conv->data, "otr-menu"); g_hash_table_remove(conv->data, "otr-private"); g_hash_table_remove(conv->data, "otr-authenticated"); g_hash_table_remove(conv->data, "otr-finished"); g_hash_table_remove(conv->data, "otr-select_best"); g_hash_table_remove(conv->data, "otr-select_recent"); g_hash_table_remove(conv->data, "otr-convorctx"); g_hash_table_remove(conv->data, "otr-conv_to_idx"); g_hash_table_remove(conv->data, "otr-max_idx"); g_hash_table_remove(conv->data, "otr-conv_multi_instances"); g_hash_table_remove(conv->data, "otr-warned_instances"); g_hash_table_remove(conv->data, "otr-last_received_ctx"); otrg_gtk_dialog_free_smp_data(conv); gtkconv = PIDGIN_CONVERSATION ( conv ); /* Only delete the OTR menus if we're the active conversation */ if (gtkconv != pidgin_conv_window_get_active_gtkconv(gtkconv->win)) { return; } win = pidgin_conv_get_window ( gtkconv ); otr_clear_win_menu_list(win); g_hash_table_remove(otr_win_menus, win); } /* Set up the per-conversation information display */ static void otrg_gtk_dialog_new_purple_conv(PurpleConversation *conv) { PidginConversation *gtkconv = PIDGIN_CONVERSATION(conv); ConnContext *context; ConvOrContext *convctx; GtkWidget *bbox; GtkWidget *button; GtkWidget *label; GtkWidget *bwbox; GtkWidget *icon; GtkWidget *menu; PurpleAccount *account; const char *name; OtrgUiPrefs prefs; GHashTable * conv_or_ctx_map; GHashTable * ctx_to_idx_map; gint * max_instance_idx; gboolean * is_conv_multi_instance; gboolean * have_warned_instances; otrl_instag_t * last_received_instance; /* Do nothing if this isn't an IM conversation */ if (purple_conversation_get_type(conv) != PURPLE_CONV_TYPE_IM) return; /* Get the prefs */ account = purple_conversation_get_account(conv); name = purple_conversation_get_name(conv); otrg_ui_get_prefs(&prefs, account, name); /* OTR is disabled for this buddy */ if (prefs.policy == OTRL_POLICY_NEVER) { otr_destroy_top_menu_objects(conv); return; } bbox = gtkconv->toolbar; context = otrg_plugin_conv_to_selected_context(conv, 0); /* See if we're already set up */ button = purple_conversation_get_data(conv, "otr-button"); if (button) { if (prefs.show_otr_button) { /* Check if we've been removed from the bbox; purple does this * when the user changes her prefs for the style of buttons to * display. */ GList *children = gtk_container_get_children(GTK_CONTAINER(bbox)); if (!g_list_find(children, button)) { gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0); } g_list_free(children); gtk_widget_show_all(button); } else { gtk_container_remove(GTK_CONTAINER(bbox), button); gtk_widget_hide_all(button); } dialog_update_label_conv(conv, otrg_plugin_context_to_trust(context)); return; } conv_or_ctx_map = g_hash_table_new_full(g_direct_hash, g_direct_equal, NULL, free); purple_conversation_set_data(conv, "otr-convorctx", conv_or_ctx_map); ctx_to_idx_map = g_hash_table_new_full(g_direct_hash, g_direct_equal, NULL, g_free); purple_conversation_set_data(conv, "otr-conv_to_idx", ctx_to_idx_map); max_instance_idx = g_malloc(sizeof(gint)); *max_instance_idx = 0; purple_conversation_set_data(conv, "otr-max_idx", (gpointer)max_instance_idx); is_conv_multi_instance = g_malloc(sizeof(gboolean)); *is_conv_multi_instance = FALSE; purple_conversation_set_data(conv, "otr-conv_multi_instances", (gpointer)is_conv_multi_instance); have_warned_instances = g_malloc(sizeof(gboolean)); *have_warned_instances = FALSE; purple_conversation_set_data(conv, "otr-warned_instances", (gpointer)have_warned_instances); last_received_instance = g_malloc(sizeof(otrl_instag_t)); *last_received_instance = OTRL_INSTAG_BEST; /* cannot be received */ purple_conversation_set_data(conv, "otr-last_received_ctx", (gpointer)last_received_instance); /* Make the button */ button = gtk_button_new(); gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE); if (prefs.show_otr_button) { gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0); } bwbox = gtk_hbox_new(FALSE, 0); gtk_container_add(GTK_CONTAINER(button), bwbox); icon = otr_icon(NULL, TRUST_NOT_PRIVATE, 1); gtk_box_pack_start(GTK_BOX(bwbox), icon, TRUE, FALSE, 0); label = gtk_label_new(NULL); gtk_box_pack_start(GTK_BOX(bwbox), label, FALSE, FALSE, 0); if (prefs.show_otr_button) { gtk_widget_show_all(button); } /* Make the context menu */ menu = gtk_menu_new(); gtk_menu_set_title(GTK_MENU(menu), _("OTR Messaging")); convctx = malloc(sizeof(ConvOrContext)); convctx->convctx_type = convctx_conv; convctx->conv = conv; g_hash_table_replace ( conv_or_ctx_map, conv, convctx ); build_otr_menu(convctx, menu, TRUST_NOT_PRIVATE); otr_build_status_submenu(pidgin_conv_get_window(gtkconv), convctx, menu, TRUST_NOT_PRIVATE); purple_conversation_set_data(conv, "otr-label", label); purple_conversation_set_data(conv, "otr-button", button); purple_conversation_set_data(conv, "otr-icon", icon); purple_conversation_set_data(conv, "otr-menu", menu); g_signal_connect(G_OBJECT(button), "button-press-event", G_CALLBACK(button_pressed), conv); dialog_update_label_conv(conv, otrg_plugin_context_to_trust(context)); dialog_resensitize(conv); /* Finally, add the state for the socialist millionaires dialogs */ otrg_gtk_dialog_add_smp_data(conv); } /* Set up the per-conversation information display */ static void otrg_gtk_dialog_new_conv(PurpleConversation *conv) { PidginConversation *gtkconv = PIDGIN_CONVERSATION(conv); conversation_switched (gtkconv->active_conv, NULL); } /* Remove the per-conversation information display */ static void otrg_gtk_dialog_remove_conv(PurpleConversation *conv) { GtkWidget *button; /* Do nothing if this isn't an IM conversation */ if (purple_conversation_get_type(conv) != PURPLE_CONV_TYPE_IM) return; button = purple_conversation_get_data(conv, "otr-button"); if (button) gtk_object_destroy(GTK_OBJECT(button)); conversation_destroyed(conv, NULL); } /* Set the OTR button to "sensitive" or "insensitive" as appropriate. */ static void dialog_resensitize(PurpleConversation *conv) { PurpleAccount *account; PurpleConnection *connection; GtkWidget *button; const char *name; OtrgUiPrefs prefs; /* Do nothing if this isn't an IM conversation */ if (purple_conversation_get_type(conv) != PURPLE_CONV_TYPE_IM) return; account = purple_conversation_get_account(conv); name = purple_conversation_get_name(conv); otrg_ui_get_prefs(&prefs, account, name); if (prefs.policy == OTRL_POLICY_NEVER) { otrg_gtk_dialog_remove_conv(conv); } else { otrg_gtk_dialog_new_conv(conv); } button = purple_conversation_get_data(conv, "otr-button"); if (!button) return; if (account) { connection = purple_account_get_connection(account); if (connection) { /* Set the button to "sensitive" */ gtk_widget_set_sensitive(button, 1); return; } } /* Set the button to "insensitive" */ gtk_widget_set_sensitive(button, 0); } /* Set all OTR buttons to "sensitive" or "insensitive" as appropriate. * Call this when accounts are logged in or out. */ static void otrg_gtk_dialog_resensitize_all(void) { purple_conversation_foreach(dialog_resensitize); } static void foreach_free_lists(void * key, void * value, void* data) { PidginWindow *win = (PidginWindow *) key; otr_clear_win_menu_list(win); } static char* conversation_timestamp(PurpleConversation *conv, time_t mtime, gboolean show_date) { PidginConversation *gtkconv = PIDGIN_CONVERSATION(conv); TrustLevel current_level = TRUST_NOT_PRIVATE; ConnContext *context = (ConnContext *) otrg_plugin_conv_to_context(conv, OTRL_INSTAG_RECENT, 0); TrustLevel *previous_level; int id; if (context != NULL) { current_level = otrg_plugin_context_to_trust(context); } previous_level = g_hash_table_lookup ( otr_win_status, gtkconv ); if (previous_level && *previous_level == current_level) { return NULL; } /* We want to update this gtkconv's privacy level only if the new privacy * level we received corresponds to the active conversation. */ if (conv == gtkconv->active_conv) { /* 'free' is handled by the hashtable */ TrustLevel * current_level_ptr = malloc(sizeof(TrustLevel)); *current_level_ptr = current_level; g_hash_table_replace ( otr_win_status, gtkconv, current_level_ptr ); } if (!previous_level) { return NULL; } id = -1; switch(current_level) { case TRUST_NOT_PRIVATE: id = img_id_not_private; break; case TRUST_UNVERIFIED: id = img_id_unverified; break; case TRUST_PRIVATE: id = img_id_private; break; case TRUST_FINISHED: id = img_id_finished; break; } if (id > 0 ) { char * msg = g_strdup_printf(" ", id); gtk_imhtml_append_text_with_images((GtkIMHtml*)gtkconv->imhtml, msg, 0, NULL); g_free(msg); } return NULL; } /* If the user has selected a meta instance, an incoming message may trigger an * instance change... we need to update the GUI appropriately */ static gboolean check_incoming_instance_change(PurpleAccount *account, char *sender, char *message, PurpleConversation *conv, PurpleMessageFlags flags) { otrl_instag_t * last_received_instance; otrl_instag_t selected_instance; gboolean have_received = FALSE; ConnContext *received_context = NULL; ConnContext *current_out = NULL; if (!conv || !conv->data) { return 0; } selected_instance = otrg_plugin_conv_to_selected_instag(conv, 0); current_out = otrg_plugin_conv_to_selected_context(conv, 0); last_received_instance = g_hash_table_lookup(conv->data, "otr-last_received_ctx"); if (!last_received_instance) { return 0; /* OTR disabled for this buddy */ } if (*last_received_instance == OTRL_INSTAG_MASTER || *last_received_instance >= OTRL_MIN_VALID_INSTAG) { have_received = TRUE; } received_context = (ConnContext *) otrg_plugin_conv_to_context(conv, (otrl_instag_t)OTRL_INSTAG_RECENT_RECEIVED, 0); if (!received_context) { return 0; } if (have_received && *last_received_instance != received_context->their_instance && selected_instance != OTRL_INSTAG_MASTER && selected_instance < OTRL_MIN_VALID_INSTAG) { dialog_update_label_conv(conv, otrg_plugin_context_to_trust(current_out)); } *last_received_instance = received_context->their_instance; return 0; } static void unref_img_by_id(int *id) { if (id && *id > 0) { purple_imgstore_unref_by_id(*id); *id = -1; } } static void dialog_quitting(void) { /* We need to do this by catching the quitting signal, because * purple (mistakenly?) frees up all data structures, including * the imgstore, *before* calling the unload() method of the * plugins. */ unref_img_by_id(&img_id_not_private); unref_img_by_id(&img_id_unverified); unref_img_by_id(&img_id_private); unref_img_by_id(&img_id_finished); } /* Initialize the OTR dialog subsystem */ static void otrg_gtk_dialog_init(void) { otr_win_menus = g_hash_table_new(g_direct_hash, g_direct_equal); otr_win_status = g_hash_table_new_full(g_direct_hash, g_direct_equal, NULL, free); img_id_not_private = purple_imgstore_add_with_id( g_memdup(not_private_png, sizeof(not_private_png)), sizeof(not_private_png), ""); img_id_unverified = purple_imgstore_add_with_id( g_memdup(unverified_png, sizeof(unverified_png)), sizeof(unverified_png), ""); img_id_private = purple_imgstore_add_with_id( g_memdup(private_png, sizeof(private_png)), sizeof(private_png), ""); img_id_finished = purple_imgstore_add_with_id( g_memdup(finished_png, sizeof(finished_png)), sizeof(finished_png), ""); purple_signal_connect(pidgin_conversations_get_handle(), "conversation-switched", otrg_plugin_handle, PURPLE_CALLBACK(conversation_switched), NULL); purple_signal_connect(purple_conversations_get_handle(), "deleting-conversation", otrg_plugin_handle, PURPLE_CALLBACK(conversation_destroyed), NULL); purple_signal_connect(pidgin_conversations_get_handle(), "conversation-timestamp", otrg_plugin_handle, PURPLE_CALLBACK(conversation_timestamp), NULL); purple_signal_connect(purple_conversations_get_handle(), "received-im-msg", otrg_plugin_handle, PURPLE_CALLBACK(check_incoming_instance_change), NULL); purple_signal_connect(purple_get_core(), "quitting", otrg_plugin_handle, PURPLE_CALLBACK(dialog_quitting), NULL); } /* Deinitialize the OTR dialog subsystem */ static void otrg_gtk_dialog_cleanup(void) { purple_signal_disconnect(purple_get_core(), "quitting", otrg_plugin_handle, PURPLE_CALLBACK(dialog_quitting)); purple_signal_disconnect(pidgin_conversations_get_handle(), "conversation-switched", otrg_plugin_handle, PURPLE_CALLBACK(conversation_switched)); purple_signal_disconnect(pidgin_conversations_get_handle(), "conversation-timestamp", otrg_plugin_handle, PURPLE_CALLBACK(conversation_timestamp)); purple_signal_disconnect(purple_conversations_get_handle(), "deleting-conversation", otrg_plugin_handle, PURPLE_CALLBACK(conversation_destroyed)); purple_signal_disconnect(purple_conversations_get_handle(), "received-im-msg", otrg_plugin_handle, PURPLE_CALLBACK(check_incoming_instance_change)); /* If we're quitting, the imgstore will already have been destroyed * by purple, but we should have already called dialog_quitting(), * so the img_id_* should be -1, and all should be OK. */ unref_img_by_id(&img_id_not_private); unref_img_by_id(&img_id_unverified); unref_img_by_id(&img_id_private); unref_img_by_id(&img_id_finished); g_hash_table_foreach(otr_win_menus, foreach_free_lists, NULL); g_hash_table_destroy(otr_win_menus); g_hash_table_destroy(otr_win_status); } static const OtrgDialogUiOps gtk_dialog_ui_ops = { otrg_gtk_dialog_init, otrg_gtk_dialog_cleanup, otrg_gtk_dialog_notify_message, otrg_gtk_dialog_display_otr_message, otrg_gtk_dialog_private_key_wait_start, otrg_gtk_dialog_private_key_wait_done, otrg_gtk_dialog_unknown_fingerprint, otrg_gtk_dialog_verify_fingerprint, otrg_gtk_dialog_socialist_millionaires, otrg_gtk_dialog_update_smp, otrg_gtk_dialog_connected, otrg_gtk_dialog_disconnected, otrg_gtk_dialog_stillconnected, otrg_gtk_dialog_finished, otrg_gtk_dialog_resensitize_all, otrg_gtk_dialog_new_conv, otrg_gtk_dialog_remove_conv }; /* Get the GTK dialog UI ops */ const OtrgDialogUiOps *otrg_gtk_dialog_get_ui_ops(void) { return >k_dialog_ui_ops; } pidgin-otr-4.0.0/tooltipmenu.h0000644000175000017500000001065012020421670013234 00000000000000/* * Off-the-Record Messaging plugin for pidgin * Copyright (C) 2004-2012 Ian Goldberg, Rob Smits, * Chris Alexander, Willy Lew, * Nikita Borisov * * * This program is free software; you can redistribute it and/or modify * it under the terms of version 2 of the GNU General Public License as * published by the Free Software Foundation. * * 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 */ /* This file is based on a copy of gtkkmenutray.h */ /* Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * * This program is free software; you can redistribute it and/or modify * 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 02111-1301 USA */ #ifndef TOOLTIP_MENU_H #define TOOLTIP_MENU_H #include #include #include #define TYPE_TOOLTIP_MENU (tooltip_menu_get_gtype()) #define TOOLTIP_MENU(obj) (GTK_CHECK_CAST((obj), TYPE_TOOLTIP_MENU, TooltipMenu)) #define TOOLTIP_MENU_CLASS(klass) (GTK_CHECK_CLASS_CAST((klass), TYPE_TOOLTIP_MENU, TooltipMenuClass)) #define IS_TOOLTIP_MENU(obj) (GTK_CHECK_TYPE((obj), TYPE_TOOLTIP_MENU)) #define IS_TOOLTIP_MENU_CLASS(klass) (GTK_CHECK_CLASS_TYPE((klass), TYPE_TOOLTIP_MENU)) #define TOOLTIP_MENU_GET_CLASS(obj) (GTK_CHECK_GET_CLASS((obj), TYPE_TOOLTIP_MENU, TooltipMenuClass)) typedef struct _TooltipMenu TooltipMenu; typedef struct _TooltipMenuClass TooltipMenuClass; struct _TooltipMenu { GtkMenuItem gparent; /**< The parent instance */ GtkWidget *tray; /**< The tray */ GtkTooltips *tooltips; /**< Tooltips */ }; struct _TooltipMenuClass { GtkMenuItemClass gparent; /**< The parent class */ }; G_BEGIN_DECLS /** * Registers the TooltipMenu class if necessary and returns the * type ID assigned to it. * * @return The TooltipMenu type ID */ GType tooltip_menu_get_gtype(void); /** * Creates a new TooltipMenu * * @return A new TooltipMenu */ GtkWidget *tooltip_menu_new(void); /** * Gets the box for the TooltipMenu * * @param tooltip_menu The TooltipMenu * * @return The box that this menu tray is using */ GtkWidget *tooltip_menu_get_box(TooltipMenu *tooltip_menu); /** * Appends a widget into the tray * * @param tooltip_menu The tray * @param widget The widget * @param tooltip The tooltip for this widget (widget requires its own X-window) */ void tooltip_menu_append(TooltipMenu *tooltip_menu, GtkWidget *widget, const char *tooltip); /** * Prepends a widget into the tray * * @param tooltip_menu The tray * @param widget The widget * @param tooltip The tooltip for this widget (widget requires its own X-window) */ void tooltip_menu_prepend(TooltipMenu *tooltip_menu, GtkWidget *widget, const char *tooltip); /** * Set the tooltip for a widget * * @param tooltip_menu The tray * @param widget The widget * @param tooltip The tooltip to set for the widget (widget requires its own X-window) */ void tooltip_menu_set_tooltip(TooltipMenu *tooltip_menu, GtkWidget *widget, const char *tooltip); G_END_DECLS #endif /* PIDGIN_MENU_TRAY_H */ pidgin-otr-4.0.0/otr-icons.h0000644000175000017500000007315712020421670012605 00000000000000/* * Off-the-Record Messaging plugin for pidgin * Copyright (C) 2004-2012 Ian Goldberg, Rob Smits, * Chris Alexander, Willy Lew, * Nikita Borisov * * * This program is free software; you can redistribute it and/or modify * it under the terms of version 2 of the GNU General Public License as * published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ /* The new OTR icons from ; the pixbuf inline * representations are generated by: * gdk-pixbuf-csource --raw --name=foo foo.png */ /* The pixbufs are used to generate the menu and button icons; the pngs * are used to generate the inline images in the conversation window. */ /* GdkPixbuf RGBA C-Source image dump */ #ifdef __SUNPRO_C #pragma align 4 (not_private_pixbuf) #endif #ifdef __GNUC__ static const guint8 not_private_pixbuf[] __attribute__ ((__aligned__ (4))) = #else static const guint8 not_private_pixbuf[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1024) */ "\0\0\4\30" /* pixdata_type (0x1010002) */ "\1\1\0\2" /* rowstride (64) */ "\0\0\0@" /* width (16) */ "\0\0\0\20" /* height (16) */ "\0\0\0\20" /* pixel_data: */ "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\220\220\220\1|||m}}}\335zzz\366|||\265" "yyy\25\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0qqq\1\200\200\200\252\250\250\250\377\313\313\313\377\316\316" "\316\377\265\265\265\377\213\213\213\377rrrK\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0{{{n\250\250\250\377\330\330" "\330\377\326\326\326\377\312\312\312\377\300\300\300\377\274\274\274" "\377\201\201\201\347}}}\335zzz\366|||\265yyy\25\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0|||\335\310\310\310\377\320\320\320\377\322\322\322\377\311" "\311\311\377\273\273\273\377\221\221\221\377\250\250\250\377\313\313" "\313\377\316\316\316\377\265\265\265\377\213\213\213\377rrrK\0\0\0\0" "\220\220\220\1|||m|||\376|||\377\220\220\220\377\276\276\276\377\277" "\277\277\377\235\235\235\377\250\250\250\377\330\330\330\377\326\326" "\326\377\312\312\312\377\300\300\300\377\275\275\275\377\207\207\207" "\325qqq\1\200\200\200\252\250\250\250\377\313\313\313\377\316\316\316" "\377\265\265\265\377\213\213\213\377\240\240\240\377\202\202\202\377" "\310\310\310\377\320\320\320\377\322\322\322\377\311\311\311\377\274" "\274\274\377\264\264\264\377\240\240\240\375{{{n\250\250\250\377\330" "\330\330\377\326\326\326\377\312\312\312\377\300\300\300\377\275\275" "\275\377\214\214\214\377zzz\377\311\311\311\377\303\303\303\377\305\305" "\305\377\277\277\277\377\267\267\267\377\255\255\255\377\242\242\242" "\377|||\335\310\310\310\377\320\320\320\377\322\322\322\377\311\311\311" "\377\274\274\274\377\264\264\264\377\237\237\237\377\177\177\177\377" "\261\261\261\377\271\271\271\377\267\267\267\377\264\264\264\377\252" "\252\252\377\260\260\260\377\224\224\224\354zzz\367\311\311\311\377\303" "\303\303\377\305\305\305\377\277\277\277\377\267\267\267\377\255\255" "\255\377\242\242\242\377\226\226\226\377\207\207\207\377\270\270\270" "\377\256\256\256\377\250\250\250\377\256\256\256\377\251\251\251\377" "sss\264|||\266\261\261\261\377\271\271\271\377\267\267\267\377\264\264" "\264\377\252\252\252\377\260\260\260\377\223\223\223\377ooo\377www\377" "\230\230\230\377\236\236\236\377\237\237\237\377\232\232\232\377\223" "\223\223\377ZZZ\306yyy\25\207\207\207\377\270\270\270\377\256\256\256" "\377\250\250\250\377\256\256\256\377\251\251\251\377\177\177\177\377" "MMM\377\262\262\262\377\271\271\271\377\275\275\275\377\276\276\276\377" "\251\251\251\377\245\245\245\377\205\205\205\364CCCfwww\377\230\230\230" "\377\236\236\236\377\237\237\237\377\232\232\232\377\223\223\223\377" "\\\\\\\377AAA\377\261\261\261\377\234\234\234\377\232\232\232\377\223" "\223\223\377\214\214\214\377\221\221\221\377\217\217\217\374DDD\345\262" "\262\262\377\271\271\271\377\275\275\275\377\276\276\276\377\251\251" "\251\377\245\245\245\377\205\205\205\364AAA\270\214\214\214\377\242\242" "\242\377\235\235\235\377\235\235\235\377\235\235\235\377\246\246\246" "\377sss\361BBB\372\261\261\261\377\234\234\234\377\232\232\232\377\223" "\223\223\377\214\214\214\377\221\221\221\377\217\217\217\374888GLLL\266" "bbb\377ccc\377ccc\377ccc\377aaa\364@@@qEEE\244\214\214\214\377\242\242" "\242\377\235\235\235\377\235\235\235\377\235\235\235\377\246\246\246" "\377sss\3618883\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0>>>\12LLL\266bbb\377ccc\377ccc\377ccc\377aaa\364@@@q\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}; static const char not_private_png[] = "\x89\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52" "\x00\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff" "\x61\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00" "\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93" "\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0d\xd7\x00\x00\x0d\xd7" "\x01\x42\x28\x9b\x78\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xd8\x01" "\x1f\x17\x24\x0d\x91\x93\x72\x75\x00\x00\x02\x6f\x49\x44\x41\x54" "\x38\xcb\x7d\x92\x3d\x4f\xdb\x50\x18\x85\xcf\xbd\xfe\xc0\xb1\x55" "\x8c\x9c\x34\xb4\x5d\x02\x4a\x25\x22\x22\xa2\x08\x58\x10\xbf\x00" "\xd4\xa5\x43\xa6\x0e\xed\xd4\xa9\x5f\x41\xdd\x58\xba\xb1\x51\xf8" "\x19\x74\xac\xe8\x4c\x16\xa4\x28\x52\x16\x06\x4b\x08\x70\x90\x40" "\xb2\xd5\xba\x03\xb1\x71\xee\x95\x7d\xaf\xbb\xb5\x14\x25\x3c\xdb" "\xbb\x9c\xe7\x1c\xe9\x25\xb8\xc7\xde\xde\x1e\x09\xc3\xf0\x1d\x21" "\xe4\x93\x10\xe2\x29\xa5\xf4\x48\x08\xf1\x66\x67\x67\xe7\x17\xc6" "\x40\xee\x1e\xed\x76\x9b\xd8\xb6\x7d\x50\xab\xd5\x5a\xd5\x6a\x15" "\x8a\xa2\xc0\xf7\x7d\xb8\xae\x0b\xdf\xf7\x5f\xec\xee\xee\xfe\x78" "\x30\x60\x7b\x7b\xfb\xc3\xd2\xd2\xd2\x7e\xb3\xd9\x84\x94\x12\x71" "\x1c\x23\x49\x12\x64\x59\x86\xe3\xe3\xe3\x20\xcb\xb2\xe4\x7e\x2b" "\xf5\xbf\x34\x42\x3e\xce\xcd\xcd\x81\x31\x06\x4a\x29\xf2\x3c\x47" "\x9a\xa6\x70\x5d\x17\x0b\x0b\x0b\x4f\xee\xb4\xda\x74\x5d\xf7\xe7" "\xd6\xd6\xd6\x0b\x72\x77\x37\x80\x7d\x00\xa4\x54\x2a\xa1\xd1\x68" "\x80\x10\x02\xcf\xf3\x60\x59\x16\xee\xb7\x12\x42\xa0\xd7\xeb\xb9" "\x4a\xbb\xdd\x26\x00\x0e\x16\x17\x17\x3f\xaf\xad\xad\x91\x7a\xbd" "\x0e\x5d\xd7\x71\x72\x72\x82\x34\x4d\x71\x7d\x7d\x8d\x95\x95\x15" "\x00\xf8\xdb\x88\x31\x06\xc6\x18\x14\x45\x29\x52\xd3\x34\xdf\xd7" "\x6a\xb5\x56\xb3\xd9\x84\x65\x59\xc8\xb2\x0c\x96\x65\x61\x79\x79" "\x19\x61\x18\x82\x31\x06\x42\x08\xa2\x28\x42\x14\x45\x48\x92\x04" "\x69\x9a\x82\x73\x0e\x4a\x29\x55\xc7\xed\xce\xb2\x0c\x8c\x31\x14" "\x8b\x45\x44\x51\x84\x20\x08\x60\x18\x06\xa4\x94\x10\x42\x20\x49" "\x12\xe8\xba\x8e\xe1\x70\xf8\x9b\x4a\x29\x9f\x4d\x32\x28\x8a\x82" "\xd9\xd9\x59\xb8\xae\x8b\x3c\xcf\x31\x1a\x8d\x10\xc7\x31\x54\x55" "\x05\xe7\x1c\x83\xc1\xa0\xab\x52\x4a\x8f\x82\x20\xd8\x18\x67\xb8" "\xb9\xb9\xc1\xf9\xf9\x39\x0c\xc3\xc0\xe5\xe5\x25\x74\x5d\x07\x21" "\x04\xc3\xe1\x10\x9c\x73\xf8\xbe\xef\x50\x21\xc4\xeb\x49\x86\x30" "\x0c\xe1\x79\x1e\xd6\xd7\xd7\x31\x3f\x3f\x8f\x4a\xa5\x82\x4a\xa5" "\x02\xdb\xb6\xe1\x38\x0e\xea\xf5\x7a\x43\xed\xf5\x7a\x2f\x57\x57" "\x57\xc7\x1a\x2e\x2e\x2e\x10\xc7\x31\xf2\x3c\xc7\xd5\xd5\x15\xa4" "\x94\xe0\x9c\x83\x73\x0e\x4d\xd3\x60\x9a\xa6\xa1\x54\xab\xd5\xef" "\xad\x56\xeb\x51\xa9\x54\x82\xe3\x38\x98\x99\x99\x81\x10\x02\x53" "\x53\x53\xd0\x34\xed\xd6\xf3\xbc\xa3\x62\xb1\xf8\x7c\x7a\x7a\x1a" "\x79\x9e\x43\xd3\x34\x14\x0a\x05\xd8\xb6\x8d\xd3\xd3\xd3\x58\x95" "\x52\x3e\x7e\xc8\x30\x1a\x8d\xbe\x76\x3a\x1d\x59\x2e\x97\x37\x08" "\xf9\xf7\xf9\x52\xca\xdb\xc1\x60\xf0\x45\x55\x14\xe5\xdb\xd9\xd9" "\xd9\xab\x72\xb9\x8c\x34\x4d\x61\x9a\x26\x4c\xd3\x44\xa1\x50\x40" "\xbf\xdf\xbf\x05\x10\x1e\x1e\x1e\x6e\x62\x02\x2a\xe7\xfc\x6d\xa7" "\xd3\x71\x26\x19\xba\xdd\x6e\x1f\x0f\xf0\x07\x80\x70\x86\xf9\xad" "\x8e\x2a\x07\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82"; /* GdkPixbuf RGBA C-Source image dump */ #ifdef __SUNPRO_C #pragma align 4 (unverified_pixbuf) #endif #ifdef __GNUC__ static const guint8 unverified_pixbuf[] __attribute__ ((__aligned__ (4))) = #else static const guint8 unverified_pixbuf[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1024) */ "\0\0\4\30" /* pixdata_type (0x1010002) */ "\1\1\0\2" /* rowstride (64) */ "\0\0\0@" /* width (16) */ "\0\0\0\20" /* height (16) */ "\0\0\0\20" /* pixel_data: */ "\0\0\0\0\0\0\0\0yyy\25|||\231}}}\335yyy\373|||\335{{{\231yyy\25\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0yyy@|||\357" "\245\245\245\371\303\303\303\377\313\313\313\377\274\274\274\377\237" "\237\237\371{{{\357yyy@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0yyy\25{{{\357\302\302\302\377\326\326\326\377\321\321\321\377\312\312" "\312\377\305\305\305\377\304\304\304\377\262\262\262\377zzz\357yyy\25" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0{{{\231\245\245\245\371\324\324" "\324\377\324\324\324\377\327\327\327\377\316\316\316\377\304\304\304" "\377\272\272\272\377\276\276\276\377\232\232\232\371zzz\231\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0|||\335\300\300\300\377\314\314\314\377" "\321\321\321\377\322\322\322\377\314\314\314\377\303\303\303\377\271" "\271\271\377\264\264\264\377\205pp\377\244\0\0\377;\0\0\\\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0yyy\373\307\307\307\377\303\303\303\377\307\307\307" "\377\310\310\310\377\304\304\304\377\276\276\276\377\266\266\266\377" "\256\256\256\377\244\0\0\377\244\0\0\377\244\0\0\377\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0|||\335\270\270\270\377\276\276\276\377\275\275\275\377" "\276\276\276\377\273\273\273\377\266\266\266\377\257\257\257\377\203" "mm\377\244\0\0\377\244\0\0\377\244\0\0\377;\0\0\\\0\0\0\0\0\0\0\0\0\0" "\0\0{{{\231\234\234\234\371\276\276\276\377\263\263\263\377\264\264\264" "\377\262\262\262\377\255\255\255\377\250\250\250\377\244\0\0\377\244" "\0\0\377\377\377\377\377\244\0\0\377\244\0\0\377\0\0\0\0\0\0\0\0\0\0" "\0\0yyy\25xxx\371\255\255\255\377\270\270\270\377\256\256\256\377\250" "\250\250\377\251\251\251\377\205pp\377\244\0\0\377\345\273\273\377\300" "\300\300\377\337\252\252\377\244\0\0\377;\0\0\\\0\0\0\0\0\0\0\0AAA\77" "\\\\\\\367\200\200\200\377\230\230\230\377\253\253\253\377\262\262\262" "\377\252\252\252\377\244\0\0\377\244\0\0\377\377\377\377\377SSS\377\377" "\377\377\377\244\0\0\377\244\0\0\377\0\0\0\0\0\0\0\0FFF\276\225\225\225" "\376\310\310\310\377\243\243\243\377\210\210\210\377{{{\377lVV\377\244" "\0\0\377\304[[\377\377\377\377\377)))\377\377\377\377\377\304[[\377\244" "\0\0\377;\0\0\\\0\0\0\10CCC\360\254\254\254\377\251\251\251\377\277\277" "\277\377\317\317\317\377\331\331\331\377\244\0\0\377\244\0\0\377\377" "\377\377\377\377\377\377\377\314\314\314\377\377\377\377\377\377\377" "\377\377\244\0\0\377\244\0\0\377\0\0\0\33BBB\372\256\256\256\377\235" "\235\235\377\234\234\234\377\232\232\232\377t__\377\244\0\0\377\317{" "{\377\377\377\377\377\377\377\377\377)))\377\377\377\377\377\377\377" "\377\377\304[[\377\244\0\0\377;\0\0oEEE\324\226\226\226\377\247\247\247" "\377\220\220\220\377\215\215\215\377\244\0\0\377\244\0\0\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\244\0\0\377\244\0\0\377AAA6GGG\365" "\235\235\235\377\263\263\263\377\270\270\270\377\244\0\0\377\244\0\0" "\377\244\0\0\377\244\0\0\377\244\0\0\377\244\0\0\377\244\0\0\377\244" "\0\0\377\244\0\0\377\244\0\0\377\244\0\0\377\0\0\0\0CCC\\@@@\332AAA\374" "AAA\377>))\377\244\0\0\377\244\0\0\377\244\0\0\377\244\0\0\377\244\0" "\0\377\244\0\0\377\244\0\0\377\244\0\0\377\244\0\0\377;\0\0\\"}; static const char unverified_png[] = "\x89\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52" "\x00\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff" "\x61\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00" "\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93" "\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0d\xd7\x00\x00\x0d\xd7" "\x01\x42\x28\x9b\x78\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xd8\x01" "\x1f\x17\x26\x0b\x4a\xc6\xb5\xc2\x00\x00\x02\x55\x49\x44\x41\x54" "\x38\xcb\x8d\x92\xbd\x4b\x5b\x51\x18\x87\x9f\x73\xaf\xf7\x26\x44" "\xa1\x7e\xa6\x42\x4a\x6a\x8b\x54\xd4\xa5\x20\x14\xc4\xa1\x0d\x51" "\xcc\x1a\x90\x2c\x9a\x55\x70\x76\x0a\x96\x76\x11\xb3\x0a\x0e\xfd" "\x03\x8a\x8b\x04\xba\x16\x14\xac\x05\x21\x52\xdc\xda\x08\x12\xa1" "\xa8\x83\x62\x51\x2f\xc2\xfd\xcc\x39\xa7\x8b\x95\xa6\xa6\xb4\xbf" "\xed\x1d\x7e\xcf\xfb\xbc\x87\x23\xb8\x4d\xa9\x54\xea\x33\x4d\x73" "\x59\x08\x31\xd9\x68\x34\xd2\xa6\x69\x1e\x6b\xad\xb7\x94\x52\xaf" "\xcb\xe5\xf2\x05\x7f\x89\xb8\x2d\xbf\x32\x4d\xf3\xc3\xf0\xf0\x70" "\x22\x9d\x4e\xdb\xf1\x78\x1c\xc7\x71\x38\x39\x39\x09\xeb\xf5\xba" "\xab\x94\xca\x97\xcb\xe5\x4f\x2d\x01\xa5\x52\xa9\xcf\x30\x8c\xc3" "\xe9\xe9\xe9\xce\xde\xde\x5e\xa2\x28\x22\x08\x02\xa2\x28\x42\x6b" "\xcd\xe5\xe5\x25\xd5\x6a\xf5\x5a\x6b\xfd\xac\x95\x89\x61\x18\xc6" "\xf2\xc8\xc8\x48\xa2\xbb\xbb\x1b\xa5\x14\xb6\x6d\xd3\xd6\xd6\x86" "\xd6\x1a\xd7\x75\xe9\xe8\xe8\x60\x60\x60\x20\x21\x84\x58\x6e\x65" "\x60\x08\x21\x26\x53\xa9\x94\xed\xfb\x3e\x52\x4a\xa2\x28\x42\x29" "\x85\xd6\xfa\x0e\x72\x51\xab\xd9\x23\x2b\x2b\xf3\x13\x30\x77\x0f" "\x20\xa5\x4c\xc7\x62\x31\x3c\xcf\xc3\x75\x5d\x5c\xd7\xc5\xf7\x7d" "\xa2\x28\x42\x4a\x49\x18\x86\x3c\x5e\x5d\x05\x60\x01\xde\xdf\x03" "\x98\xa6\x79\xec\x38\x0e\x51\x14\xdd\x01\x3c\xcf\xc3\xf7\x7d\x82" "\x20\xe0\xdb\xf6\x76\x53\xe1\x4f\x0b\x43\x6b\xbd\x75\x7a\x7a\x1a" "\x02\x4d\x00\xcf\xf3\x08\x82\x80\x27\x6b\x6b\x00\xcc\x6a\xdd\xd2" "\xc2\x50\x4a\xbd\xae\xd7\xeb\x5c\x5d\x5d\x61\x59\x16\x61\x18\xe2" "\xba\x2e\x8d\x46\x83\xa3\x6a\x15\x80\xcc\xe6\x26\x3b\x3b\x3b\x4c" "\x6c\x6c\xdc\xb3\x10\x99\x4c\xe6\x65\x2a\x95\xfa\x38\x38\x38\x18" "\xef\xef\xef\xa7\xa7\xa7\x87\x58\x2c\x86\xef\xfb\x84\x85\xc2\xdd" "\xf6\x99\x99\x19\x2a\x95\x0a\xeb\x42\x00\x30\x77\xfb\x87\x0c\xcb" "\xb2\xde\x8e\x8f\x8f\xc7\x72\xb9\x1c\xed\xed\xed\x1c\x1d\x1d\xb1" "\xb7\xb7\xc7\xe7\x4a\x05\x80\x81\xd9\x59\x00\x6a\xb5\x5a\xd3\x7c" "\x6b\x11\x17\xd9\x6c\xf6\x7a\x61\x61\xe1\x81\x94\x92\x64\x32\x49" "\x67\x67\x27\x89\x44\x82\x2f\x43\x43\x4d\xb7\xef\xef\xef\x33\x36" "\x36\x06\xf0\xbb\xc5\xa3\x36\xad\x75\xc2\x30\x0c\x1c\xc7\xe1\xe6" "\xe6\x06\xa5\x14\x87\xbb\xbb\x3c\x07\x46\x97\x96\xee\x1e\xab\x58" "\x2c\x36\x59\x7c\x5f\x5f\x67\x02\x66\xc4\xd4\xd4\xd4\xd7\x7c\x3e" "\x3f\xda\xd5\xd5\xc5\xf9\xf9\x39\x52\x4a\x1e\x2e\x2e\x36\x6d\x6f" "\x95\x5f\x16\x22\x93\xc9\xbc\xb0\x6d\x7b\xbb\x50\x28\x24\x92\xc9" "\x24\x96\x65\xf1\x23\x97\xe3\x7f\x23\x00\xb2\xd9\xec\x9c\x94\xf2" "\x8d\x10\xe2\x29\x60\xca\xb3\x33\xe6\x0f\x0e\xfe\x59\x7e\x07\xc5" "\x9f\xbe\xe0\x26\xd8\x54\xc1\xc5\x45\x00\x00\x00\x00\x49\x45\x4e" "\x44\xae\x42\x60\x82"; /* GdkPixbuf RGBA C-Source image dump */ #ifdef __SUNPRO_C #pragma align 4 (private_pixbuf) #endif #ifdef __GNUC__ static const guint8 private_pixbuf[] __attribute__ ((__aligned__ (4))) = #else static const guint8 private_pixbuf[] = #endif { "" /* Pixbuf magic (0x47646b50) */ "GdkP" /* length: header (24) + pixel_data (1024) */ "\0\0\4\30" /* pixdata_type (0x1010002) */ "\1\1\0\2" /* rowstride (64) */ "\0\0\0@" /* width (16) */ "\0\0\0\20" /* height (16) */ "\0\0\0\20" /* pixel_data: */ "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\262s\15\25\264v\21\231\265w" "\22\335\262s\16\373\265v\21\335\264u\17\231\262s\15\25\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\262s\15@\264v\21\357" "\321\240T\371\345\277\204\377\353\310\217\377\343\270v\377\317\232F\371" "\264u\20\357\262s\15@\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\262s\15\25\264u\21\357\344\276\202\377\361\323\244\377\357\316\232\377" "\355\306\212\377\354\300}\377\354\300|\377\336\255`\377\263t\17\357\262" "s\15\25\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\264u\20\231\321\240R" "\371\361\320\240\377\361\321\241\377\362\324\250\377\357\312\222\377" "\354\300|\377\350\265f\377\351\271n\377\315\224:\371\264t\16\231\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\265v\22\335\344\274~\377\356\310" "\216\377\360\315\230\377\360\317\234\377\356\310\215\377\353\276y\377" "\350\264d\377\346\257X\377\337\253X\377\264u\16\335\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\262s\16\373\352\303\206\377\353\277z\377\355\303" "\203\377\355\304\205\377\354\300|\377\351\271m\377\347\260[\377\344\250" "J\377\345\261`\377\262s\15\373\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\265v\20\335\341\264m\377\351\271n\377\351\270l\377\351\271n\377\351" "\266h\377\347\261\\\377\345\251M\377\343\246F\377\335\246O\377\264u\16" "\335\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\264u\16\231\315\227\77\371" "\351\271n\377\346\255U\377\346\256V\377\345\254R\377\344\247H\377\342" "\241<\377\345\253Q\377\313\2212\371\264t\16\231\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\262s\15\25\260r\22\371\335\250U\377\347\263`\377\343" "\250J\377\342\242>\377\342\243\77\377\344\252N\377\334\243I\377\261r" "\20\367\262s\15\25\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\\5f\77~RZ" "\367\266z\32\377\314\2237\377\335\246N\377\343\255W\377\335\245L\377" "\314\2226\377\266y\32\377xMT\370\\5f$\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" "\0\0\0\0a:j\276\253\214\252\376\326\304\305\377\307\237b\377\273\203" "*\377\263u\20\377\272\202*\377\305\234`\377\325\302\304\377\236\177\241" "\373`9i\240\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0_7h\360\300\244\275" "\377\300\240\273\377\316\271\313\377\331\313\325\377\340\326\334\377" "\323\277\317\377\275\233\272\377\261\210\255\377\267\233\266\377b:k\320" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0]6g\372\302\246\277\377\270\223" "\264\377\270\221\262\377\266\217\262\377\263\212\257\377\256\202\252" "\377\255\177\250\377\260\205\254\377\275\242\273\377a:j\334\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0a9j\324\254\215\253\377\277\236\273\377" "\260\204\253\377\255\200\251\377\255\177\250\377\255\177\250\377\256" "\201\251\377\274\231\267\377\264\226\262\377a9j\335\0\0\0\0\0\0\0\0\0" "\0\0\0\0\0\0\0\0\0\0\0\\5f6b * * This program is free software; you can redistribute it and/or modify * it under the terms of version 2 of the GNU General Public License as * published by the Free Software Foundation. * * 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 */ #ifndef __OTRG_GTK_UI_H__ #define __OTRG_GTK_UI_H__ /* Construct the GTK OTR UI widget */ GtkWidget* otrg_gtk_ui_make_widget(PurplePlugin *plugin); /* Get the GTK UI ops */ const OtrgUiUiOps *otrg_gtk_ui_get_ui_ops(void); #endif pidgin-otr-4.0.0/gtk-dialog.h0000644000175000017500000000207512020421667012707 00000000000000/* * Off-the-Record Messaging plugin for pidgin * Copyright (C) 2004-2012 Ian Goldberg, Rob Smits, * Chris Alexander, Willy Lew, * Nikita Borisov * * * This program is free software; you can redistribute it and/or modify * it under the terms of version 2 of the GNU General Public License as * published by the Free Software Foundation. * * 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 */ #ifndef __OTRG_GTK_DIALOG_H__ #define __OTRG_GTK_DIALOG_H__ /* Get the GTK dialog UI ops */ const OtrgDialogUiOps *otrg_gtk_dialog_get_ui_ops(void); #endif pidgin-otr-4.0.0/README0000644000175000017500000003400612020740352011366 00000000000000 Off-the-Record Messaging plugin for pidgin v4.0.0, 4 Sep 2012 This is a pidgin plugin which implements Off-the-Record (OTR) Messaging. It is known to work (at least) under the Linux and Windows versions of pidgin (2.x). OTR allows you to have private conversations over IM by providing: - Encryption - No one else can read your instant messages. - Authentication - You are assured the correspondent is who you think it is. - Deniability - The messages you send do _not_ have digital signatures that are checkable by a third party. Anyone can forge messages after a conversation to make them look like they came from you. However, _during_ a conversation, your correspondent is assured the messages he sees are authentic and unmodified. - Perfect forward secrecy - If you lose control of your private keys, no previous conversation is compromised. For more information on Off-the-Record Messaging, see http://otr.cypherpunks.ca/ USAGE Run pidgin, and open the Plugins panel. (If you had a copy of pidgin running before you installed pidgin-otr, you will need to restart it.) Find the Off-the-Record Messaging plugin, and enable it by selecting the checkbox next to it. That should be all you need to do. CONFIGURATION Click "Configure Plugin" to bring up the OTR UI. The UI has two "pages": "Config" and "Known fingerprints". The "Config" page allows you generate private keys, and to set OTR settings and options. Private keys are used to authenticate you to your buddies. OTR will automatically generate private keys when needed, but you can also generate them manually if you wish by using the "Generate" button here. Choose one of your accounts from the menu, click "Generate" and wait until it's finished. You'll see a sequence of letters and number appear above the "Generate" button. This is the "fingerprint" for that account; it is unique to that account. If you have multiple IM accounts, you can generate private keys for each one separately. The OTR settings determine when private messaging is enabled. The checkboxes on this page control the default settings; you can edit the per-buddy settings by right-clicking on your buddy in the buddy list, and choosing "OTR Settings" from the menu. The settings are: [X] Enable private messaging [X] Automatically initiate private messaging [ ] Require private messaging [ ] Don't log OTR conversations If the "enable private messaging" box is unchecked, private messages will be disabled completely (and the other two boxes will be greyed out, as they're irrelevant). If the first box is checked, but "automatically initiate private messaging" is unchecked, private messaging will be enabled, but only if either you or your buddy explicitly requests to start a private conversation (and the third box will be greyed out, as it's irrelevant). If the first two boxes are checked, but "require private messaging" is unchecked, OTR will attempt to detect whether your buddy can understand OTR private messages, and if so, automatically start a private conversation. If the first three boxes are checked, messages will not be sent to your buddy unless you are in a private conversation. If the fourth box is checked, OTR-protected conversations will not be logged, even if logging of instant messages is turned on in pidgin. The OTR UI Options control the appearance of OTR in your conversation window. At present, the only option is: [X] Show OTR button in toolbar This option controls whether an extra button will appear in your toolbar. This button will allow you to quickly see the OTR status of your conversation, to manually start or stop an OTR conversation, or to authenticate your buddy. All of these abilities are already available in the OTR menu, but some people prefer a butter closer to where they type their messages. The "Known fingerprints" page allows you to see the fingerprints of any buddies you have previously communicated with privately. The "Status" will indicate the current OTR status of any conversation using each fingerprint. The possibilities are "Private", which means you're having a private conversation, "Unverified", which means you have not yet verified your buddy's fingerprint, "Not private", which means you're just chatting in IM the usual (non-OTR) way, and "Finished", which means your buddy has selected "End private conversation"; at this point, you will be unable to send messages to him at all, until you either also choose "End private conversation" (in which case further messages will be sent unencrypted), or else choose "Refresh private conversation" (in which case further messages will be sent privately). The table also indicates whether or not you have verified this fingerprint by authenticating your buddy. By selecting one of your buddies from the list, you'll be able to do one or more of the following things by clicking the buttons below the list: - "Start private conversation": if the status is "Not private" or "Finished", this will attempt to start a private conversation. - "End private conversation": if the status is "Unverified", "Private", or "Finished", you can force an end to your private conversation by clicking this button. There's not usually a good reason to do this, though. - "Verify fingerprint": this will open a window where you can verify the value of your buddies' fingerprint. If you do not wish to work with fingerprints directly, you should instead authenticate used the OTR button from within a conversation. - "Forget fingerprint": this will remove your buddy's fingerprint from the list. You'll have to re-authenticate him the next time you start a private conversation with him. Note that you can't forget a fingerprint that's currently in use in a private conversation. You can close the configuration panel (but make sure not to disable the OTR plugin). IM as normal with your buddies. If you want to start a private conversation with one of them, bring up the OTR menu (either from the menubar or by clicking the OTR button, if you have enabled it). From the OTR menu, select "Start private conversation". If your buddy does not have the OTR plugin, a private conversation will (of course) not be started. [But he or she will get some information about OTR instead.] If your buddy does have the OTR plugin (and it's enabled), a private conversation will be initiated. If both you and your buddy have OTR software, and your OTR settings set to automatically initiate private messaging, your clients may recognize each other and automatically start a private conversation. The first time you have a private conversation with one of your buddies, a message will appear in your conversation telling you to authenticate them. You may authenticate by selecting "Authenticate Buddy" on the OTR menu. This is described later on. At this point, the label on the OTR button in the conversation window will change to "OTR: Unverified". This means that, although you are sending encrypted messages, you have not yet authenticated your buddy, and so it is not certain that the person who can decrypt these messages is actually your buddy (it may be an attacker). This situation will remain until either you or your buddy choose "Authenticate Buddy" from the OTR button menu (described next). The OTR menu contains the following choices: Start / Refresh private conversation Choosing this menu option will attempt to start (or refresh, if you're already in one) a private conversation with this buddy. End private conversation If you wish to end the private conversation, and go back to communicating without privacy protection, you can select this option. Note that if you have "Automatically initiate private messaging" set, it is likely that a new private conversation will automatically begin immediately. Authenticate Buddy For more information on authentication, see http://otr-help.cypherpunks.ca/3.2.0/authenticate.php OTR provides three ways to authenticate your buddy: 1) Question and answer 2) Shared secret 3) Manual fingerprint verification To start the authentication process, you need to first be communicating with your buddy in the "Unverified" or "Private" states. [Although the "Private" state indicates that you have already successfully authenticated your buddy, and it is not necessary to do it again.] Choose "Authenticate buddy" from the OTR menu. The Authenticate Buddy dialog will pop up. Use the combo box to select which of the three authentication methods you would like to use. Once you have authenticated your buddy, your OTR status will change to "Private". OTR will also remember that you successfully authenticated, and during future private conversations with the same buddy, you will no longer get the warning message when you start chatting. This will continue until your buddy switches to a computer or an IM account he or she hasn't used before, at which point OTR will not recognize him or her and you will be asked to authenticate again. Question and answer ------------------- To authenticate using a question, pick a question whose answer is known only to you and your buddy. Enter this question and this answer, then wait for your buddy to enter the answer too. If the answers don't match, then you may be talking to an imposter. If your buddy answers correctly, then you have successfully authenticated him or her, and the OTR status of this conversation will change to "Private". Your buddy will probably also want to ask you a question as well in order for him or her to authenticate you back. Note that this method first appeared in pidgin-otr 3.2.0; if your buddy is using an older version, this will not work. Shared secret ------------- To authenticate someone with the shared secret method, you and your buddy should decide on a secret word or phrase in advance. This can be done however you like, but you shouldn't type the phrase directly into your conversation. Enter the shared secret into the field provided in the Authenticate Buddy dialog box. Once you enter the secret and hit OK, your buddy will be asked to do exactly the same thing. If you both enter the same text, then OTR will accept that you are really talking to your buddy. Otherwise, OTR reports that authentication has failed. This either means that your buddy made a mistake typing in the text, or it may mean that someone is intercepting your communication. Note that this method first appeared in pidgin-otr 3.1.0; if your buddy is using an older version, this will not work. Manual fingerprint verification ------------------------------- If your buddy is using a version of pidgin-otr before 3.1.0, or a different OTR client that does not support the other authentication methods, you will need to use manual fingerprint verification. You will need some other authenticated communication channel (such as speaking to your buddy on the telephone, or sending gpg-signed messages). You should tell each other your own fingerprints. If the fingerprint your buddy tells you matches the one listed as his or her "purported fingerprint", pull down the selection that says "I have not" (verified that this is in fact the correct fingerprint), and change it to "I have". Once you do this, the OTR status will change to "Private". Note that you only need to do this once per buddy (or once per fingerprint, if your buddy has more than one fingerprint). pidgin-otr will remember which fingerprints you have marked as verified. What's this? This will open a web browser to get online help. NOTES Please send your bug reports, comments, suggestions, patches, etc. to us at the contact address below. This plugin only attempts to protect instant messages, not multi-party chats, file transfers, etc. MAILING LISTS There are three mailing lists pertaining to Off-the-Record Messaging: otr-announce: http://lists.cypherpunks.ca/mailman/listinfo/otr-announce/ *** All users of OTR software should join this. *** It is used to announce new versions of OTR software, and other important information. otr-users: http://lists.cypherpunks.ca/mailman/listinfo/otr-users/ Discussion of usage issues related to OTR Messaging software. otr-dev: http://lists.cypherpunks.ca/mailman/listinfo/otr-dev/ Discussion of OTR Messaging software development. LICENSE The Off-the-Record Messaging plugin for pidgin is covered by the following (GPL) license: Off-the-Record Messaging plugin for pidgin Copyright (C) 2004-2012 Ian Goldberg, Rob Smits, Chris Alexander, Willy Lew, Lisa Du, Nikita Borisov This program is free software; you can redistribute it and/or modify it under the terms of version 2 of the GNU General Public License as published by the Free Software Foundation. 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. There is a copy of the GNU General Public License in the COPYING file packaged with this plugin; if you cannot find it, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA CONTACT To report problems, comments, suggestions, patches, etc., you can email the authors: Ian Goldberg, Rob Smits, Chris Alexander, Willy Lew, Lisa Du, Nikita Borisov For more information on Off-the-Record Messaging, visit http://otr.cypherpunks.ca/ pidgin-otr-4.0.0/tooltipmenu.c0000644000175000017500000001636612020421670013241 00000000000000/* * Off-the-Record Messaging plugin for pidgin * Copyright (C) 2004-2012 Ian Goldberg, Rob Smits, * Chris Alexander, Willy Lew, * Nikita Borisov * * * This program is free software; you can redistribute it and/or modify * it under the terms of version 2 of the GNU General Public License as * published by the Free Software Foundation. * * 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 */ /* This file is based on a copy of gtkkmenutray.c */ /* * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * * This program is free software; you can redistribute it and/or modify * 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 02111-1301 USA */ #include "debug.h" #include "tooltipmenu.h" #include #include #include /****************************************************************************** * Enums *****************************************************************************/ enum { PROP_ZERO = 0, PROP_BOX }; /****************************************************************************** * Globals *****************************************************************************/ static GObjectClass *parent_class = NULL; /****************************************************************************** * Internal Stuff *****************************************************************************/ /****************************************************************************** * Item Stuff *****************************************************************************/ /*static void tooltip_menu_select(GtkItem *item) { } static void tooltip_menu_deselect(GtkItem *item) { }*/ /****************************************************************************** * Widget Stuff *****************************************************************************/ /****************************************************************************** * Object Stuff *****************************************************************************/ static void tooltip_menu_get_property(GObject *obj, guint param_id, GValue *value, GParamSpec *pspec) { TooltipMenu *tooltip_menu = TOOLTIP_MENU(obj); switch(param_id) { case PROP_BOX: g_value_set_object(value, tooltip_menu_get_box(tooltip_menu)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec); break; } } static void tooltip_menu_finalize(GObject *obj) { #if 0 /* This _might_ be leaking, but I have a sneaking suspicion that the widget is * getting destroyed in GtkContainer's finalize function. But if were are * leaking here, be sure to figure out why this causes a crash. * -- Gary */ TooltipMenu *tray = TOOLTIP_MENU(obj); if(GTK_IS_WIDGET(tray->tray)) gtk_widget_destroy(GTK_WIDGET(tray->tray)); #endif G_OBJECT_CLASS(parent_class)->finalize(obj); } static void tooltip_menu_class_init(TooltipMenuClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS(klass); GParamSpec *pspec; parent_class = g_type_class_peek_parent(klass); object_class->finalize = tooltip_menu_finalize; object_class->get_property = tooltip_menu_get_property; pspec = g_param_spec_object("box", "The box", "The box", GTK_TYPE_BOX, G_PARAM_READABLE); g_object_class_install_property(object_class, PROP_BOX, pspec); } static void tooltip_menu_init(TooltipMenu *tooltip_menu) { GtkWidget *widget = GTK_WIDGET(tooltip_menu); gtk_menu_item_set_right_justified(GTK_MENU_ITEM(tooltip_menu), TRUE); if(!GTK_IS_WIDGET(tooltip_menu->tray)) tooltip_menu->tray = gtk_hbox_new(FALSE, 0); tooltip_menu->tooltips = gtk_tooltips_new(); gtk_widget_set_size_request(widget, -1, -1); gtk_container_add(GTK_CONTAINER(tooltip_menu), tooltip_menu->tray); gtk_widget_show(tooltip_menu->tray); } /****************************************************************************** * API *****************************************************************************/ GType tooltip_menu_get_gtype(void) { static GType type = 0; if(type == 0) { static const GTypeInfo info = { sizeof(TooltipMenuClass), NULL, NULL, (GClassInitFunc)tooltip_menu_class_init, NULL, NULL, sizeof(TooltipMenu), 0, (GInstanceInitFunc)tooltip_menu_init, NULL }; type = g_type_register_static(GTK_TYPE_MENU_ITEM, "TooltipMenu", &info, 0); } return type; } GtkWidget * tooltip_menu_new() { return g_object_new(TYPE_TOOLTIP_MENU, NULL); } GtkWidget * tooltip_menu_get_box(TooltipMenu *tooltip_menu) { g_return_val_if_fail(IS_TOOLTIP_MENU(tooltip_menu), NULL); return tooltip_menu->tray; } static void tooltip_menu_add(TooltipMenu *tooltip_menu, GtkWidget *widget, const char *tooltip, gboolean prepend) { g_return_if_fail(IS_TOOLTIP_MENU(tooltip_menu)); g_return_if_fail(GTK_IS_WIDGET(widget)); if (GTK_WIDGET_NO_WINDOW(widget)) { GtkWidget *event; event = gtk_event_box_new(); gtk_container_add(GTK_CONTAINER(event), widget); gtk_widget_show(event); widget = event; } tooltip_menu_set_tooltip(tooltip_menu, widget, tooltip); if (prepend) gtk_box_pack_start(GTK_BOX(tooltip_menu->tray), widget, FALSE, FALSE, 0); else gtk_box_pack_end(GTK_BOX(tooltip_menu->tray), widget, FALSE, FALSE, 0); } void tooltip_menu_append(TooltipMenu *tooltip_menu, GtkWidget *widget, const char *tooltip) { tooltip_menu_add(tooltip_menu, widget, tooltip, FALSE); } void tooltip_menu_prepend(TooltipMenu *tooltip_menu, GtkWidget *widget, const char *tooltip) { tooltip_menu_add(tooltip_menu, widget, tooltip, TRUE); } void tooltip_menu_set_tooltip(TooltipMenu *tooltip_menu, GtkWidget *widget, const char *tooltip) { if (!tooltip_menu->tooltips) return; /* Should we check whether widget is a child of tooltip_menu? */ /* * If the widget does not have it's own window, then it * must have automatically been added to an event box * when it was added to the menu tray. If this is the * case, we want to set the tooltip on the widget's parent, * not on the widget itself. */ if (GTK_WIDGET_NO_WINDOW(widget)) widget = widget->parent; gtk_tooltips_set_tip(tooltip_menu->tooltips, widget, tooltip, NULL); } pidgin-otr-4.0.0/config.sub0000755000175000017500000010242511274160642012502 00000000000000#! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 # Free Software Foundation, Inc. timestamp='2009-06-11' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 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. # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ kopensolaris*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray) os= basic_machine=$1 ;; -bluegene*) os=-cnk ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | lm32 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | mcore | mep | metag \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64octeon | mips64octeonel \ | mips64orion | mips64orionel \ | mips64r5900 | mips64r5900el \ | mips64vr | mips64vrel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | moxie \ | mt \ | msp430 \ | nios | nios2 \ | ns16k | ns32k \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | score \ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64octeon-* | mips64octeonel-* \ | mips64orion-* | mips64orionel-* \ | mips64r5900-* | mips64r5900el-* \ | mips64vr-* | mips64vrel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-* | z80-*) ;; # Recognize the basic CPU types without company name, with glob match. xtensa*) basic_machine=$basic_machine-unknown ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aros) basic_machine=i386-pc os=-aros ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; blackfin) basic_machine=bfin-unknown os=-linux ;; blackfin-*) basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; bluegene*) basic_machine=powerpc-ibm os=-cnk ;; c90) basic_machine=c90-cray os=-unicos ;; cegcc) basic_machine=arm-unknown os=-cegcc ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16) basic_machine=cr16-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; dicos) basic_machine=i686-pc os=-dicos ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m68knommu) basic_machine=m68k-unknown os=-linux ;; m68knommu-*) basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; mvs) basic_machine=i370-ibm os=-mvs ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; parisc) basic_machine=hppa-unknown os=-linux ;; parisc-*) basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc) basic_machine=powerpc-unknown ;; ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh5el) basic_machine=sh5le-unknown ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; tic55x | c55x*) basic_machine=tic55x-unknown os=-coff ;; tic6x | c6x*) basic_machine=tic6x-unknown os=-coff ;; tile*) basic_machine=tile-unknown os=-linux-gnu ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; z80-*-coff) basic_machine=z80-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ | -kopensolaris* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* | -aros* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* | -cegcc* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -kaos*) os=-kaos ;; -zvmoe) os=-zvmoe ;; -dicos*) os=-dicos ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 # This also exists in the configure program, but was not the # default. # os=-sunos4 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -cnk*|-aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: pidgin-otr-4.0.0/configure0000755000175000017500000155512312021370004012420 00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.65 for pidgin-otr 4.0.0. # # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test \$(( 1 + 1 )) = 2 || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV export CONFIG_SHELL exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org about your system, $0: including any error possibly output before this $0: message. Then install a modern shell, or manually run $0: the script under such a shell if you do have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error ERROR [LINENO LOG_FD] # --------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with status $?, using 1 if that was 0. as_fn_error () { as_status=$?; test $as_status -eq 0 && as_status=1 if test "$3"; then as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3 fi $as_echo "$as_me: error: $1" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in #( -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" # Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} case X$lt_ECHO in X*--fallback-echo) # Remove one level of quotation (which was required for Make). ECHO=`echo "$lt_ECHO" | sed 's,\\\\\$\\$0,'$0','` ;; esac ECHO=${lt_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 <<_LT_EOF $* _LT_EOF exit 0 fi # 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 if test -z "$lt_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 && { 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. lt_ECHO=$ECHO if test "X$lt_ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then lt_ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" fi test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='pidgin-otr' PACKAGE_TARNAME='pidgin-otr' PACKAGE_VERSION='4.0.0' PACKAGE_STRING='pidgin-otr 4.0.0' PACKAGE_BUGREPORT='' PACKAGE_URL='' # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_subst_vars='am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS LIBOBJS BUILD_NT_SERVICES_FALSE BUILD_NT_SERVICES_TRUE MKINSTALLDIRS POSUB POFILES PO_IN_DATADIR_FALSE PO_IN_DATADIR_TRUE INTLLIBS INSTOBJEXT GMOFILES CATOBJEXT CATALOGS MSGFMT_OPTS GETTEXT_PACKAGE DATADIRNAME ALL_LINGUAS INTLTOOL_PERL GMSGFMT MSGFMT MSGMERGE XGETTEXT INTLTOOL_POLICY_RULE INTLTOOL_SERVICE_RULE INTLTOOL_THEME_RULE INTLTOOL_SCHEMAS_RULE INTLTOOL_CAVES_RULE INTLTOOL_XML_NOMERGE_RULE INTLTOOL_XML_RULE INTLTOOL_KBD_RULE INTLTOOL_XAM_RULE INTLTOOL_UI_RULE INTLTOOL_SOUNDLIST_RULE INTLTOOL_SHEET_RULE INTLTOOL_SERVER_RULE INTLTOOL_PONG_RULE INTLTOOL_OAF_RULE INTLTOOL_PROP_RULE INTLTOOL_KEYS_RULE INTLTOOL_DIRECTORY_RULE INTLTOOL_DESKTOP_RULE INTLTOOL_EXTRACT INTLTOOL_MERGE INTLTOOL_UPDATE USE_NLS EXTRA_LIBS EXTRA_CFLAGS PKG_CONFIG LIBOTR_LIBS LIBOTR_CFLAGS LIBGCRYPT_LIBS LIBGCRYPT_CFLAGS LIBGCRYPT_CONFIG CPP OTOOL64 OTOOL LIPO NMEDIT DSYMUTIL lt_ECHO RANLIB AR OBJDUMP LN_S NM ac_ct_DUMPBIN DUMPBIN LD FGREP EGREP GREP SED host_os host_vendor host_cpu host build_os build_vendor build_cpu build LIBTOOL am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE am__quote am__include DEPDIR OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC am__untar am__tar AMTAR am__leading_dot SET_MAKE AWK mkdir_p MKDIR_P INSTALL_STRIP_PROGRAM STRIP install_sh MAKEINFO AUTOHEADER AUTOMAKE AUTOCONF ACLOCAL VERSION PACKAGE CYGPATH_W am__isrc INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking enable_dependency_tracking enable_static enable_shared with_pic enable_fast_install with_gnu_ld enable_libtool_lock with_libgcrypt_prefix with_libotr_prefix with_libotr_inc_prefix enable_nls enable_gcc_hardening enable_linker_hardening ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP PKG_CONFIG EXTRA_CFLAGS EXTRA_LIBS' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error "unrecognized option: \`$ac_option' Try \`$0 --help' for more information." ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures pidgin-otr 4.0.0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/pidgin-otr] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of pidgin-otr 4.0.0:";; esac cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors --enable-static[=PKGS] build static libraries [default=no] --enable-shared[=PKGS] build shared libraries [default=yes] --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-libtool-lock avoid locking (might break parallel builds) --disable-nls do not use Native Language Support --disable-gcc-hardening disable compiler security checks --disable-linker-hardening disable linker security fixups Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-pic try to use only PIC/non-PIC objects [default=use both] --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-libgcrypt-prefix=PFX prefix where LIBGCRYPT is installed (optional) --with-libotr-prefix=PFX Prefix where libotr is installed(optional) --with-libotr-inc-prefix=PFX Prefix where libotr includes are (optional) Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor PKG_CONFIG path to pkg-config utility EXTRA_CFLAGS C compiler flags for EXTRA, overriding pkg-config EXTRA_LIBS linker flags for EXTRA, overriding pkg-config Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to the package provider. _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF pidgin-otr configure 4.0.0 generated by GNU Autoconf 2.65 Copyright (C) 2009 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## # ac_fn_c_try_compile LINENO # -------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_c_try_compile # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_c_try_link # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists and can be compiled using the include files in # INCLUDES, setting the cache variable VAR accordingly. ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_header_compile # ac_fn_c_try_cpp LINENO # ---------------------- # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_c_try_cpp # ac_fn_c_try_run LINENO # ---------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes # that executables *can* be run. ac_fn_c_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : ac_retval=0 else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_c_try_run # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- # Tests whether FUNC exists, setting the cache variable VAR accordingly ac_fn_c_check_func () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case declares $2. For example, HP-UX 11i declares gettimeofday. */ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $2 (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $2 /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $2 (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$2 || defined __stub___$2 choke me #endif int main () { return $2 (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_func # ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists, giving a warning if it cannot be compiled using # the include files in INCLUDES and setting the cache variable VAR # accordingly. ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 $as_echo_n "checking $2 usability... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_header_compiler=yes else ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 $as_echo_n "checking $2 presence... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <$2> _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : ac_header_preproc=yes else ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( yes:no: ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; no:yes:* ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_header_mongrel cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by pidgin-otr $as_me 4.0.0, which was generated by GNU Autoconf 2.65. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo cat <<\_ASBOX ## ---------------- ## ## Cache variables. ## ## ---------------- ## _ASBOX echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo cat <<\_ASBOX ## ----------------- ## ## Output variables. ## ## ----------------- ## _ASBOX echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then cat <<\_ASBOX ## ------------------- ## ## File substitutions. ## ## ------------------- ## _ASBOX echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then cat <<\_ASBOX ## ----------- ## ## confdefs.h. ## ## ----------- ## _ASBOX echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then ac_site_file1=$CONFIG_SITE elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_config_headers="$ac_config_headers config.h" am__api_version='1.11' ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do for ac_t in install-sh install.sh shtool; do if test -f "$ac_dir/$ac_t"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/$ac_t -c" break 2 fi done done if test -z "$ac_aux_dir"; then as_fn_error "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in #(( ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } # Just in case sleep 1 echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) as_fn_error "unsafe absolute working directory name" "$LINENO" 5;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) as_fn_error "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;; esac # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( 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". as_fn_error "ls -t appears to fail. Make sure there is not a broken alias in your environment" "$LINENO" 5 fi test "$2" = conftest.file ) then # Ok. : else as_fn_error "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. # By default was `s,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5 $as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_STRIP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if test "${ac_cv_path_mkdir+set}" = set; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS fi test -d ./--version && rmdir ./--version if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. MKDIR_P="$ac_install_sh -d" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } mkdir_p="$MKDIR_P" case $mkdir_p in [\\/$]* | ?:[\\/]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_AWK+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then as_fn_error "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE='pidgin-otr' VERSION='4.0.0' cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. AMTAR=${AMTAR-"${am_missing_run}tar"} am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error "no acceptable C compiler found in \$PATH See \`config.log' for more details." "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 $as_echo_n "checking whether the C compiler works... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi if test -z "$ac_file"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { as_fn_set_status 77 as_fn_error "C compiler cannot create executables See \`config.log' for more details." "$LINENO" 5; }; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 $as_echo_n "checking for C compiler default output file name... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error "cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." "$LINENO" 5; } fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if test "${ac_cv_objext+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error "cannot compute suffix of object files: cannot compile See \`config.log' for more details." "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if test "${ac_cv_c_compiler_gnu+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if test "${ac_cv_prog_cc_g+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if test "${ac_cv_prog_cc_c89+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 $as_echo_n "checking for style of include used by $am_make... " >&6; } am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from `make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 $as_echo "$_am_result" >&6; } rm -f confinc confmf # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then : enableval=$enable_dependency_tracking; fi if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi # Check whether --enable-static was given. if test "${enable_static+set}" = set; then : enableval=$enable_static; p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac else enable_static=no fi case `pwd` in *\ * | *\ *) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 $as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; esac macro_version='2.2.6b' macro_revision='1.3017' ltmain="$ac_aux_dir/ltmain.sh" # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || as_fn_error "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } if test "${ac_cv_build+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && as_fn_error "cannot guess build type; you must specify one" "$LINENO" 5 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || as_fn_error "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) as_fn_error "invalid value of canonical build" "$LINENO" 5;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' set x $ac_cv_build shift build_cpu=$1 build_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: build_os=$* IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } if test "${ac_cv_host+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || as_fn_error "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) as_fn_error "invalid value of canonical host" "$LINENO" 5;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' set x $ac_cv_host shift host_cpu=$1 host_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: host_os=$* IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 $as_echo_n "checking for a sed that does not truncate output... " >&6; } if test "${ac_cv_path_SED+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ for ac_i in 1 2 3 4 5 6 7; do ac_script="$ac_script$as_nl$ac_script" done echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed { ac_script=; unset ac_script;} if test -z "$SED"; then ac_path_SED_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue # Check for GNU ac_path_SED and select it if it is found. # Check for GNU $ac_path_SED case `"$ac_path_SED" --version 2>&1` in *GNU*) ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo '' >> "conftest.nl" "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_SED_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_SED="$ac_path_SED" ac_path_SED_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_SED_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_SED"; then as_fn_error "no acceptable sed could be found in \$PATH" "$LINENO" 5 fi else ac_cv_path_SED=$SED fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 $as_echo "$ac_cv_path_SED" >&6; } SED="$ac_cv_path_SED" rm -f conftest.sed test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if test "${ac_cv_path_GREP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then as_fn_error "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } if test "${ac_cv_path_EGREP+set}" = set; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then as_fn_error "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 $as_echo_n "checking for fgrep... " >&6; } if test "${ac_cv_path_FGREP+set}" = set; then : $as_echo_n "(cached) " >&6 else if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 then ac_cv_path_FGREP="$GREP -F" else if test -z "$FGREP"; then ac_path_FGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in fgrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue # Check for GNU ac_path_FGREP and select it if it is found. # Check for GNU $ac_path_FGREP case `"$ac_path_FGREP" --version 2>&1` in *GNU*) ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'FGREP' >> "conftest.nl" "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_FGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_FGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_FGREP"; then as_fn_error "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_FGREP=$FGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 $as_echo "$ac_cv_path_FGREP" >&6; } FGREP="$ac_cv_path_FGREP" test -z "$GREP" && GREP=grep # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then : withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 $as_echo_n "checking for ld used by $CC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi if test "${lt_cv_path_LD+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 $as_echo "$LD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if test "${lt_cv_prog_gnu_ld+set}" = set; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 $as_echo "$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 $as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } if test "${lt_cv_path_NM+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file 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 : ${lt_cv_path_NM=no} fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 $as_echo "$lt_cv_path_NM" >&6; } if test "$lt_cv_path_NM" != "no"; then NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$ac_tool_prefix"; then for ac_prog in "dumpbin -symbols" "link -dump -symbols" do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_DUMPBIN+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$DUMPBIN"; then ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DUMPBIN=$ac_cv_prog_DUMPBIN if test -n "$DUMPBIN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 $as_echo "$DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$DUMPBIN" && break done fi if test -z "$DUMPBIN"; then ac_ct_DUMPBIN=$DUMPBIN for ac_prog in "dumpbin -symbols" "link -dump -symbols" do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DUMPBIN"; then ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN if test -n "$ac_ct_DUMPBIN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 $as_echo "$ac_ct_DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_DUMPBIN" && break done if test "x$ac_ct_DUMPBIN" = x; then DUMPBIN=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DUMPBIN=$ac_ct_DUMPBIN fi fi if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" fi fi test -z "$NM" && NM=nm { $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 $as_echo_n "checking the name lister ($NM) interface... " >&6; } if test "${lt_cv_nm_interface+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:4564: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 (eval echo "\"\$as_me:4567: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 (eval echo "\"\$as_me:4570: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 $as_echo "$lt_cv_nm_interface" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 $as_echo_n "checking whether ln -s works... " >&6; } LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 $as_echo "no, using $LN_S" >&6; } fi # find the maximum length of command line arguments { $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 $as_echo_n "checking the maximum length of command line arguments... " >&6; } if test "${lt_cv_sys_max_cmd_len+set}" = set; then : $as_echo_n "(cached) " >&6 else i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; 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 # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8 ; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while { test "X"`$SHELL $0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ = "XX$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac fi if test -n $lt_cv_sys_max_cmd_len ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 $as_echo "$lt_cv_sys_max_cmd_len" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 $as_echo "none" >&6; } fi max_cmd_len=$lt_cv_sys_max_cmd_len : ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5 $as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ = c,a/b,, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5 $as_echo "$xsi_shell" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5 $as_echo_n "checking whether the shell understands \"+=\"... " >&6; } lt_shell_append=no ( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ >/dev/null 2>&1 \ && lt_shell_append=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5 $as_echo "$lt_shell_append" >&6; } if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 $as_echo_n "checking for $LD option to reload object files... " >&6; } if test "${lt_cv_ld_reload_flag+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_reload_flag='-r' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 $as_echo "$lt_cv_ld_reload_flag" >&6; } reload_flag=$lt_cv_ld_reload_flag case $reload_flag in "" | " "*) ;; *) reload_flag=" $reload_flag" ;; esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in darwin*) if test "$GCC" = yes; then reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' else reload_cmds='$LD$reload_flag -o $output$reload_objs' fi ;; esac if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. set dummy ${ac_tool_prefix}objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_OBJDUMP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$OBJDUMP"; then ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OBJDUMP=$ac_cv_prog_OBJDUMP if test -n "$OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 $as_echo "$OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OBJDUMP"; then ac_ct_OBJDUMP=$OBJDUMP # Extract the first word of "objdump", so it can be a program name with args. set dummy objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OBJDUMP"; then ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OBJDUMP="objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP if test -n "$ac_ct_OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 $as_echo "$ac_ct_OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OBJDUMP" = x; then OBJDUMP="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OBJDUMP=$ac_ct_OBJDUMP fi else OBJDUMP="$ac_cv_prog_OBJDUMP" fi test -z "$OBJDUMP" && OBJDUMP=objdump { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 $as_echo_n "checking how to recognize dependent libraries... " >&6; } if test "${lt_cv_deplibs_check_method+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= lt_cv_deplibs_check_method='unknown' # Need to set the preceding variable on all platforms that support # interlibrary dependencies. # 'none' -- dependencies not supported. # `unknown' -- same as none, but documents that we really don't know. # 'pass_all' -- all dependencies passed with no checks. # 'test_compile' -- check by making test program. # 'file_magic [[regex]]' -- check by looking for files in library path # which responds to the $file_magic_cmd with a given extended regex. # If you have `file' or equivalent on your system and you're not sure # whether `pass_all' will *always* work, you probably want this one. case $host_os in aix[4-9]*) lt_cv_deplibs_check_method=pass_all ;; beos*) lt_cv_deplibs_check_method=pass_all ;; bsdi[45]*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' lt_cv_file_magic_cmd='/usr/bin/file -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; cygwin*) # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' ;; mingw* | pw32*) # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump', # unless we find 'file', for example because we are cross-compiling. if ( file / ) >/dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; 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 | kopensolaris*-gnu) lt_cv_deplibs_check_method=pass_all ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd*) 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 ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 $as_echo "$lt_cv_deplibs_check_method" >&6; } file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_AR+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AR="${ac_tool_prefix}ar" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 $as_echo "$AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_AR"; then ac_ct_AR=$AR # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_AR+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_AR="ar" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 $as_echo "$ac_ct_AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_AR" = x; then AR="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR fi else AR="$ac_cv_prog_AR" fi test -z "$AR" && AR=ar test -z "$AR_FLAGS" && AR_FLAGS=cru if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_STRIP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi test -z "$STRIP" && STRIP=: if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_RANLIB+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 $as_echo "$RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 $as_echo "$ac_ct_RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then RANLIB=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB fi else RANLIB="$ac_cv_prog_RANLIB" fi test -z "$RANLIB" && RANLIB=: # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in 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 # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Check for command to grab the raw symbol name followed by C symbol from nm. { $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 $as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then : $as_echo_n "(cached) " >&6 else # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[BCDEGRST]' # Regexp to match symbols that can be accessed directly from C. sympat='\([_A-Za-z][_A-Za-z0-9]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[BCDT]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[ABCDGISTW]' ;; hpux*) if test "$host_cpu" = ia64; then symcode='[ABCDEGRST]' fi ;; irix* | nonstopux*) symcode='[BCDEGRST]' ;; osf*) symcode='[BCDEGQRST]' ;; solaris*) symcode='[BDRT]' ;; sco3.2v5*) symcode='[DT]' ;; sysv4.2uw2*) symcode='[DT]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[ABDT]' ;; sysv4) symcode='[DFNSTU]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[ABCDGIRSTW]' ;; esac # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function # and D for any global variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK '"\ " {last_section=section; section=\$ 3};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ " {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ " s[1]~/^[@?]/{print s[1], s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then # Now try to grab the symbols. nlist=conftest.nm if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\""; } >&5 (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ const struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_save_LIBS="$LIBS" lt_save_CFLAGS="$CFLAGS" LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS="$lt_save_LIBS" CFLAGS="$lt_save_CFLAGS" else echo "cannot find nm_test_func in $nlist" >&5 fi else echo "cannot find nm_test_var in $nlist" >&5 fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 fi else echo "$progname: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done fi if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 $as_echo "failed" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 $as_echo "ok" >&6; } fi # Check whether --enable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then : enableval=$enable_libtool_lock; fi test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '#line 5776 "configure"' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then if test "$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*|s390*-*tpf*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) 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*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 $as_echo_n "checking whether the C compiler needs -belf... " >&6; } if test "${lt_cv_cc_needs_belf+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_cc_needs_belf=yes else lt_cv_cc_needs_belf=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 $as_echo "$lt_cv_cc_needs_belf" >&6; } if test 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 { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) LD="${LD-ld} -m elf64_sparc" ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" case $host_os in rhapsody* | darwin*) if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_DSYMUTIL+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$DSYMUTIL"; then ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DSYMUTIL=$ac_cv_prog_DSYMUTIL if test -n "$DSYMUTIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 $as_echo "$DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DSYMUTIL"; then ac_ct_DSYMUTIL=$DSYMUTIL # Extract the first word of "dsymutil", so it can be a program name with args. set dummy dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DSYMUTIL"; then ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL if test -n "$ac_ct_DSYMUTIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 $as_echo "$ac_ct_DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DSYMUTIL" = x; then DSYMUTIL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DSYMUTIL=$ac_ct_DSYMUTIL fi else DSYMUTIL="$ac_cv_prog_DSYMUTIL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. set dummy ${ac_tool_prefix}nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_NMEDIT+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$NMEDIT"; then ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi NMEDIT=$ac_cv_prog_NMEDIT if test -n "$NMEDIT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 $as_echo "$NMEDIT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_NMEDIT"; then ac_ct_NMEDIT=$NMEDIT # Extract the first word of "nmedit", so it can be a program name with args. set dummy nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_NMEDIT"; then ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_NMEDIT="nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT if test -n "$ac_ct_NMEDIT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 $as_echo "$ac_ct_NMEDIT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_NMEDIT" = x; then NMEDIT=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac NMEDIT=$ac_ct_NMEDIT fi else NMEDIT="$ac_cv_prog_NMEDIT" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. set dummy ${ac_tool_prefix}lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_LIPO+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$LIPO"; then ac_cv_prog_LIPO="$LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_LIPO="${ac_tool_prefix}lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi LIPO=$ac_cv_prog_LIPO if test -n "$LIPO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 $as_echo "$LIPO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_LIPO"; then ac_ct_LIPO=$LIPO # Extract the first word of "lipo", so it can be a program name with args. set dummy lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_LIPO+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_LIPO"; then ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_LIPO="lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO if test -n "$ac_ct_LIPO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 $as_echo "$ac_ct_LIPO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_LIPO" = x; then LIPO=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac LIPO=$ac_ct_LIPO fi else LIPO="$ac_cv_prog_LIPO" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. set dummy ${ac_tool_prefix}otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_OTOOL+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL"; then ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OTOOL="${ac_tool_prefix}otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL=$ac_cv_prog_OTOOL if test -n "$OTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 $as_echo "$OTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL"; then ac_ct_OTOOL=$OTOOL # Extract the first word of "otool", so it can be a program name with args. set dummy otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL"; then ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OTOOL="otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL if test -n "$ac_ct_OTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 $as_echo "$ac_ct_OTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL" = x; then OTOOL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL=$ac_ct_OTOOL fi else OTOOL="$ac_cv_prog_OTOOL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. set dummy ${ac_tool_prefix}otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_OTOOL64+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL64"; then ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL64=$ac_cv_prog_OTOOL64 if test -n "$OTOOL64"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 $as_echo "$OTOOL64" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL64"; then ac_ct_OTOOL64=$OTOOL64 # Extract the first word of "otool64", so it can be a program name with args. set dummy otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL64"; then ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OTOOL64="otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 if test -n "$ac_ct_OTOOL64"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 $as_echo "$ac_ct_OTOOL64" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL64" = x; then OTOOL64=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL64=$ac_ct_OTOOL64 fi else OTOOL64="$ac_cv_prog_OTOOL64" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 $as_echo_n "checking for -single_module linker flag... " >&6; } if test "${lt_cv_apple_cc_single_mod+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_apple_cc_single_mod=no if test -z "${LT_MULTI_MODULE}"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&5 $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&5 fi rm -rf libconftest.dylib* rm -f conftest.* fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 $as_echo "$lt_cv_apple_cc_single_mod" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 $as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } if test "${lt_cv_ld_exported_symbols_list+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_ld_exported_symbols_list=yes else lt_cv_ld_exported_symbols_list=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 $as_echo "$lt_cv_ld_exported_symbols_list" >&6; } case $host_os in rhapsody* | darwin1.[012]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[91]*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; 10.[012]*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test "$lt_cv_apple_cc_single_mod" = "yes"; then _lt_dar_single_mod='$single_module' fi if test "$lt_cv_ld_exported_symbols_list" = "yes"; then _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi if test "$DSYMUTIL" != ":"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test "${ac_cv_prog_CPP+set}" = set; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error "C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." "$LINENO" 5; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if test "${ac_cv_header_stdc+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " eval as_val=\$$as_ac_Header if test "x$as_val" = x""yes; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in dlfcn.h do : ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default " if test "x$ac_cv_header_dlfcn_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DLFCN_H 1 _ACEOF fi done # Set options enable_dlopen=no enable_win32_dll=no # Check whether --enable-shared was given. if test "${enable_shared+set}" = set; then : enableval=$enable_shared; p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac else enable_shared=yes fi # Check whether --with-pic was given. if test "${with_pic+set}" = set; then : withval=$with_pic; pic_mode="$withval" else pic_mode=default fi test -z "$pic_mode" && pic_mode=default # Check whether --enable-fast-install was given. if test "${enable_fast_install+set}" = set; then : enableval=$enable_fast_install; p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac else enable_fast_install=yes fi # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ltmain" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' test -z "$LN_S" && LN_S="ln -s" if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 $as_echo_n "checking for objdir... " >&6; } if test "${lt_cv_objdir+set}" = set; then : $as_echo_n "(cached) " >&6 else rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 $as_echo "$lt_cv_objdir" >&6; } objdir=$lt_cv_objdir cat >>confdefs.h <<_ACEOF #define LT_OBJDIR "$lt_cv_objdir/" _ACEOF case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "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. sed_quote_subst='s/\(["`$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld="$lt_cv_prog_gnu_ld" old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o for cc_temp in $compiler""; 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-%%"` # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 $as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } if test "${lt_cv_path_MAGIC_CMD+set}" = set; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/${ac_tool_prefix}file; then lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 $as_echo_n "checking for file... " >&6; } if test "${lt_cv_path_MAGIC_CMD+set}" = set; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/file; then lt_cv_path_MAGIC_CMD="$ac_dir/file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi else MAGIC_CMD=: fi fi fi ;; esac # Use C for the default configuration in the libtool script lt_save_CC="$CC" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o objext=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* if test -n "$compiler"; then lt_prog_compiler_no_builtin_flag= if test "$GCC" = yes; then lt_prog_compiler_no_builtin_flag=' -fno-builtin' { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 $as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" # 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:7272: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:7276: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "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 lt_cv_prog_compiler_rtti_exceptions=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 $as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl= lt_prog_compiler_pic= lt_prog_compiler_static= { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 $as_echo_n "checking for $compiler option to produce PIC... " >&6; } if test "$GCC" = yes; then lt_prog_compiler_wl='-Wl,' lt_prog_compiler_static='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support lt_prog_compiler_pic='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) lt_prog_compiler_pic='-fPIC' ;; esac ;; interix[3-9]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic=-Kconform_pic fi ;; *) lt_prog_compiler_pic='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' else lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static='-non_shared' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; # Lahey Fortran 8.1. lf95*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='--shared' lt_prog_compiler_static='--static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; ccc*) lt_prog_compiler_wl='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static='-non_shared' ;; xl*) # IBM XL C 8.0/Fortran 10.1 on PPC lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-qpic' lt_prog_compiler_static='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Wl,' ;; *Sun\ F*) # Sun Fortran 8.3 passes all unrecognized flags to the linker lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='' ;; esac ;; esac ;; newsos6) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static='-non_shared' ;; rdos*) lt_prog_compiler_static='-non_shared' ;; solaris*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' case $cc_basename in f77* | f90* | f95*) lt_prog_compiler_wl='-Qoption ld ';; *) lt_prog_compiler_wl='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl='-Qoption ld ' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic='-Kconform_pic' lt_prog_compiler_static='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; unicos*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_can_build_shared=no ;; uts4*) lt_prog_compiler_pic='-pic' lt_prog_compiler_static='-Bstatic' ;; *) lt_prog_compiler_can_build_shared=no ;; esac fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic= ;; *) lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5 $as_echo "$lt_prog_compiler_pic" >&6; } # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } if test "${lt_cv_prog_compiler_pic_works+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic -DPIC" # 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:7611: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:7615: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "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 lt_cv_prog_compiler_pic_works=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 $as_echo "$lt_cv_prog_compiler_pic_works" >&6; } if test x"$lt_cv_prog_compiler_pic_works" = xyes; then case $lt_prog_compiler_pic in "" | " "*) ;; *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; esac else lt_prog_compiler_pic= lt_prog_compiler_can_build_shared=no fi fi # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if test "${lt_cv_prog_compiler_static_works+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "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 lt_cv_prog_compiler_static_works=yes fi else lt_cv_prog_compiler_static_works=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 $as_echo "$lt_cv_prog_compiler_static_works" >&6; } if test x"$lt_cv_prog_compiler_static_works" = xyes; then : else lt_prog_compiler_static= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test "${lt_cv_prog_compiler_c_o+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:7716: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:7720: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "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_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test "${lt_cv_prog_compiler_c_o+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:7771: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:7775: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "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_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 $as_echo_n "checking if we can lock with hard links... " >&6; } hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 $as_echo "$hard_links" >&6; } if test "$hard_links" = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 $as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } runpath_var= allow_undefined_flag= always_export_symbols=no archive_cmds= archive_expsym_cmds= compiler_needs_object=no enable_shared_with_static_runtimes=no export_dynamic_flag_spec= export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' hardcode_automatic=no hardcode_direct=no hardcode_direct_absolute=no hardcode_libdir_flag_spec= hardcode_libdir_flag_spec_ld= hardcode_libdir_separator= hardcode_minus_L=no hardcode_shlibpath_var=unsupported inherit_rpath=no link_all_deplibs=unknown module_cmds= module_expsym_cmds= old_archive_from_new_cmds= old_archive_from_expsyms_cmds= thread_safe_flag_spec= whole_archive_flag_spec= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$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 ;; linux* | k*bsd*-gnu) link_all_deplibs=no ;; esac ld_shlibs=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec= fi supports_anon_versioning=no case `$LD -v 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[3-9]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no cat <<_LT_EOF 1>&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. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then allow_undefined_flag=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' allow_undefined_flag=unsupported always_export_symbols=no enable_shared_with_static_runtimes=yes export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs=no fi ;; interix[3-9]*) hardcode_direct=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test "$host_os" = linux-dietlibc; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then tmp_addflag= tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $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' ;; lf95*) # Lahey Fortran 8.1 whole_archive_flag_spec= tmp_sharedflag='--shared' ;; xl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi case $cc_basename in xlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' hardcode_libdir_flag_spec= hardcode_libdir_flag_spec_ld='-rpath $libdir' archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else ld_shlibs=no fi ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 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 ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac ;; sunos4*) archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct=yes hardcode_shlibpath_var=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = no; then runpath_var= hardcode_libdir_flag_spec= export_dynamic_flag_spec= whole_archive_flag_spec= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag=unsupported always_export_symbols=yes archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix[4-9]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi 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].*|aix[5-9]*) 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. archive_cmds='' hardcode_direct=yes hardcode_direct_absolute=yes hardcode_libdir_separator=':' link_all_deplibs=yes file_list_spec='${wl}-f,' 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 hardcode_direct=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi link_all_deplibs=no 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 export_dynamic_flag_spec='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag='-berok' # Determine the default libpath from the value encoded in an # empty executable. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' 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 fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag="-z nodefs" archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $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. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' 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 fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag=' ${wl}-bernotok' allow_undefined_flag=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec='$convenience' archive_cmds_need_lc=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds="\$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*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; bsdi[45]*) export_dynamic_flag_spec=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_from_new_cmds='true' # FIXME: Should let the user specify the lib program. old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes=yes ;; darwin* | rhapsody*) archive_cmds_need_lc=no hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported whole_archive_flag_spec='' link_all_deplibs=yes allow_undefined_flag="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=echo archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" else ld_shlibs=no fi ;; dgux*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; freebsd1*) ld_shlibs=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes export_dynamic_flag_spec='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_flag_spec_ld='+b $libdir' hardcode_libdir_separator=: hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$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*) archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$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 hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_direct=no hardcode_shlibpath_var=no ;; *) hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int foo(void) {} _ACEOF if ac_fn_c_try_link "$LINENO"; then : archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: inherit_rpath=yes link_all_deplibs=yes ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; newsos6) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: hardcode_shlibpath_var=no ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct=yes hardcode_shlibpath_var=no hardcode_direct_absolute=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-R$libdir' ;; *) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi else ld_shlibs=no fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi archive_cmds_need_lc='no' hardcode_libdir_separator=: ;; solaris*) no_undefined_flag=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='${wl}' archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi hardcode_libdir_flag_spec='-R$libdir' hardcode_shlibpath_var=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else whole_archive_flag_spec='-z allextract$convenience -z defaultextract' fi ;; esac link_all_deplibs=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; sysv4) case $host_vendor in sni) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds='$CC -r -o $output$reload_objs' hardcode_direct=no ;; motorola) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var=no ;; sysv4.3*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no export_dynamic_flag_spec='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag='${wl}-z,text' archive_cmds_need_lc=no hardcode_shlibpath_var=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We 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. no_undefined_flag='${wl}-z,text' allow_undefined_flag='${wl}-z,nodefs' archive_cmds_need_lc=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-R,$libdir' hardcode_libdir_separator=':' link_all_deplibs=yes export_dynamic_flag_spec='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; *) ld_shlibs=no ;; esac if test x$host_vendor = xsni; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) export_dynamic_flag_spec='${wl}-Blargedynsym' ;; esac fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 $as_echo "$ld_shlibs" >&6; } test "$ld_shlibs" = no && can_build_shared=no with_gnu_ld=$with_gnu_ld # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc" in x|xyes) # Assume -lc should be added archive_cmds_need_lc=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl pic_flag=$lt_prog_compiler_pic compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag allow_undefined_flag= if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then archive_cmds_need_lc=no else archive_cmds_need_lc=yes fi allow_undefined_flag=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc" >&5 $as_echo "$archive_cmds_need_lc" >&6; } ;; esac fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 $as_echo_n "checking dynamic linker characteristics... " >&6; } if test "$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 library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[4-9]*) version_type=linux 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*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$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' ;; esac ;; 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* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw* | cegcc*) # 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}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux 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 | kopensolaris*-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 # Some binutils ld are patched to set DT_RUNPATH save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : shlibpath_overrides_runpath=yes fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS libdir=$save_libdir # 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=qnx need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd*) 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 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 shlibpath_overrides_runpath=yes 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' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 $as_echo "$dynamic_linker" >&6; } test "$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 if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 $as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action= if test -n "$hardcode_libdir_flag_spec" || test -n "$runpath_var" || test "X$hardcode_automatic" = "Xyes" ; then # We can hardcode non-existent directories. if test "$hardcode_direct" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no && test "$hardcode_minus_L" != no; then # Linking always hardcodes the temporary library directory. hardcode_action=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action=unsupported fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 $as_echo "$hardcode_action" >&6; } if test "$hardcode_action" = relink || test "$inherit_rpath" = yes; 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 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* | cegcc*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if test "${ac_cv_lib_dl_dlopen+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = x""yes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes fi ;; *) ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" if test "x$ac_cv_func_shl_load" = x""yes; then : lt_cv_dlopen="shl_load" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 $as_echo_n "checking for shl_load in -ldld... " >&6; } if test "${ac_cv_lib_dld_shl_load+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char shl_load (); int main () { return shl_load (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_shl_load=yes else ac_cv_lib_dld_shl_load=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 $as_echo "$ac_cv_lib_dld_shl_load" >&6; } if test "x$ac_cv_lib_dld_shl_load" = x""yes; then : lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" else ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" if test "x$ac_cv_func_dlopen" = x""yes; then : lt_cv_dlopen="dlopen" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if test "${ac_cv_lib_dl_dlopen+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = x""yes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 $as_echo_n "checking for dlopen in -lsvld... " >&6; } if test "${ac_cv_lib_svld_dlopen+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_svld_dlopen=yes else ac_cv_lib_svld_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 $as_echo "$ac_cv_lib_svld_dlopen" >&6; } if test "x$ac_cv_lib_svld_dlopen" = x""yes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 $as_echo_n "checking for dld_link in -ldld... " >&6; } if test "${ac_cv_lib_dld_dld_link+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dld_link (); int main () { return dld_link (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_dld_link=yes else ac_cv_lib_dld_dld_link=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 $as_echo "$ac_cv_lib_dld_dld_link" >&6; } if test "x$ac_cv_lib_dld_dld_link" = x""yes; then : lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" fi fi fi fi fi fi ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 $as_echo_n "checking whether a program can dlopen itself... " >&6; } if test "${lt_cv_dlopen_self+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line 10155 "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif 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 ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; esac else : # compilation failed lt_cv_dlopen_self=no fi fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 $as_echo "$lt_cv_dlopen_self" >&6; } if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 $as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } if test "${lt_cv_dlopen_self_static+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self_static=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line 10251 "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif 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 ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; esac else : # compilation failed lt_cv_dlopen_self_static=no fi fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 $as_echo "$lt_cv_dlopen_self_static" >&6; } fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi striplib= old_striplib= { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 $as_echo_n "checking whether stripping libraries is possible... " >&6; } if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" old_striplib="$STRIP -S" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } ;; esac fi # Report which library types will actually be built { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 $as_echo_n "checking if libtool supports shared libraries... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 $as_echo "$can_build_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 $as_echo_n "checking whether to build shared libraries... " >&6; } test "$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 ;; aix[4-9]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 $as_echo "$enable_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 $as_echo_n "checking whether to build static libraries... " >&6; } # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 $as_echo "$enable_static" >&6; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" ac_config_commands="$ac_config_commands libtool" # Only expand once: # Check whether --with-libgcrypt-prefix was given. if test "${with_libgcrypt_prefix+set}" = set; then : withval=$with_libgcrypt_prefix; libgcrypt_config_prefix="$withval" else libgcrypt_config_prefix="" fi if test x$libgcrypt_config_prefix != x ; then if test x${LIBGCRYPT_CONFIG+set} != xset ; then LIBGCRYPT_CONFIG=$libgcrypt_config_prefix/bin/libgcrypt-config fi fi # Extract the first word of "libgcrypt-config", so it can be a program name with args. set dummy libgcrypt-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_LIBGCRYPT_CONFIG+set}" = set; then : $as_echo_n "(cached) " >&6 else case $LIBGCRYPT_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_LIBGCRYPT_CONFIG="$LIBGCRYPT_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_LIBGCRYPT_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_LIBGCRYPT_CONFIG" && ac_cv_path_LIBGCRYPT_CONFIG="no" ;; esac fi LIBGCRYPT_CONFIG=$ac_cv_path_LIBGCRYPT_CONFIG if test -n "$LIBGCRYPT_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBGCRYPT_CONFIG" >&5 $as_echo "$LIBGCRYPT_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi tmp=1:1.2.0 if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then req_libgcrypt_api=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\1/'` min_libgcrypt_version=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\2/'` else req_libgcrypt_api=0 min_libgcrypt_version="$tmp" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBGCRYPT - version >= $min_libgcrypt_version" >&5 $as_echo_n "checking for LIBGCRYPT - version >= $min_libgcrypt_version... " >&6; } ok=no if test "$LIBGCRYPT_CONFIG" != "no" ; then req_major=`echo $min_libgcrypt_version | \ sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)/\1/'` req_minor=`echo $min_libgcrypt_version | \ sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)/\2/'` req_micro=`echo $min_libgcrypt_version | \ sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)/\3/'` libgcrypt_config_version=`$LIBGCRYPT_CONFIG --version` major=`echo $libgcrypt_config_version | \ sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1/'` minor=`echo $libgcrypt_config_version | \ sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\2/'` micro=`echo $libgcrypt_config_version | \ sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\3/'` if test "$major" -gt "$req_major"; then ok=yes else if test "$major" -eq "$req_major"; then if test "$minor" -gt "$req_minor"; then ok=yes else if test "$minor" -eq "$req_minor"; then if test "$micro" -ge "$req_micro"; then ok=yes fi fi fi fi fi fi if test $ok = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes ($libgcrypt_config_version)" >&5 $as_echo "yes ($libgcrypt_config_version)" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test $ok = yes; then # If we have a recent libgcrypt, we should also check that the # API is compatible if test "$req_libgcrypt_api" -gt 0 ; then tmp=`$LIBGCRYPT_CONFIG --api-version 2>/dev/null || echo 0` if test "$tmp" -gt 0 ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking LIBGCRYPT API version" >&5 $as_echo_n "checking LIBGCRYPT API version... " >&6; } if test "$req_libgcrypt_api" -eq "$tmp" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: okay" >&5 $as_echo "okay" >&6; } else ok=no { $as_echo "$as_me:${as_lineno-$LINENO}: result: does not match. want=$req_libgcrypt_api got=$tmp" >&5 $as_echo "does not match. want=$req_libgcrypt_api got=$tmp" >&6; } fi fi fi fi if test $ok = yes; then LIBGCRYPT_CFLAGS=`$LIBGCRYPT_CONFIG --cflags` LIBGCRYPT_LIBS=`$LIBGCRYPT_CONFIG --libs` : else LIBGCRYPT_CFLAGS="" LIBGCRYPT_LIBS="" as_fn_error "libgcrypt 1.2.0 or newer is required." "$LINENO" 5 fi libotr_save_CFLAGS="$CFLAGS" libotr_save_LDFLAGS="$LDFLAGS" libotr_save_LIBS="$LIBS" libotr_found=yes # Check whether --with-libotr-prefix was given. if test "${with_libotr_prefix+set}" = set; then : withval=$with_libotr_prefix; libotr_prefix="$withval" else libotr_prefix="" fi # Check whether --with-libotr-inc-prefix was given. if test "${with_libotr_inc_prefix+set}" = set; then : withval=$with_libotr_inc_prefix; libotr_inc_prefix="$withval" else libotr_inc_prefix="" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libotr CFLAGS" >&5 $as_echo_n "checking for libotr CFLAGS... " >&6; } if test "$libotr_inc_prefix" != "" ; then LIBOTR_CFLAGS="$LIBOTR_CFLAGS -I$libotr_inc_prefix" CFLAGS="$CFLAGS $LIBOTR_CFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBOTR_CFLAGS" >&5 $as_echo "$LIBOTR_CFLAGS" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libotr LIBS" >&5 $as_echo_n "checking for libotr LIBS... " >&6; } if test "$libotr_prefix" != "" ; then LIBOTR_LIBS="$LIBOTR_LIBS -L$libotr_prefix" LDFLAGS="$LDFLAGS $LIBOTR_LIBS" fi LIBOTR_LIBS="$LIBOTR_LIBS -lotr" LIBS="$LIBOTR_LIBS $LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBOTR_LIBS" >&5 $as_echo "$LIBOTR_LIBS" >&6; } min_libotr_version=4.0.0 no_libotr="" libotr_min_major_version=`echo $min_libotr_version | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'` libotr_min_minor_version=`echo $min_libotr_version | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'` libotr_min_sub_version=`echo $min_libotr_version | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libotr headers version $libotr_min_major_version.x >= $min_libotr_version" >&5 $as_echo_n "checking for libotr headers version $libotr_min_major_version.x >= $min_libotr_version... " >&6; } ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { # if(OTRL_VERSION_MAJOR != $libotr_min_major_version) # error not present # else # if(OTRL_VERSION_MINOR > $libotr_min_minor_version) exit(0); # else # if(OTRL_VERSION_MINOR < $libotr_min_minor_version) # error not present # endif # if(OTRL_VERSION_SUB < $libotr_min_sub_version) # error not present # endif # endif # endif exit(0); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: found." >&5 $as_echo "found." >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: not present." >&5 $as_echo "not present." >&6; } libotr_found=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for otrl_message_receiving in -lotr" >&5 $as_echo_n "checking for otrl_message_receiving in -lotr... " >&6; } if test "${ac_cv_lib_otr_otrl_message_receiving+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lotr $LIBGCRYPT_LIBS $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char otrl_message_receiving (); int main () { return otrl_message_receiving (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_otr_otrl_message_receiving=yes else ac_cv_lib_otr_otrl_message_receiving=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_otr_otrl_message_receiving" >&5 $as_echo "$ac_cv_lib_otr_otrl_message_receiving" >&6; } if test "x$ac_cv_lib_otr_otrl_message_receiving" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBOTR 1 _ACEOF LIBS="-lotr $LIBS" else libotr_found=no fi LDFLAGS="$libotr_save_LDFLAGS" LIBS="$libotr_save_LIBS" if test "x$libotr_found" = "xyes" ; then : else LIBOTR_CFLAGS="" LIBOTR_LIBS="" as_fn_error "libotr 4.x >= 4.0.0 is required." "$LINENO" 5 fi if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_PKG_CONFIG+set}" = set; then : $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 $as_echo "$PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_path_PKG_CONFIG"; then ac_pt_PKG_CONFIG=$PKG_CONFIG # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then : $as_echo_n "(cached) " >&6 else case $ac_pt_PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG if test -n "$ac_pt_PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 $as_echo "$ac_pt_PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_pt_PKG_CONFIG" = x; then PKG_CONFIG="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac PKG_CONFIG=$ac_pt_PKG_CONFIG fi else PKG_CONFIG="$ac_cv_path_PKG_CONFIG" fi fi if test -n "$PKG_CONFIG"; then _pkg_min_version=0.9.0 { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 $as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } PKG_CONFIG="" fi fi pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EXTRA" >&5 $as_echo_n "checking for EXTRA... " >&6; } if test -n "$PKG_CONFIG"; then if test -n "$EXTRA_CFLAGS"; then pkg_cv_EXTRA_CFLAGS="$EXTRA_CFLAGS" else if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.6 gtk+-2.0 >= 2.6 pidgin >= 2.0 purple >= 2.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.6 gtk+-2.0 >= 2.6 pidgin >= 2.0 purple >= 2.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_EXTRA_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0 >= 2.6 gtk+-2.0 >= 2.6 pidgin >= 2.0 purple >= 2.0" 2>/dev/null` else pkg_failed=yes fi fi else pkg_failed=untried fi if test -n "$PKG_CONFIG"; then if test -n "$EXTRA_LIBS"; then pkg_cv_EXTRA_LIBS="$EXTRA_LIBS" else if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.6 gtk+-2.0 >= 2.6 pidgin >= 2.0 purple >= 2.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.6 gtk+-2.0 >= 2.6 pidgin >= 2.0 purple >= 2.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_EXTRA_LIBS=`$PKG_CONFIG --libs "glib-2.0 >= 2.6 gtk+-2.0 >= 2.6 pidgin >= 2.0 purple >= 2.0" 2>/dev/null` else pkg_failed=yes fi fi else pkg_failed=untried fi if test $pkg_failed = yes; then if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then EXTRA_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "glib-2.0 >= 2.6 gtk+-2.0 >= 2.6 pidgin >= 2.0 purple >= 2.0"` else EXTRA_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "glib-2.0 >= 2.6 gtk+-2.0 >= 2.6 pidgin >= 2.0 purple >= 2.0"` fi # Put the nasty error message in config.log where it belongs echo "$EXTRA_PKG_ERRORS" >&5 as_fn_error "Package requirements (glib-2.0 >= 2.6 gtk+-2.0 >= 2.6 pidgin >= 2.0 purple >= 2.0) were not met: $EXTRA_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables EXTRA_CFLAGS and EXTRA_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. " "$LINENO" 5 elif test $pkg_failed = untried; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables EXTRA_CFLAGS and EXTRA_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details." "$LINENO" 5; } else EXTRA_CFLAGS=$pkg_cv_EXTRA_CFLAGS EXTRA_LIBS=$pkg_cv_EXTRA_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } : fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5 $as_echo_n "checking whether NLS is requested... " >&6; } # Check whether --enable-nls was given. if test "${enable_nls+set}" = set; then : enableval=$enable_nls; USE_NLS=$enableval else USE_NLS=yes fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 $as_echo "$USE_NLS" >&6; } case "$am__api_version" in 1.01234) as_fn_error "Automake 1.5 or newer is required to use intltool" "$LINENO" 5 ;; *) ;; esac if test -n ""; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for intltool >= " >&5 $as_echo_n "checking for intltool >= ... " >&6; } INTLTOOL_REQUIRED_VERSION_AS_INT=`echo | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_APPLIED_VERSION found" >&5 $as_echo "$INTLTOOL_APPLIED_VERSION found" >&6; } test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || as_fn_error "Your intltool is too old. You need intltool or later." "$LINENO" 5 fi # Extract the first word of "intltool-update", so it can be a program name with args. set dummy intltool-update; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_INTLTOOL_UPDATE+set}" = set; then : $as_echo_n "(cached) " >&6 else case $INTLTOOL_UPDATE in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_UPDATE="$INTLTOOL_UPDATE" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_INTLTOOL_UPDATE="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi INTLTOOL_UPDATE=$ac_cv_path_INTLTOOL_UPDATE if test -n "$INTLTOOL_UPDATE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_UPDATE" >&5 $as_echo "$INTLTOOL_UPDATE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "intltool-merge", so it can be a program name with args. set dummy intltool-merge; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_INTLTOOL_MERGE+set}" = set; then : $as_echo_n "(cached) " >&6 else case $INTLTOOL_MERGE in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_MERGE="$INTLTOOL_MERGE" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_INTLTOOL_MERGE="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi INTLTOOL_MERGE=$ac_cv_path_INTLTOOL_MERGE if test -n "$INTLTOOL_MERGE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_MERGE" >&5 $as_echo "$INTLTOOL_MERGE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "intltool-extract", so it can be a program name with args. set dummy intltool-extract; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_INTLTOOL_EXTRACT+set}" = set; then : $as_echo_n "(cached) " >&6 else case $INTLTOOL_EXTRACT in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_EXTRACT="$INTLTOOL_EXTRACT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_INTLTOOL_EXTRACT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi INTLTOOL_EXTRACT=$ac_cv_path_INTLTOOL_EXTRACT if test -n "$INTLTOOL_EXTRACT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_EXTRACT" >&5 $as_echo "$INTLTOOL_EXTRACT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then as_fn_error "The intltool scripts were not found. Please install intltool." "$LINENO" 5 fi INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -p $(top_srcdir)/po $< $@' INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u /tmp $< $@' INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' # Check the gettext tools to make sure they are GNU # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_XGETTEXT+set}" = set; then : $as_echo_n "(cached) " >&6 else case $XGETTEXT in [\\/]* | ?:[\\/]*) ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_XGETTEXT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi XGETTEXT=$ac_cv_path_XGETTEXT if test -n "$XGETTEXT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 $as_echo "$XGETTEXT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "msgmerge", so it can be a program name with args. set dummy msgmerge; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_MSGMERGE+set}" = set; then : $as_echo_n "(cached) " >&6 else case $MSGMERGE in [\\/]* | ?:[\\/]*) ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_MSGMERGE="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi MSGMERGE=$ac_cv_path_MSGMERGE if test -n "$MSGMERGE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 $as_echo "$MSGMERGE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_MSGFMT+set}" = set; then : $as_echo_n "(cached) " >&6 else case $MSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_MSGFMT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi MSGFMT=$ac_cv_path_MSGFMT if test -n "$MSGFMT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 $as_echo "$MSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_GMSGFMT+set}" = set; then : $as_echo_n "(cached) " >&6 else case $GMSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" ;; esac fi GMSGFMT=$ac_cv_path_GMSGFMT if test -n "$GMSGFMT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 $as_echo "$GMSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then as_fn_error "GNU gettext tools not found; required for intltool" "$LINENO" 5 fi xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then as_fn_error "GNU gettext tools not found; required for intltool" "$LINENO" 5 fi # Extract the first word of "perl", so it can be a program name with args. set dummy perl; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_INTLTOOL_PERL+set}" = set; then : $as_echo_n "(cached) " >&6 else case $INTLTOOL_PERL in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_PERL="$INTLTOOL_PERL" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_INTLTOOL_PERL="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi INTLTOOL_PERL=$ac_cv_path_INTLTOOL_PERL if test -n "$INTLTOOL_PERL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_PERL" >&5 $as_echo "$INTLTOOL_PERL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$INTLTOOL_PERL"; then as_fn_error "perl not found" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for perl >= 5.8.1" >&5 $as_echo_n "checking for perl >= 5.8.1... " >&6; } $INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 if test $? -ne 0; then as_fn_error "perl 5.8.1 is required for intltool" "$LINENO" 5 else IT_PERL_VERSION="`$INTLTOOL_PERL -e \"printf '%vd', $^V\"`" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $IT_PERL_VERSION" >&5 $as_echo "$IT_PERL_VERSION" >&6; } fi if test "x" != "xno-xml"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XML::Parser" >&5 $as_echo_n "checking for XML::Parser... " >&6; } if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 $as_echo "ok" >&6; } else as_fn_error "XML::Parser perl module is required for intltool" "$LINENO" 5 fi fi # Substitute ALL_LINGUAS so we can use it in po/Makefile # Set DATADIRNAME correctly if it is not set yet # (copied from glib-gettext.m4) if test -z "$DATADIRNAME"; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { extern int _nl_msg_cat_cntr; return _nl_msg_cat_cntr ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : DATADIRNAME=share else case $host in *-*-solaris*) ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" if test "x$ac_cv_func_bind_textdomain_codeset" = x""yes; then : DATADIRNAME=share else DATADIRNAME=lib fi ;; *) DATADIRNAME=lib ;; esac fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi GETTEXT_PACKAGE=pidgin-otr cat >>confdefs.h <<_ACEOF #define GETTEXT_PACKAGE "$GETTEXT_PACKAGE" _ACEOF ALL_LINGUAS="ar de el es fa fr hu it my_MM nl nn pl ru sk sv vi zh_CN" for ac_header in locale.h do : ac_fn_c_check_header_mongrel "$LINENO" "locale.h" "ac_cv_header_locale_h" "$ac_includes_default" if test "x$ac_cv_header_locale_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LOCALE_H 1 _ACEOF fi done if test $ac_cv_header_locale_h = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LC_MESSAGES" >&5 $as_echo_n "checking for LC_MESSAGES... " >&6; } if test "${am_cv_val_LC_MESSAGES+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { return LC_MESSAGES ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : am_cv_val_LC_MESSAGES=yes else am_cv_val_LC_MESSAGES=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_val_LC_MESSAGES" >&5 $as_echo "$am_cv_val_LC_MESSAGES" >&6; } if test $am_cv_val_LC_MESSAGES = yes; then $as_echo "#define HAVE_LC_MESSAGES 1" >>confdefs.h fi fi USE_NLS=yes gt_cv_have_gettext=no CATOBJEXT=NONE XGETTEXT=: INTLLIBS= ac_fn_c_check_header_mongrel "$LINENO" "libintl.h" "ac_cv_header_libintl_h" "$ac_includes_default" if test "x$ac_cv_header_libintl_h" = x""yes; then : gt_cv_func_dgettext_libintl="no" libintl_extra_libs="" # # First check in libc # { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in libc" >&5 $as_echo_n "checking for ngettext in libc... " >&6; } if test "${gt_cv_func_ngettext_libc+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { return !ngettext ("","", 1) ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gt_cv_func_ngettext_libc=yes else gt_cv_func_ngettext_libc=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_ngettext_libc" >&5 $as_echo "$gt_cv_func_ngettext_libc" >&6; } if test "$gt_cv_func_ngettext_libc" = "yes" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgettext in libc" >&5 $as_echo_n "checking for dgettext in libc... " >&6; } if test "${gt_cv_func_dgettext_libc+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { return !dgettext ("","") ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gt_cv_func_dgettext_libc=yes else gt_cv_func_dgettext_libc=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_dgettext_libc" >&5 $as_echo "$gt_cv_func_dgettext_libc" >&6; } fi if test "$gt_cv_func_ngettext_libc" = "yes" ; then for ac_func in bind_textdomain_codeset do : ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" if test "x$ac_cv_func_bind_textdomain_codeset" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_BIND_TEXTDOMAIN_CODESET 1 _ACEOF fi done fi # # If we don't have everything we want, check in libintl # if test "$gt_cv_func_dgettext_libc" != "yes" \ || test "$gt_cv_func_ngettext_libc" != "yes" \ || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bindtextdomain in -lintl" >&5 $as_echo_n "checking for bindtextdomain in -lintl... " >&6; } if test "${ac_cv_lib_intl_bindtextdomain+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char bindtextdomain (); int main () { return bindtextdomain (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_bindtextdomain=yes else ac_cv_lib_intl_bindtextdomain=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_bindtextdomain" >&5 $as_echo "$ac_cv_lib_intl_bindtextdomain" >&6; } if test "x$ac_cv_lib_intl_bindtextdomain" = x""yes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in -lintl" >&5 $as_echo_n "checking for ngettext in -lintl... " >&6; } if test "${ac_cv_lib_intl_ngettext+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char ngettext (); int main () { return ngettext (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_ngettext=yes else ac_cv_lib_intl_ngettext=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_ngettext" >&5 $as_echo "$ac_cv_lib_intl_ngettext" >&6; } if test "x$ac_cv_lib_intl_ngettext" = x""yes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgettext in -lintl" >&5 $as_echo_n "checking for dgettext in -lintl... " >&6; } if test "${ac_cv_lib_intl_dgettext+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dgettext (); int main () { return dgettext (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_dgettext=yes else ac_cv_lib_intl_dgettext=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_dgettext" >&5 $as_echo "$ac_cv_lib_intl_dgettext" >&6; } if test "x$ac_cv_lib_intl_dgettext" = x""yes; then : gt_cv_func_dgettext_libintl=yes fi fi fi if test "$gt_cv_func_dgettext_libintl" != "yes" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if -liconv is needed to use gettext" >&5 $as_echo_n "checking if -liconv is needed to use gettext... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 $as_echo "" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in -lintl" >&5 $as_echo_n "checking for ngettext in -lintl... " >&6; } if test "${ac_cv_lib_intl_ngettext+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl -liconv $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char ngettext (); int main () { return ngettext (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_ngettext=yes else ac_cv_lib_intl_ngettext=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_ngettext" >&5 $as_echo "$ac_cv_lib_intl_ngettext" >&6; } if test "x$ac_cv_lib_intl_ngettext" = x""yes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dcgettext in -lintl" >&5 $as_echo_n "checking for dcgettext in -lintl... " >&6; } if test "${ac_cv_lib_intl_dcgettext+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl -liconv $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dcgettext (); int main () { return dcgettext (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_dcgettext=yes else ac_cv_lib_intl_dcgettext=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_dcgettext" >&5 $as_echo "$ac_cv_lib_intl_dcgettext" >&6; } if test "x$ac_cv_lib_intl_dcgettext" = x""yes; then : gt_cv_func_dgettext_libintl=yes libintl_extra_libs=-liconv else : fi else : fi fi # # If we found libintl, then check in it for bind_textdomain_codeset(); # we'll prefer libc if neither have bind_textdomain_codeset(), # and both have dgettext and ngettext # if test "$gt_cv_func_dgettext_libintl" = "yes" ; then glib_save_LIBS="$LIBS" LIBS="$LIBS -lintl $libintl_extra_libs" unset ac_cv_func_bind_textdomain_codeset for ac_func in bind_textdomain_codeset do : ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" if test "x$ac_cv_func_bind_textdomain_codeset" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_BIND_TEXTDOMAIN_CODESET 1 _ACEOF fi done LIBS="$glib_save_LIBS" if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then gt_cv_func_dgettext_libc=no else if test "$gt_cv_func_dgettext_libc" = "yes" \ && test "$gt_cv_func_ngettext_libc" = "yes"; then gt_cv_func_dgettext_libintl=no fi fi fi fi if test "$gt_cv_func_dgettext_libc" = "yes" \ || test "$gt_cv_func_dgettext_libintl" = "yes"; then gt_cv_have_gettext=yes fi if test "$gt_cv_func_dgettext_libintl" = "yes"; then INTLLIBS="-lintl $libintl_extra_libs" fi if test "$gt_cv_have_gettext" = "yes"; then $as_echo "#define HAVE_GETTEXT 1" >>confdefs.h # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_MSGFMT+set}" = set; then : $as_echo_n "(cached) " >&6 else case "$MSGFMT" in /*) ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"; then ac_cv_path_MSGFMT="$ac_dir/$ac_word" break fi fi done IFS="$ac_save_ifs" test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT="no" ;; esac fi MSGFMT="$ac_cv_path_MSGFMT" if test "$MSGFMT" != "no"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 $as_echo "$MSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "$MSGFMT" != "no"; then glib_save_LIBS="$LIBS" LIBS="$LIBS $INTLLIBS" for ac_func in dcgettext do : ac_fn_c_check_func "$LINENO" "dcgettext" "ac_cv_func_dcgettext" if test "x$ac_cv_func_dcgettext" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DCGETTEXT 1 _ACEOF fi done MSGFMT_OPTS= { $as_echo "$as_me:${as_lineno-$LINENO}: checking if msgfmt accepts -c" >&5 $as_echo_n "checking if msgfmt accepts -c... " >&6; } cat >conftest.foo <<_ACEOF msgid "" msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Project-Id-Version: test 1.0\n" "PO-Revision-Date: 2007-02-15 12:01+0100\n" "Last-Translator: test \n" "Language-Team: C \n" "MIME-Version: 1.0\n" "Content-Transfer-Encoding: 8bit\n" _ACEOF if { { $as_echo "$as_me:${as_lineno-$LINENO}: \$MSGFMT -c -o /dev/null conftest.foo"; } >&5 ($MSGFMT -c -o /dev/null conftest.foo) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then MSGFMT_OPTS=-c; { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } echo "$as_me: failed input was:" >&5 sed 's/^/| /' conftest.foo >&5 fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_GMSGFMT+set}" = set; then : $as_echo_n "(cached) " >&6 else case $GMSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" ;; esac fi GMSGFMT=$ac_cv_path_GMSGFMT if test -n "$GMSGFMT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 $as_echo "$GMSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_XGETTEXT+set}" = set; then : $as_echo_n "(cached) " >&6 else case "$XGETTEXT" in /*) ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"; then ac_cv_path_XGETTEXT="$ac_dir/$ac_word" break fi fi done IFS="$ac_save_ifs" test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" ;; esac fi XGETTEXT="$ac_cv_path_XGETTEXT" if test "$XGETTEXT" != ":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 $as_echo "$XGETTEXT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { extern int _nl_msg_cat_cntr; return _nl_msg_cat_cntr ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : CATOBJEXT=.gmo DATADIRNAME=share else case $host in *-*-solaris*) ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" if test "x$ac_cv_func_bind_textdomain_codeset" = x""yes; then : CATOBJEXT=.gmo DATADIRNAME=share else CATOBJEXT=.mo DATADIRNAME=lib fi ;; *) CATOBJEXT=.mo DATADIRNAME=lib ;; esac fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$glib_save_LIBS" INSTOBJEXT=.mo else gt_cv_have_gettext=no fi fi fi if test "$gt_cv_have_gettext" = "yes" ; then $as_echo "#define ENABLE_NLS 1" >>confdefs.h fi if test "$XGETTEXT" != ":"; then if $XGETTEXT --omit-header /dev/null 2> /dev/null; then : ; else { $as_echo "$as_me:${as_lineno-$LINENO}: result: found xgettext program is not GNU xgettext; ignore it" >&5 $as_echo "found xgettext program is not GNU xgettext; ignore it" >&6; } XGETTEXT=":" fi fi # We need to process the po/ directory. POSUB=po ac_config_commands="$ac_config_commands default-1" for lang in $ALL_LINGUAS; do GMOFILES="$GMOFILES $lang.gmo" POFILES="$POFILES $lang.po" done if test "$gt_cv_have_gettext" = "yes"; then if test "x$ALL_LINGUAS" = "x"; then LINGUAS= else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for catalogs to be installed" >&5 $as_echo_n "checking for catalogs to be installed... " >&6; } NEW_LINGUAS= for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then desiredlanguages="$LINGUAS" else desiredlanguages="$ALL_LINGUAS" fi for desiredlang in $desiredlanguages; do # Use the presentlang catalog if desiredlang is # a. equal to presentlang, or # b. a variant of presentlang (because in this case, # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in "$presentlang"*) useit=yes;; esac done if test $useit = yes; then NEW_LINGUAS="$NEW_LINGUAS $presentlang" fi done LINGUAS=$NEW_LINGUAS { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LINGUAS" >&5 $as_echo "$LINGUAS" >&6; } fi if test -n "$LINGUAS"; then for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done fi fi MKINSTALLDIRS= if test -n "$ac_aux_dir"; then MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" fi if test -z "$MKINSTALLDIRS"; then MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" fi test -d po || mkdir po if test "x$srcdir" != "x."; then if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then posrcprefix="$srcdir/" else posrcprefix="../$srcdir/" fi else posrcprefix="../" fi rm -f po/POTFILES sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ < $srcdir/po/POTFILES.in > po/POTFILES { $as_echo "$as_me:${as_lineno-$LINENO}: checking for win32" >&5 $as_echo_n "checking for win32... " >&6; } if test "$cross_compiling" = yes; then : bwin32=cross; { $as_echo "$as_me:${as_lineno-$LINENO}: result: cross" >&5 $as_echo "cross" >&6; } else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main(int c, char **v) { #ifdef _WIN32 #if _WIN32 return 0; #else return 1; #endif #else return 2; #endif } _ACEOF if ac_fn_c_try_run "$LINENO"; then : bwin32=true; { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else bwin32=false; { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi if test "$bwin32" = cross; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for win32 (cross)" >&5 $as_echo_n "checking for win32 (cross)... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef _WIN32 int main(int c, char **v) {return 0;} #else #error int main(int c, char **v) {return x(y);} #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : bwin32=true; { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else bwin32=false; { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi if test x$bwin32 = xtrue; then BUILD_NT_SERVICES_TRUE= BUILD_NT_SERVICES_FALSE='#' else BUILD_NT_SERVICES_TRUE='#' BUILD_NT_SERVICES_FALSE= fi # Check whether --enable-gcc-hardening was given. if test "${enable_gcc_hardening+set}" = set; then : enableval=$enable_gcc_hardening; fi # Check whether --enable-linker-hardening was given. if test "${enable_linker_hardening+set}" = set; then : enableval=$enable_linker_hardening; fi all_ldflags_for_check="$LDFLAGS" all_libs_for_check="$LIBGCRYPT_LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #if !defined(__clang__) #error #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : have_clang=yes else have_clang=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test x$enable_gcc_hardening != xno; then CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=2" if test x$have_clang = xyes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler accepts -Qunused-arguments" >&5 $as_echo_n "checking whether the compiler accepts -Qunused-arguments... " >&6; } if test "${otr_cv_cflags__Qunused_arguments+set}" = set; then : $as_echo_n "(cached) " >&6 else otr_saved_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -pedantic -Werror -Qunused-arguments" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : otr_cv_cflags__Qunused_arguments=yes else otr_cv_cflags__Qunused_arguments=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS="$otr_saved_CFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $otr_cv_cflags__Qunused_arguments" >&5 $as_echo "$otr_cv_cflags__Qunused_arguments" >&6; } if test x$otr_cv_cflags__Qunused_arguments = xyes; then CFLAGS="$CFLAGS -Qunused-arguments" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler accepts -fstack-protector-all" >&5 $as_echo_n "checking whether the compiler accepts -fstack-protector-all... " >&6; } if test "${otr_cv_cflags__fstack_protector_all+set}" = set; then : $as_echo_n "(cached) " >&6 else otr_saved_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -pedantic -Werror -fstack-protector-all" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : otr_cv_cflags__fstack_protector_all=yes else otr_cv_cflags__fstack_protector_all=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS="$otr_saved_CFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $otr_cv_cflags__fstack_protector_all" >&5 $as_echo "$otr_cv_cflags__fstack_protector_all" >&6; } if test x$otr_cv_cflags__fstack_protector_all = xyes; then CFLAGS="$CFLAGS -fstack-protector-all" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler accepts -Wstack-protector" >&5 $as_echo_n "checking whether the compiler accepts -Wstack-protector... " >&6; } if test "${otr_cv_cflags__Wstack_protector+set}" = set; then : $as_echo_n "(cached) " >&6 else otr_saved_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -pedantic -Werror -Wstack-protector" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : otr_cv_cflags__Wstack_protector=yes else otr_cv_cflags__Wstack_protector=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS="$otr_saved_CFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $otr_cv_cflags__Wstack_protector" >&5 $as_echo "$otr_cv_cflags__Wstack_protector" >&6; } if test x$otr_cv_cflags__Wstack_protector = xyes; then CFLAGS="$CFLAGS -Wstack-protector" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler accepts -fwrapv" >&5 $as_echo_n "checking whether the compiler accepts -fwrapv... " >&6; } if test "${otr_cv_cflags__fwrapv+set}" = set; then : $as_echo_n "(cached) " >&6 else otr_saved_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -pedantic -Werror -fwrapv" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : otr_cv_cflags__fwrapv=yes else otr_cv_cflags__fwrapv=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS="$otr_saved_CFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $otr_cv_cflags__fwrapv" >&5 $as_echo "$otr_cv_cflags__fwrapv" >&6; } if test x$otr_cv_cflags__fwrapv = xyes; then CFLAGS="$CFLAGS -fwrapv" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler accepts --param ssp-buffer-size=1" >&5 $as_echo_n "checking whether the compiler accepts --param ssp-buffer-size=1... " >&6; } if test "${otr_cv_cflags___param_ssp_buffer_size_1+set}" = set; then : $as_echo_n "(cached) " >&6 else otr_saved_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -pedantic -Werror --param ssp-buffer-size=1" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : otr_cv_cflags___param_ssp_buffer_size_1=yes else otr_cv_cflags___param_ssp_buffer_size_1=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS="$otr_saved_CFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $otr_cv_cflags___param_ssp_buffer_size_1" >&5 $as_echo "$otr_cv_cflags___param_ssp_buffer_size_1" >&6; } if test x$otr_cv_cflags___param_ssp_buffer_size_1 = xyes; then CFLAGS="$CFLAGS --param ssp-buffer-size=1" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler accepts -fno-strict-overflow" >&5 $as_echo_n "checking whether the compiler accepts -fno-strict-overflow... " >&6; } if test "${otr_cv_cflags__fno_strict_overflow+set}" = set; then : $as_echo_n "(cached) " >&6 else otr_saved_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -pedantic -Werror -fno-strict-overflow" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : otr_cv_cflags__fno_strict_overflow=yes else otr_cv_cflags__fno_strict_overflow=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS="$otr_saved_CFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $otr_cv_cflags__fno_strict_overflow" >&5 $as_echo "$otr_cv_cflags__fno_strict_overflow" >&6; } if test x$otr_cv_cflags__fno_strict_overflow = xyes; then CFLAGS="$CFLAGS -fno-strict-overflow" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler accepts -Wall" >&5 $as_echo_n "checking whether the compiler accepts -Wall... " >&6; } if test "${otr_cv_cflags__Wall+set}" = set; then : $as_echo_n "(cached) " >&6 else otr_saved_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -pedantic -Werror -Wall" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : otr_cv_cflags__Wall=yes else otr_cv_cflags__Wall=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS="$otr_saved_CFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $otr_cv_cflags__Wall" >&5 $as_echo "$otr_cv_cflags__Wall" >&6; } if test x$otr_cv_cflags__Wall = xyes; then CFLAGS="$CFLAGS -Wall" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler accepts -Wextra -Wno-unused-parameter -Wno-missing-field-initializers" >&5 $as_echo_n "checking whether the compiler accepts -Wextra -Wno-unused-parameter -Wno-missing-field-initializers... " >&6; } if test "${otr_cv_cflags__Wextra__Wno_unused_parameter__Wno_missing_field_initializers+set}" = set; then : $as_echo_n "(cached) " >&6 else otr_saved_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -pedantic -Werror -Wextra -Wno-unused-parameter -Wno-missing-field-initializers" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : otr_cv_cflags__Wextra__Wno_unused_parameter__Wno_missing_field_initializers=yes else otr_cv_cflags__Wextra__Wno_unused_parameter__Wno_missing_field_initializers=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS="$otr_saved_CFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $otr_cv_cflags__Wextra__Wno_unused_parameter__Wno_missing_field_initializers" >&5 $as_echo "$otr_cv_cflags__Wextra__Wno_unused_parameter__Wno_missing_field_initializers" >&6; } if test x$otr_cv_cflags__Wextra__Wno_unused_parameter__Wno_missing_field_initializers = xyes; then CFLAGS="$CFLAGS -Wextra -Wno-unused-parameter -Wno-missing-field-initializers" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler accepts -Wformat-security" >&5 $as_echo_n "checking whether the compiler accepts -Wformat-security... " >&6; } if test "${otr_cv_cflags__Wformat_security+set}" = set; then : $as_echo_n "(cached) " >&6 else otr_saved_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -pedantic -Werror -Wformat-security" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : otr_cv_cflags__Wformat_security=yes else otr_cv_cflags__Wformat_security=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS="$otr_saved_CFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $otr_cv_cflags__Wformat_security" >&5 $as_echo "$otr_cv_cflags__Wformat_security" >&6; } if test x$otr_cv_cflags__Wformat_security = xyes; then CFLAGS="$CFLAGS -Wformat-security" fi if test "$bwin32" = "false"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler accepts -fPIE" >&5 $as_echo_n "checking whether the compiler accepts -fPIE... " >&6; } if test "${otr_cv_cflags__fPIE+set}" = set; then : $as_echo_n "(cached) " >&6 else otr_saved_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -pedantic -Werror -fPIE" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : otr_cv_cflags__fPIE=yes else otr_cv_cflags__fPIE=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS="$otr_saved_CFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $otr_cv_cflags__fPIE" >&5 $as_echo "$otr_cv_cflags__fPIE" >&6; } if test x$otr_cv_cflags__fPIE = xyes; then CFLAGS="$CFLAGS -fPIE" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts -pie" >&5 $as_echo_n "checking whether the linker accepts -pie... " >&6; } if test "${otr_cv_ldflags__pie+set}" = set; then : $as_echo_n "(cached) " >&6 else otr_saved_CFLAGS="$CFLAGS" otr_saved_LDFLAGS="$LDFLAGS" otr_saved_LIBS="$LIBS" CFLAGS="$CFLAGS -pedantic -Werror" LDFLAGS="$LDFLAGS "$all_ldflags_for_check" -pie" LIBS="$LIBS "$all_libs_for_check"" if test "$cross_compiling" = yes; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { return 0; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : otr_cv_ldflags__pie=yes else otr_cv_ldflags__pie=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { fputs("", stdout) ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : otr_cv_ldflags__pie=yes else otr_cv_ldflags__pie=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi CFLAGS="$otr_saved_CFLAGS" LDFLAGS="$otr_saved_LDFLAGS" LIBS="$otr_saved_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $otr_cv_ldflags__pie" >&5 $as_echo "$otr_cv_ldflags__pie" >&6; } if test x$otr_cv_ldflags__pie = xyes; then LDFLAGS="$LDFLAGS -pie" fi fi fi if test x$enable_linker_hardening != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts -z relro -z now" >&5 $as_echo_n "checking whether the linker accepts -z relro -z now... " >&6; } if test "${otr_cv_ldflags__z_relro__z_now+set}" = set; then : $as_echo_n "(cached) " >&6 else otr_saved_CFLAGS="$CFLAGS" otr_saved_LDFLAGS="$LDFLAGS" otr_saved_LIBS="$LIBS" CFLAGS="$CFLAGS -pedantic -Werror" LDFLAGS="$LDFLAGS "$all_ldflags_for_check" -z relro -z now" LIBS="$LIBS "$all_libs_for_check"" if test "$cross_compiling" = yes; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { return 0; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : otr_cv_ldflags__z_relro__z_now=yes else otr_cv_ldflags__z_relro__z_now=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { fputs("", stdout) ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : otr_cv_ldflags__z_relro__z_now=yes else otr_cv_ldflags__z_relro__z_now=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi CFLAGS="$otr_saved_CFLAGS" LDFLAGS="$otr_saved_LDFLAGS" LIBS="$otr_saved_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $otr_cv_ldflags__z_relro__z_now" >&5 $as_echo "$otr_cv_ldflags__z_relro__z_now" >&6; } if test x$otr_cv_ldflags__z_relro__z_now = xyes; then LDFLAGS="$LDFLAGS -z relro -z now" fi fi ac_config_files="$ac_config_files Makefile po/Makefile.in" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then test "x$cache_file" != "x/dev/null" && { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} cat confcache >$cache_file else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' else am__EXEEXT_TRUE='#' am__EXEEXT_FALSE= fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then as_fn_error "conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi ac_config_commands="$ac_config_commands po/stamp-it" if test -z "${BUILD_NT_SERVICES_TRUE}" && test -z "${BUILD_NT_SERVICES_FALSE}"; then as_fn_error "conditional \"BUILD_NT_SERVICES\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi : ${CONFIG_STATUS=./config.status} ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error ERROR [LINENO LOG_FD] # --------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with status $?, using 1 if that was 0. as_fn_error () { as_status=$?; test $as_status -eq 0 && as_status=1 if test "$3"; then as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3 fi $as_echo "$as_me: error: $1" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in #( -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by pidgin-otr $as_me 4.0.0, which was generated by GNU Autoconf 2.65. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac case $ac_config_headers in *" "*) set x $ac_config_headers; shift; ac_config_headers=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Configuration commands: $config_commands Report bugs to the package provider." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ pidgin-otr config.status 4.0.0 configured by $0, generated by GNU Autoconf 2.65, with options \\"\$ac_cs_config\\" Copyright (C) 2009 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' AWK='$AWK' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_HEADERS " '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header as_fn_error "ambiguous option: \`$1' Try \`$0 --help' for more information.";; --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # # INIT-COMMANDS # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' enable_static='`$ECHO "X$enable_static" | $Xsed -e "$delay_single_quote_subst"`' macro_version='`$ECHO "X$macro_version" | $Xsed -e "$delay_single_quote_subst"`' macro_revision='`$ECHO "X$macro_revision" | $Xsed -e "$delay_single_quote_subst"`' enable_shared='`$ECHO "X$enable_shared" | $Xsed -e "$delay_single_quote_subst"`' pic_mode='`$ECHO "X$pic_mode" | $Xsed -e "$delay_single_quote_subst"`' enable_fast_install='`$ECHO "X$enable_fast_install" | $Xsed -e "$delay_single_quote_subst"`' host_alias='`$ECHO "X$host_alias" | $Xsed -e "$delay_single_quote_subst"`' host='`$ECHO "X$host" | $Xsed -e "$delay_single_quote_subst"`' host_os='`$ECHO "X$host_os" | $Xsed -e "$delay_single_quote_subst"`' build_alias='`$ECHO "X$build_alias" | $Xsed -e "$delay_single_quote_subst"`' build='`$ECHO "X$build" | $Xsed -e "$delay_single_quote_subst"`' build_os='`$ECHO "X$build_os" | $Xsed -e "$delay_single_quote_subst"`' SED='`$ECHO "X$SED" | $Xsed -e "$delay_single_quote_subst"`' Xsed='`$ECHO "X$Xsed" | $Xsed -e "$delay_single_quote_subst"`' GREP='`$ECHO "X$GREP" | $Xsed -e "$delay_single_quote_subst"`' EGREP='`$ECHO "X$EGREP" | $Xsed -e "$delay_single_quote_subst"`' FGREP='`$ECHO "X$FGREP" | $Xsed -e "$delay_single_quote_subst"`' LD='`$ECHO "X$LD" | $Xsed -e "$delay_single_quote_subst"`' NM='`$ECHO "X$NM" | $Xsed -e "$delay_single_quote_subst"`' LN_S='`$ECHO "X$LN_S" | $Xsed -e "$delay_single_quote_subst"`' max_cmd_len='`$ECHO "X$max_cmd_len" | $Xsed -e "$delay_single_quote_subst"`' ac_objext='`$ECHO "X$ac_objext" | $Xsed -e "$delay_single_quote_subst"`' exeext='`$ECHO "X$exeext" | $Xsed -e "$delay_single_quote_subst"`' lt_unset='`$ECHO "X$lt_unset" | $Xsed -e "$delay_single_quote_subst"`' lt_SP2NL='`$ECHO "X$lt_SP2NL" | $Xsed -e "$delay_single_quote_subst"`' lt_NL2SP='`$ECHO "X$lt_NL2SP" | $Xsed -e "$delay_single_quote_subst"`' reload_flag='`$ECHO "X$reload_flag" | $Xsed -e "$delay_single_quote_subst"`' reload_cmds='`$ECHO "X$reload_cmds" | $Xsed -e "$delay_single_quote_subst"`' OBJDUMP='`$ECHO "X$OBJDUMP" | $Xsed -e "$delay_single_quote_subst"`' deplibs_check_method='`$ECHO "X$deplibs_check_method" | $Xsed -e "$delay_single_quote_subst"`' file_magic_cmd='`$ECHO "X$file_magic_cmd" | $Xsed -e "$delay_single_quote_subst"`' AR='`$ECHO "X$AR" | $Xsed -e "$delay_single_quote_subst"`' AR_FLAGS='`$ECHO "X$AR_FLAGS" | $Xsed -e "$delay_single_quote_subst"`' STRIP='`$ECHO "X$STRIP" | $Xsed -e "$delay_single_quote_subst"`' RANLIB='`$ECHO "X$RANLIB" | $Xsed -e "$delay_single_quote_subst"`' old_postinstall_cmds='`$ECHO "X$old_postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' old_postuninstall_cmds='`$ECHO "X$old_postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' old_archive_cmds='`$ECHO "X$old_archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' CC='`$ECHO "X$CC" | $Xsed -e "$delay_single_quote_subst"`' CFLAGS='`$ECHO "X$CFLAGS" | $Xsed -e "$delay_single_quote_subst"`' compiler='`$ECHO "X$compiler" | $Xsed -e "$delay_single_quote_subst"`' GCC='`$ECHO "X$GCC" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_pipe='`$ECHO "X$lt_cv_sys_global_symbol_pipe" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_cdecl='`$ECHO "X$lt_cv_sys_global_symbol_to_cdecl" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' objdir='`$ECHO "X$objdir" | $Xsed -e "$delay_single_quote_subst"`' SHELL='`$ECHO "X$SHELL" | $Xsed -e "$delay_single_quote_subst"`' ECHO='`$ECHO "X$ECHO" | $Xsed -e "$delay_single_quote_subst"`' MAGIC_CMD='`$ECHO "X$MAGIC_CMD" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag='`$ECHO "X$lt_prog_compiler_no_builtin_flag" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_wl='`$ECHO "X$lt_prog_compiler_wl" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_pic='`$ECHO "X$lt_prog_compiler_pic" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_static='`$ECHO "X$lt_prog_compiler_static" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o='`$ECHO "X$lt_cv_prog_compiler_c_o" | $Xsed -e "$delay_single_quote_subst"`' need_locks='`$ECHO "X$need_locks" | $Xsed -e "$delay_single_quote_subst"`' DSYMUTIL='`$ECHO "X$DSYMUTIL" | $Xsed -e "$delay_single_quote_subst"`' NMEDIT='`$ECHO "X$NMEDIT" | $Xsed -e "$delay_single_quote_subst"`' LIPO='`$ECHO "X$LIPO" | $Xsed -e "$delay_single_quote_subst"`' OTOOL='`$ECHO "X$OTOOL" | $Xsed -e "$delay_single_quote_subst"`' OTOOL64='`$ECHO "X$OTOOL64" | $Xsed -e "$delay_single_quote_subst"`' libext='`$ECHO "X$libext" | $Xsed -e "$delay_single_quote_subst"`' shrext_cmds='`$ECHO "X$shrext_cmds" | $Xsed -e "$delay_single_quote_subst"`' extract_expsyms_cmds='`$ECHO "X$extract_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' archive_cmds_need_lc='`$ECHO "X$archive_cmds_need_lc" | $Xsed -e "$delay_single_quote_subst"`' enable_shared_with_static_runtimes='`$ECHO "X$enable_shared_with_static_runtimes" | $Xsed -e "$delay_single_quote_subst"`' export_dynamic_flag_spec='`$ECHO "X$export_dynamic_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' whole_archive_flag_spec='`$ECHO "X$whole_archive_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' compiler_needs_object='`$ECHO "X$compiler_needs_object" | $Xsed -e "$delay_single_quote_subst"`' old_archive_from_new_cmds='`$ECHO "X$old_archive_from_new_cmds" | $Xsed -e "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds='`$ECHO "X$old_archive_from_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' archive_cmds='`$ECHO "X$archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' archive_expsym_cmds='`$ECHO "X$archive_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' module_cmds='`$ECHO "X$module_cmds" | $Xsed -e "$delay_single_quote_subst"`' module_expsym_cmds='`$ECHO "X$module_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' with_gnu_ld='`$ECHO "X$with_gnu_ld" | $Xsed -e "$delay_single_quote_subst"`' allow_undefined_flag='`$ECHO "X$allow_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' no_undefined_flag='`$ECHO "X$no_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_flag_spec='`$ECHO "X$hardcode_libdir_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_flag_spec_ld='`$ECHO "X$hardcode_libdir_flag_spec_ld" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_separator='`$ECHO "X$hardcode_libdir_separator" | $Xsed -e "$delay_single_quote_subst"`' hardcode_direct='`$ECHO "X$hardcode_direct" | $Xsed -e "$delay_single_quote_subst"`' hardcode_direct_absolute='`$ECHO "X$hardcode_direct_absolute" | $Xsed -e "$delay_single_quote_subst"`' hardcode_minus_L='`$ECHO "X$hardcode_minus_L" | $Xsed -e "$delay_single_quote_subst"`' hardcode_shlibpath_var='`$ECHO "X$hardcode_shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' hardcode_automatic='`$ECHO "X$hardcode_automatic" | $Xsed -e "$delay_single_quote_subst"`' inherit_rpath='`$ECHO "X$inherit_rpath" | $Xsed -e "$delay_single_quote_subst"`' link_all_deplibs='`$ECHO "X$link_all_deplibs" | $Xsed -e "$delay_single_quote_subst"`' fix_srcfile_path='`$ECHO "X$fix_srcfile_path" | $Xsed -e "$delay_single_quote_subst"`' always_export_symbols='`$ECHO "X$always_export_symbols" | $Xsed -e "$delay_single_quote_subst"`' export_symbols_cmds='`$ECHO "X$export_symbols_cmds" | $Xsed -e "$delay_single_quote_subst"`' exclude_expsyms='`$ECHO "X$exclude_expsyms" | $Xsed -e "$delay_single_quote_subst"`' include_expsyms='`$ECHO "X$include_expsyms" | $Xsed -e "$delay_single_quote_subst"`' prelink_cmds='`$ECHO "X$prelink_cmds" | $Xsed -e "$delay_single_quote_subst"`' file_list_spec='`$ECHO "X$file_list_spec" | $Xsed -e "$delay_single_quote_subst"`' variables_saved_for_relink='`$ECHO "X$variables_saved_for_relink" | $Xsed -e "$delay_single_quote_subst"`' need_lib_prefix='`$ECHO "X$need_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' need_version='`$ECHO "X$need_version" | $Xsed -e "$delay_single_quote_subst"`' version_type='`$ECHO "X$version_type" | $Xsed -e "$delay_single_quote_subst"`' runpath_var='`$ECHO "X$runpath_var" | $Xsed -e "$delay_single_quote_subst"`' shlibpath_var='`$ECHO "X$shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' shlibpath_overrides_runpath='`$ECHO "X$shlibpath_overrides_runpath" | $Xsed -e "$delay_single_quote_subst"`' libname_spec='`$ECHO "X$libname_spec" | $Xsed -e "$delay_single_quote_subst"`' library_names_spec='`$ECHO "X$library_names_spec" | $Xsed -e "$delay_single_quote_subst"`' soname_spec='`$ECHO "X$soname_spec" | $Xsed -e "$delay_single_quote_subst"`' postinstall_cmds='`$ECHO "X$postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' postuninstall_cmds='`$ECHO "X$postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' finish_cmds='`$ECHO "X$finish_cmds" | $Xsed -e "$delay_single_quote_subst"`' finish_eval='`$ECHO "X$finish_eval" | $Xsed -e "$delay_single_quote_subst"`' hardcode_into_libs='`$ECHO "X$hardcode_into_libs" | $Xsed -e "$delay_single_quote_subst"`' sys_lib_search_path_spec='`$ECHO "X$sys_lib_search_path_spec" | $Xsed -e "$delay_single_quote_subst"`' sys_lib_dlsearch_path_spec='`$ECHO "X$sys_lib_dlsearch_path_spec" | $Xsed -e "$delay_single_quote_subst"`' hardcode_action='`$ECHO "X$hardcode_action" | $Xsed -e "$delay_single_quote_subst"`' enable_dlopen='`$ECHO "X$enable_dlopen" | $Xsed -e "$delay_single_quote_subst"`' enable_dlopen_self='`$ECHO "X$enable_dlopen_self" | $Xsed -e "$delay_single_quote_subst"`' enable_dlopen_self_static='`$ECHO "X$enable_dlopen_self_static" | $Xsed -e "$delay_single_quote_subst"`' old_striplib='`$ECHO "X$old_striplib" | $Xsed -e "$delay_single_quote_subst"`' striplib='`$ECHO "X$striplib" | $Xsed -e "$delay_single_quote_subst"`' LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # Quote evaled strings. for var in SED \ GREP \ EGREP \ FGREP \ LD \ NM \ LN_S \ lt_SP2NL \ lt_NL2SP \ reload_flag \ OBJDUMP \ deplibs_check_method \ file_magic_cmd \ AR \ AR_FLAGS \ STRIP \ RANLIB \ CC \ CFLAGS \ compiler \ lt_cv_sys_global_symbol_pipe \ lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ SHELL \ ECHO \ lt_prog_compiler_no_builtin_flag \ lt_prog_compiler_wl \ lt_prog_compiler_pic \ lt_prog_compiler_static \ lt_cv_prog_compiler_c_o \ need_locks \ DSYMUTIL \ NMEDIT \ LIPO \ OTOOL \ OTOOL64 \ shrext_cmds \ export_dynamic_flag_spec \ whole_archive_flag_spec \ compiler_needs_object \ with_gnu_ld \ allow_undefined_flag \ no_undefined_flag \ hardcode_libdir_flag_spec \ hardcode_libdir_flag_spec_ld \ hardcode_libdir_separator \ fix_srcfile_path \ exclude_expsyms \ include_expsyms \ file_list_spec \ variables_saved_for_relink \ libname_spec \ library_names_spec \ soname_spec \ finish_eval \ old_striplib \ striplib; do case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in reload_cmds \ old_postinstall_cmds \ old_postuninstall_cmds \ old_archive_cmds \ extract_expsyms_cmds \ old_archive_from_new_cmds \ old_archive_from_expsyms_cmds \ archive_cmds \ archive_expsym_cmds \ module_cmds \ module_expsym_cmds \ export_symbols_cmds \ prelink_cmds \ postinstall_cmds \ postuninstall_cmds \ finish_cmds \ sys_lib_search_path_spec \ sys_lib_dlsearch_path_spec; do case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Fix-up fallback echo if it was mangled by the above quoting rules. case \$lt_ECHO in *'\\\$0 --fallback-echo"') lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\$0 --fallback-echo"\$/\$0 --fallback-echo"/'\` ;; esac ac_aux_dir='$ac_aux_dir' xsi_shell='$xsi_shell' lt_shell_append='$lt_shell_append' # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi PACKAGE='$PACKAGE' VERSION='$VERSION' TIMESTAMP='$TIMESTAMP' RM='$RM' ofile='$ofile' _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; "default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; "po/stamp-it") CONFIG_COMMANDS="$CONFIG_COMMANDS po/stamp-it" ;; *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= trap 'exit_status=$? { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5 # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ || as_fn_error "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove $(srcdir), # ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=/{ s/:*\$(srcdir):*/:/ s/:*\${srcdir}:*/:/ s/:*@srcdir@:*/:/ s/^\([^=]*=[ ]*\):*/\1/ s/:*$// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" # Set up the scripts for CONFIG_HEADERS section. # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then cat >"$tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF # Transform confdefs.h into an awk script `defines.awk', embedded as # here-document in config.status, that substitutes the proper values into # config.h.in to produce config.h. # Create a delimiter string that does not exist in confdefs.h, to ease # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do ac_t=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_t"; then break elif $ac_last_try; then as_fn_error "could not make $CONFIG_HEADERS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done # For the awk script, D is an array of macro values keyed by name, # likewise P contains macro parameters if any. Preserve backslash # newline sequences. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* sed -n ' s/.\{148\}/&'"$ac_delim"'/g t rset :rset s/^[ ]*#[ ]*define[ ][ ]*/ / t def d :def s/\\$// t bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3"/p s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p d :bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3\\\\\\n"\\/p t cont s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p t cont d :cont n s/.\{148\}/&'"$ac_delim"'/g t clear :clear s/\\$// t bsnlc s/["\\]/\\&/g; s/^/"/; s/$/"/p d :bsnlc s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p b cont ' >$CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 for (key in D) D_is_set[key] = 1 FS = "" } /^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { line = \$ 0 split(line, arg, " ") if (arg[1] == "#") { defundef = arg[2] mac1 = arg[3] } else { defundef = substr(arg[1], 2) mac1 = arg[2] } split(mac1, mac2, "(") #) macro = mac2[1] prefix = substr(line, 1, index(line, defundef) - 1) if (D_is_set[macro]) { # Preserve the white space surrounding the "#". print prefix "define", macro P[macro] D[macro] next } else { # Replace #undef with comments. This is necessary, for example, # in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. if (defundef == "undef") { print "/*", prefix defundef, macro, "*/" next } } } { print } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 as_fn_error "could not setup config headers machinery" "$LINENO" 5 fi # test -n "$CONFIG_HEADERS" eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$tmp/stdin" \ || as_fn_error "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac ac_MKDIR_P=$MKDIR_P case $MKDIR_P in [\\/$]* | ?:[\\/]* ) ;; */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ || as_fn_error "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&2;} rm -f "$tmp/stdin" case $ac_file in -) cat "$tmp/out" && rm -f "$tmp/out";; *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; esac \ || as_fn_error "could not create $ac_file" "$LINENO" 5 ;; :H) # # CONFIG_HEADER # if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" } >"$tmp/config.h" \ || as_fn_error "could not create $ac_file" "$LINENO" 5 if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$tmp/config.h" "$ac_file" \ || as_fn_error "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error "could not create -" "$LINENO" 5 fi # Compute "$ac_file"'s index in $config_headers. _am_arg="$ac_file" _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || $as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$_am_arg" : 'X\(//\)[^/]' \| \ X"$_am_arg" : 'X\(//\)$' \| \ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$_am_arg" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'`/stamp-h$_am_stamp_count ;; :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 $as_echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || { # Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`$as_dirname -- "$mf" || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir=$dirpart/$fdir; as_fn_mkdir_p # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ;; "libtool":C) # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi cfgfile="${ofile}T" trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008 Free Software Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. # # GNU Libtool is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 2 of # the License, or (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, or # obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # The names of the tagged configurations supported by this script. available_tags="" # ### BEGIN LIBTOOL CONFIG # Whether or not to build static libraries. build_old_libs=$enable_static # Which release of libtool.m4 was used? macro_version=$macro_version macro_revision=$macro_revision # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # What type of objects to build. pic_mode=$pic_mode # 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 # A sed program that does not truncate output. SED=$lt_SED # Sed that helps us avoid accidentally triggering echo(1) options like -n. Xsed="\$SED -e 1s/^X//" # A grep program that handles long lines. GREP=$lt_GREP # An ERE matcher. EGREP=$lt_EGREP # A literal string matcher. FGREP=$lt_FGREP # A BSD- or MS-compatible name lister. NM=$lt_NM # Whether we need soft or hard links. LN_S=$lt_LN_S # What is the maximum length of a command? max_cmd_len=$max_cmd_len # Object file suffix (normally "o"). objext=$ac_objext # Executable file suffix (normally ""). exeext=$exeext # whether the shell understands "unset". lt_unset=$lt_unset # turn spaces into newlines. SP2NL=$lt_lt_SP2NL # turn newlines into spaces. NL2SP=$lt_lt_NL2SP # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # An object symbol dumper. OBJDUMP=$lt_OBJDUMP # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == "file_magic". file_magic_cmd=$lt_file_magic_cmd # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A symbol stripping program. STRIP=$lt_STRIP # Commands used to install an old-style archive. RANLIB=$lt_RANLIB old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # A C compiler. LTCC=$lt_CC # LTCC compiler flags. LTCFLAGS=$lt_CFLAGS # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration. global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair. global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # Transform the output of nm in a C name address pair when lib prefix is needed. global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix # The name of the directory that contains temporary libtool files. objdir=$objdir # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # An echo program that does not interpret backslashes. ECHO=$lt_ECHO # Used to examine libraries when file_magic_cmd begins with "file". MAGIC_CMD=$MAGIC_CMD # Must we lock files when doing compilation? need_locks=$lt_need_locks # Tool to manipulate archived DWARF debug symbol files on Mac OS X. DSYMUTIL=$lt_DSYMUTIL # Tool to change global to local symbols on Mac OS X. NMEDIT=$lt_NMEDIT # Tool to manipulate fat objects and archives on Mac OS X. LIPO=$lt_LIPO # ldd/readelf like tool for Mach-O binaries on Mac OS X. OTOOL=$lt_OTOOL # ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. OTOOL64=$lt_OTOOL64 # Old archive suffix (normally "a"). libext=$libext # Shared library suffix (normally ".so"). shrext_cmds=$lt_shrext_cmds # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Variables whose values should be saved in libtool wrapper scripts and # restored at link time. variables_saved_for_relink=$lt_variables_saved_for_relink # Do we need the "lib" prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Library versioning type. version_type=$version_type # Shared library runtime path variable. runpath_var=$runpath_var # Shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Command to use after installation of a shared archive. postinstall_cmds=$lt_postinstall_cmds # Command to use after uninstallation of a shared archive. postuninstall_cmds=$lt_postuninstall_cmds # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # As "finish_cmds", except a single script fragment to be evaled but # not shown. finish_eval=$lt_finish_eval # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Compile-time system search path for libraries. sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries. sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # The linker used to build libraries. LD=$lt_LD # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds # A language specific compiler. CC=$lt_compiler # Is the compiler the GNU compiler? with_gcc=$GCC # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc # Whether or not to disallow shared libs when runtime libs are static. allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec # Whether the compiler copes with passing no objects directly. compiler_needs_object=$lt_compiler_needs_object # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds # Commands used to build a shared archive. archive_cmds=$lt_archive_cmds archive_expsym_cmds=$lt_archive_expsym_cmds # Commands used to build a loadable module if different from building # a shared archive. module_cmds=$lt_module_cmds module_expsym_cmds=$lt_module_expsym_cmds # Whether we are building with GNU ld or not. with_gnu_ld=$lt_with_gnu_ld # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag # Flag that enforces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec # If ld is used when linking, flag to hardcode \$libdir into a binary # during linking. This must work even if \$libdir does not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary. hardcode_direct=$hardcode_direct # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary and the resulting library dependency is # "absolute",i.e impossible to change by setting \${shlibpath_var} if the # library is relocated. hardcode_direct_absolute=$hardcode_direct_absolute # Set to "yes" if using the -LDIR flag during linking hardcodes DIR # into the resulting binary. hardcode_minus_L=$hardcode_minus_L # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR # into the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var # Set to "yes" if building a shared library automatically hardcodes DIR # into the library and all subsequent libraries and executables linked # against it. hardcode_automatic=$hardcode_automatic # Set to yes if linker adds runtime paths of dependent libraries # to runtime path list. inherit_rpath=$inherit_rpath # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs # 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=$always_export_symbols # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms # Symbols that must always be exported. include_expsyms=$lt_include_expsyms # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds # Specify filename containing input files. file_list_spec=$lt_file_list_spec # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action # ### END LIBTOOL CONFIG _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac ltmain="$ac_aux_dir/ltmain.sh" # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) case $xsi_shell in yes) cat << \_LT_EOF >> "$cfgfile" # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac } # func_basename file func_basename () { func_basename_result="${1##*/}" } # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac func_basename_result="${1##*/}" } # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). func_stripname () { # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are # positional parameters, so assign one to ordinary parameter first. func_stripname_result=${3} func_stripname_result=${func_stripname_result#"${1}"} func_stripname_result=${func_stripname_result%"${2}"} } # func_opt_split func_opt_split () { func_opt_split_opt=${1%%=*} func_opt_split_arg=${1#*=} } # func_lo2o object func_lo2o () { case ${1} in *.lo) func_lo2o_result=${1%.lo}.${objext} ;; *) func_lo2o_result=${1} ;; esac } # func_xform libobj-or-source func_xform () { func_xform_result=${1%.*}.lo } # func_arith arithmetic-term... func_arith () { func_arith_result=$(( $* )) } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=${#1} } _LT_EOF ;; *) # Bourne compatible functions. cat << \_LT_EOF >> "$cfgfile" # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi } # func_basename file func_basename () { func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` } # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # func_strip_suffix prefix name func_stripname () { case ${2} in .*) func_stripname_result=`$ECHO "X${3}" \ | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "X${3}" \ | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; esac } # sed scripts: my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' my_sed_long_arg='1s/^-[^=]*=//' # func_opt_split func_opt_split () { func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` } # func_lo2o object func_lo2o () { func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` } # func_xform libobj-or-source func_xform () { func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[^.]*$/.lo/'` } # func_arith arithmetic-term... func_arith () { func_arith_result=`expr "$@"` } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` } _LT_EOF esac case $lt_shell_append in yes) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$1+=\$2" } _LT_EOF ;; *) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$1=\$$1\$2" } _LT_EOF ;; esac sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ;; "default-1":C) case "$CONFIG_FILES" in *po/Makefile.in*) sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile esac ;; "po/stamp-it":C) if ! grep "^# INTLTOOL_MAKEFILE$" "po/Makefile.in" > /dev/null ; then as_fn_error "po/Makefile.in.in was not created by intltoolize." "$LINENO" 5 fi rm -f "po/stamp-it" "po/stamp-it.tmp" "po/POTFILES" "po/Makefile.tmp" >"po/stamp-it.tmp" sed '/^#/d s/^[[].*] *// /^[ ]*$/d '"s|^| $ac_top_srcdir/|" \ "$srcdir/po/POTFILES.in" | sed '$!s/$/ \\/' >"po/POTFILES" sed '/^POTFILES =/,/[^\\]$/ { /^POTFILES =/!d r po/POTFILES } ' "po/Makefile.in" >"po/Makefile" rm -f "po/Makefile.tmp" mv "po/stamp-it.tmp" "po/stamp-it" ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit $? fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi pidgin-otr-4.0.0/otr-plugin.c0000644000175000017500000013117712020421670012760 00000000000000/* * Off-the-Record Messaging plugin for pidgin * Copyright (C) 2004-2012 Ian Goldberg, Rob Smits, * Chris Alexander, Willy Lew, * Lisa Du, Nikita Borisov * * * This program is free software; you can redistribute it and/or modify * it under the terms of version 2 of the GNU General Public License as * published by the Free Software Foundation. * * 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 */ /* config.h */ #ifdef HAVE_CONFIG_H #include "config.h" #endif /* system headers */ #include #include #include /* libgcrypt headers */ #include /* purple headers */ #include "pidgin.h" #include "notify.h" #include "version.h" #include "util.h" #include "debug.h" #include "core.h" #ifdef USING_GTK /* purple GTK headers */ #include "gtkplugin.h" #endif #ifdef ENABLE_NLS #ifdef WIN32 /* On Win32, include win32dep.h from pidgin for correct definition * of LOCALEDIR */ #include "win32dep.h" #endif /* WIN32 */ /* internationalisation header */ #include #endif /* ENABLE_NLS */ /* libotr headers */ #include #include #include #include #include #include /* purple-otr headers */ #include "ui.h" #include "dialogs.h" #include "otr-plugin.h" #ifdef USING_GTK /* purple-otr GTK headers */ #include #include "gtk-ui.h" #include "gtk-dialog.h" /* Controls a beta warning/expiry dialog */ #define BETA_DIALOG 0 #if BETA_DIALOG && defined USING_GTK /* Only for beta */ #include "gtkblist.h" #endif #endif /* If we're using glib on Windows, we need to use g_fopen to open files. * On other platforms, it's also safe to use it. If we're not using * glib, just use fopen. */ #ifdef USING_GTK /* If we're cross-compiling, this might be wrong, so fix it. */ #ifdef WIN32 #undef G_OS_UNIX #define G_OS_WIN32 #endif #include #else #define g_fopen fopen #endif PurplePlugin *otrg_plugin_handle; /* We'll only use the one OtrlUserState. */ OtrlUserState otrg_plugin_userstate = NULL; /* GLib HashTable for storing the maximum message size for various * protocols. */ GHashTable* mms_table = NULL; /* Send an IM from the given account to the given recipient. Display an * error dialog if that account isn't currently logged in. */ void otrg_plugin_inject_message(PurpleAccount *account, const char *recipient, const char *message) { PurpleConnection *connection; connection = purple_account_get_connection(account); if (!connection) { const char *protocol = purple_account_get_protocol_id(account); const char *accountname = purple_account_get_username(account); PurplePlugin *p = purple_find_prpl(protocol); char *msg = g_strdup_printf(_("You are not currently connected to " "account %s (%s)."), accountname, (p && p->info->name) ? p->info->name : _("Unknown")); otrg_dialog_notify_error(accountname, protocol, recipient, _("Not connected"), msg, NULL); g_free(msg); return; } serv_send_im(connection, recipient, message, 0); } /* Display a notification message for a particular accountname / * protocol / username conversation. */ static void notify(void *opdata, OtrlNotifyLevel level, const char *accountname, const char *protocol, const char *username, const char *title, const char *primary, const char *secondary) { PurpleNotifyMsgType purplelevel = PURPLE_NOTIFY_MSG_ERROR; switch (level) { case OTRL_NOTIFY_ERROR: purplelevel = PURPLE_NOTIFY_MSG_ERROR; break; case OTRL_NOTIFY_WARNING: purplelevel = PURPLE_NOTIFY_MSG_WARNING; break; case OTRL_NOTIFY_INFO: purplelevel = PURPLE_NOTIFY_MSG_INFO; break; } otrg_dialog_notify_message(purplelevel, accountname, protocol, username, title, primary, secondary); } /* Display an OTR control message for a particular accountname / * protocol / username conversation. If force_create is non-zero and * if the corresponding conversation window is not present, a new * conversation window will be created and the message will be displayed * there. If the message cannot be displayed, try notify() instead and * return 1. Otherwise return 0 if message is successfully displayed. */ static int display_otr_message_or_notify(void *opdata, const char *accountname, const char *protocol, const char *username, const char *msg, int force_create, OtrlNotifyLevel level, const char *title, const char *primary, const char *secondary) { if (otrg_dialog_display_otr_message(accountname, protocol, username, msg, force_create)) { notify(opdata, level, accountname, protocol, username, title, primary, secondary); return 1; } else return 0; } static void log_message(void *opdata, const char *message) { purple_debug_info("otr", "%s", message); } static OtrlPolicy policy_cb(void *opdata, ConnContext *context) { PurpleAccount *account; OtrlPolicy policy = OTRL_POLICY_DEFAULT; OtrgUiPrefs prefs; if (!context) return policy; account = purple_accounts_find(context->accountname, context->protocol); if (!account) return policy; otrg_ui_get_prefs(&prefs, account, context->username); return prefs.policy; } /* Generate a private key for the given accountname/protocol */ void otrg_plugin_create_privkey(const char *accountname, const char *protocol) { OtrgDialogWaitHandle waithandle; #ifndef WIN32 mode_t mask; #endif /* WIN32 */ FILE *privf; gchar *privkeyfile = g_build_filename(purple_user_dir(), PRIVKEYFNAME, NULL); if (!privkeyfile) { fprintf(stderr, _("Out of memory building filenames!\n")); return; } #ifndef WIN32 mask = umask (0077); #endif /* WIN32 */ privf = g_fopen(privkeyfile, "w+b"); #ifndef WIN32 umask (mask); #endif /* WIN32 */ g_free(privkeyfile); if (!privf) { fprintf(stderr, _("Could not write private key file\n")); return; } waithandle = otrg_dialog_private_key_wait_start(accountname, protocol); /* Generate the key */ otrl_privkey_generate_FILEp(otrg_plugin_userstate, privf, accountname, protocol); fclose(privf); otrg_ui_update_fingerprint(); /* Mark the dialog as done. */ otrg_dialog_private_key_wait_done(waithandle); } static void create_privkey_cb(void *opdata, const char *accountname, const char *protocol) { otrg_plugin_create_privkey(accountname, protocol); } /* Generate a instance tag for the given accountname/protocol */ void otrg_plugin_create_instag(const char *accountname, const char *protocol) { FILE *instagf; gchar *instagfile = g_build_filename(purple_user_dir(), INSTAGFNAME, NULL); if (!instagfile) { fprintf(stderr, _("Out of memory building filenames!\n")); return; } instagf = g_fopen(instagfile, "w+b"); g_free(instagfile); if (!instagf) { fprintf(stderr, _("Could not write private key file\n")); return; } /* Generate the instag */ otrl_instag_generate_FILEp(otrg_plugin_userstate, instagf, accountname, protocol); fclose(instagf); } static void create_instag_cb(void *opdata, const char *accountname, const char *protocol) { otrg_plugin_create_instag(accountname, protocol); } static int is_logged_in_cb(void *opdata, const char *accountname, const char *protocol, const char *recipient) { PurpleAccount *account; PurpleBuddy *buddy; account = purple_accounts_find(accountname, protocol); if (!account) return -1; buddy = purple_find_buddy(account, recipient); if (!buddy) return -1; return (PURPLE_BUDDY_IS_ONLINE(buddy)); } static void inject_message_cb(void *opdata, const char *accountname, const char *protocol, const char *recipient, const char *message) { PurpleAccount *account = purple_accounts_find(accountname, protocol); if (!account) { PurplePlugin *p = purple_find_prpl(protocol); char *msg = g_strdup_printf(_("Unknown account %s (%s)."), accountname, (p && p->info->name) ? p->info->name : _("Unknown")); otrg_dialog_notify_error(accountname, protocol, recipient, _("Unknown account"), msg, NULL); g_free(msg); return; } otrg_plugin_inject_message(account, recipient, message); } static void update_context_list_cb(void *opdata) { otrg_ui_update_keylist(); } static void confirm_fingerprint_cb(void *opdata, OtrlUserState us, const char *accountname, const char *protocol, const char *username, unsigned char fingerprint[20]) { otrg_dialog_unknown_fingerprint(us, accountname, protocol, username, fingerprint); } static void write_fingerprints_cb(void *opdata) { otrg_plugin_write_fingerprints(); otrg_ui_update_keylist(); otrg_dialog_resensitize_all(); } static void gone_secure_cb(void *opdata, ConnContext *context) { otrg_dialog_connected(context); } static void gone_insecure_cb(void *opdata, ConnContext *context) { otrg_dialog_disconnected(context); } static void still_secure_cb(void *opdata, ConnContext *context, int is_reply) { if (is_reply == 0) { otrg_dialog_stillconnected(context); } } static int max_message_size_cb(void *opdata, ConnContext *context) { void* lookup_result = g_hash_table_lookup(mms_table, context->protocol); if (!lookup_result) return 0; else return *((int*)lookup_result); } static const char* otr_error_message_cb(void *opdata, ConnContext *context, OtrlErrorCode err_code) { char *err_msg = NULL; switch (err_code) { case OTRL_ERRCODE_NONE : break; case OTRL_ERRCODE_ENCRYPTION_ERROR : err_msg = g_strdup(_("Error occurred encrypting message.")); break; case OTRL_ERRCODE_MSG_NOT_IN_PRIVATE : if (context) { err_msg = g_strdup_printf(_("You sent encrypted data to %s, who" " wasn't expecting it."), context->accountname); } break; case OTRL_ERRCODE_MSG_UNREADABLE : err_msg = g_strdup(_("You transmitted an unreadable encrypted message.")); break; case OTRL_ERRCODE_MSG_MALFORMED : err_msg = g_strdup(_("You transmitted a malformed data message.")); break; } return err_msg; } static void otr_error_message_free_cb(void *opdata, const char *err_msg) { if (err_msg) g_free((char*)err_msg); } static const char *resent_msg_prefix_cb(void *opdata, ConnContext *context) { return g_strdup(_("[resent]")); } static void resent_msg_prefix_free_cb(void *opdata, const char *prefix) { if (prefix) g_free((char*)prefix); } static void handle_smp_event_cb(void *opdata, OtrlSMPEvent smp_event, ConnContext *context, unsigned short progress_percent, char *question) { if (!context) return; switch (smp_event) { case OTRL_SMPEVENT_NONE : break; case OTRL_SMPEVENT_ASK_FOR_SECRET : otrg_dialog_socialist_millionaires(context); break; case OTRL_SMPEVENT_ASK_FOR_ANSWER : otrg_dialog_socialist_millionaires_q(context, question); break; case OTRL_SMPEVENT_CHEATED : otrg_plugin_abort_smp(context); /* FALLTHROUGH */ case OTRL_SMPEVENT_IN_PROGRESS : case OTRL_SMPEVENT_SUCCESS : case OTRL_SMPEVENT_FAILURE : case OTRL_SMPEVENT_ABORT : otrg_dialog_update_smp(context, smp_event, ((gdouble)progress_percent)/100.0); break; case OTRL_SMPEVENT_ERROR : otrg_plugin_abort_smp(context); break; } } /* Treat this event like other incoming messages. This allows message * notification events to get properly triggered. */ static void emit_msg_received(ConnContext *context, const char* message) { PurpleConversation *conv = otrg_plugin_userinfo_to_conv( context->accountname, context->protocol, context->username, 1); PurpleMessageFlags flags = PURPLE_MESSAGE_RECV | PURPLE_MESSAGE_SYSTEM | PURPLE_MESSAGE_NOTIFY; PurpleAccount * account = purple_conversation_get_account(conv); purple_signal_emit(purple_conversations_get_handle(), "received-im-msg", account, context->username, message, conv, flags); } static void handle_msg_event_cb(void *opdata, OtrlMessageEvent msg_event, ConnContext *context, const char* message, gcry_error_t err) { PurpleConversation *conv = NULL; gchar *buf; OtrlMessageEvent * last_msg_event; if (!context) return; conv = otrg_plugin_context_to_conv(context, 1); last_msg_event = g_hash_table_lookup(conv->data, "otr-last_msg_event"); switch (msg_event) { case OTRL_MSGEVENT_NONE: break; case OTRL_MSGEVENT_ENCRYPTION_REQUIRED: buf = g_strdup_printf(_("You attempted to send an " "unencrypted message to %s"), context->username); display_otr_message_or_notify(opdata, context->accountname, context->protocol, context->username, _("Attempting to" " start a private conversation..."), 1, OTRL_NOTIFY_WARNING, _("OTR Policy Violation"), buf, _("Unencrypted messages to this recipient are " "not allowed. Attempting to start a private " "conversation.\n\nYour message will be " "retransmitted when the private conversation " "starts.")); g_free(buf); break; case OTRL_MSGEVENT_ENCRYPTION_ERROR: display_otr_message_or_notify(opdata, context->accountname, context->protocol, context->username, _("An error occurred " "when encrypting your message. The message was not sent."), 1, OTRL_NOTIFY_ERROR, _("Error encrypting message"), _("An error occurred when encrypting your message"), _("The message was not sent.")); break; case OTRL_MSGEVENT_CONNECTION_ENDED: buf = g_strdup_printf(_("%s has already closed his/her private " "connection to you"), context->username); display_otr_message_or_notify(opdata, context->accountname, context->protocol, context->username, _("Your message " "was not sent. Either end your private conversation, " "or restart it."), 1, OTRL_NOTIFY_ERROR, _("Private connection closed"), buf, _("Your message was not sent. Either close your " "private connection to him, or refresh it.")); g_free(buf); break; case OTRL_MSGEVENT_SETUP_ERROR: if (!err) { err = GPG_ERR_INV_VALUE; } switch(gcry_err_code(err)) { case GPG_ERR_INV_VALUE: buf = g_strdup(_("Error setting up private " "conversation: Malformed message received")); break; default: buf = g_strdup_printf(_("Error setting up private " "conversation: %s"), gcry_strerror(err)); break; } display_otr_message_or_notify(opdata, context->accountname, context->protocol, context->username, buf, 1, OTRL_NOTIFY_ERROR, _("OTR Error"), buf, NULL); g_free(buf); break; case OTRL_MSGEVENT_MSG_REFLECTED: display_otr_message_or_notify(opdata, context->accountname, context->protocol, context->username, _("We are receiving our own OTR messages. " "You are either trying to talk to yourself, " "or someone is reflecting your messages back " "at you."), 1, OTRL_NOTIFY_ERROR, _("OTR Error"), _("We are receiving our own OTR messages."), _("You are either trying to talk to yourself, " "or someone is reflecting your messages back " "at you.")); break; case OTRL_MSGEVENT_MSG_RESENT: buf = g_strdup_printf(_("The last message to %s was resent." ""), context->username); display_otr_message_or_notify(opdata, context->accountname, context->protocol, context->username, buf, 1, OTRL_NOTIFY_INFO, _("Message resent"), buf, NULL); g_free(buf); break; case OTRL_MSGEVENT_RCVDMSG_NOT_IN_PRIVATE: buf = g_strdup_printf(_("The encrypted message received from " "%s is unreadable, as you are not currently communicating " "privately."), context->username); display_otr_message_or_notify(opdata, context->accountname, context->protocol, context->username, buf, 1, OTRL_NOTIFY_INFO, _("Unreadable message"), buf, NULL); g_free(buf); break; case OTRL_MSGEVENT_RCVDMSG_UNREADABLE: buf = g_strdup_printf(_("We received an unreadable " "encrypted message from %s."), context->username); display_otr_message_or_notify(opdata, context->accountname, context->protocol, context->username, buf, 1, OTRL_NOTIFY_ERROR, _("OTR Error"), buf, NULL); g_free(buf); break; case OTRL_MSGEVENT_RCVDMSG_MALFORMED: buf = g_strdup_printf(_("We received a malformed data " "message from %s."), context->username); display_otr_message_or_notify(opdata, context->accountname, context->protocol, context->username, buf, 1, OTRL_NOTIFY_ERROR, _("OTR Error"), buf, NULL); g_free(buf); break; case OTRL_MSGEVENT_LOG_HEARTBEAT_RCVD: buf = g_strdup_printf(_("Heartbeat received from %s.\n"), context->username); log_message(opdata, buf); g_free(buf); break; case OTRL_MSGEVENT_LOG_HEARTBEAT_SENT: buf = g_strdup_printf(_("Heartbeat sent to %s.\n"), context->username); log_message(opdata, buf); g_free(buf); break; case OTRL_MSGEVENT_RCVDMSG_GENERAL_ERR: display_otr_message_or_notify(opdata, context->accountname, context->protocol, context->username, message, 1, OTRL_NOTIFY_ERROR, _("OTR Error"), message, NULL); break; case OTRL_MSGEVENT_RCVDMSG_UNENCRYPTED: buf = g_strdup_printf(_("The following message received " "from %s was not encrypted: [%s]"), context->username, message); display_otr_message_or_notify(opdata, context->accountname, context->protocol, context->username, buf, 1, OTRL_NOTIFY_INFO, _("Received unencrypted message"), buf, NULL); emit_msg_received(context, buf); g_free(buf); break; case OTRL_MSGEVENT_RCVDMSG_UNRECOGNIZED: buf = g_strdup_printf(_("Unrecognized OTR message received " "from %s.\n"), context->username); log_message(opdata, buf); g_free(buf); break; case OTRL_MSGEVENT_RCVDMSG_FOR_OTHER_INSTANCE: if (*last_msg_event == msg_event) { break; } buf = g_strdup_printf(_("%s has sent a message intended for a " "different session. If you are logged in multiple times, " "another session may have received the message."), context->username); display_otr_message_or_notify(opdata, context->accountname, context->protocol, context->username, buf, 1, OTRL_NOTIFY_INFO, _("Received message for a different " "session"), buf, NULL); g_free(buf); break; } *last_msg_event = msg_event; } #ifdef DUMP_RECEIVED_SYMKEY static void dump_data(const unsigned char *d, size_t l) { size_t i; for (i=0;i 0, start it * to periodically fire every interval seconds. */ static void stop_start_timer(unsigned int interval) { if (otrg_plugin_timerid) { g_source_remove(otrg_plugin_timerid); otrg_plugin_timerid = 0; } if (interval > 0) { otrg_plugin_timerid = g_timeout_add_seconds(interval, timer_fired_cb, NULL); } } /* Called by libotr */ static void timer_control_cb(void *opdata, unsigned int interval) { stop_start_timer(interval); } static OtrlMessageAppOps ui_ops = { policy_cb, create_privkey_cb, is_logged_in_cb, inject_message_cb, update_context_list_cb, confirm_fingerprint_cb, write_fingerprints_cb, gone_secure_cb, gone_insecure_cb, still_secure_cb, max_message_size_cb, NULL, /* account_name */ NULL, /* account_name_free */ #ifdef DUMP_RECEIVED_SYMKEY received_symkey_cb, #else NULL, /* received_symkey */ #endif otr_error_message_cb, otr_error_message_free_cb, resent_msg_prefix_cb, resent_msg_prefix_free_cb, handle_smp_event_cb, handle_msg_event_cb, create_instag_cb, NULL, /* convert_data */ NULL, /* convert_data_free */ timer_control_cb }; /* Called by the glib main loop, as set up by stop_start_timer */ static gboolean timer_fired_cb(gpointer data) { otrl_message_poll(otrg_plugin_userstate, &ui_ops, NULL); return TRUE; } static void process_sending_im(PurpleAccount *account, char *who, char **message, void *m) { char *newmessage = NULL; const char *accountname = purple_account_get_username(account); const char *protocol = purple_account_get_protocol_id(account); char *username; gcry_error_t err; PurpleConversation * conv = NULL; otrl_instag_t instance; if (!who || !message || !*message) return; username = strdup(purple_normalize(account, who)); conv = otrg_plugin_userinfo_to_conv(accountname, protocol, username, 1); instance = otrg_plugin_conv_to_selected_instag(conv, OTRL_INSTAG_BEST); err = otrl_message_sending(otrg_plugin_userstate, &ui_ops, NULL, accountname, protocol, username, instance, *message, NULL, &newmessage, OTRL_FRAGMENT_SEND_ALL_BUT_LAST, NULL, NULL, NULL); if (err) { /* Do not send out plain text */ char *ourm = strdup(""); free(*message); *message = ourm; } else if (newmessage) { *message = strdup(newmessage); } otrl_message_free(newmessage); free(username); } /* Abort the SMP protocol. Used when malformed or unexpected messages * are received. */ void otrg_plugin_abort_smp(ConnContext *context) { otrl_message_abort_smp(otrg_plugin_userstate, &ui_ops, NULL, context); } /* Start the Socialist Millionaires' Protocol over the current connection, * using the given initial secret, and optionally a question to pass to * the buddy. */ void otrg_plugin_start_smp(ConnContext *context, const char *question, const unsigned char *secret, size_t secretlen) { otrl_message_initiate_smp_q(otrg_plugin_userstate, &ui_ops, NULL, context, question, secret, secretlen); } /* Continue the Socialist Millionaires' Protocol over the current connection, * using the given initial secret (ie finish step 2). */ void otrg_plugin_continue_smp(ConnContext *context, const unsigned char *secret, size_t secretlen) { otrl_message_respond_smp(otrg_plugin_userstate, &ui_ops, NULL, context, secret, secretlen); } /* Send the default OTR Query message to the correspondent of the given * context, from the given account. [account is actually a * PurpleAccount*, but it's declared here as void* so this can be passed * as a callback.] */ void otrg_plugin_send_default_query(ConnContext *context, void *vaccount) { PurpleAccount *account = vaccount; char *msg; OtrgUiPrefs prefs; otrg_ui_get_prefs(&prefs, account, context->username); msg = otrl_proto_default_query_msg(context->accountname, prefs.policy); otrg_plugin_inject_message(account, context->username, msg ? msg : "?OTRv23?"); free(msg); } /* Send the default OTR Query message to the correspondent of the given * conversation. */ void otrg_plugin_send_default_query_conv(PurpleConversation *conv) { PurpleAccount *account; const char *username, *accountname; char *msg; OtrgUiPrefs prefs; account = purple_conversation_get_account(conv); accountname = purple_account_get_username(account); username = purple_conversation_get_name(conv); otrg_ui_get_prefs(&prefs, account, username); msg = otrl_proto_default_query_msg(accountname, prefs.policy); otrg_plugin_inject_message(account, username, msg ? msg : "?OTRv23?"); free(msg); } static gboolean process_receiving_im(PurpleAccount *account, char **who, char **message, int *flags, void *m) { char *newmessage = NULL; OtrlTLV *tlvs = NULL; OtrlTLV *tlv = NULL; char *username; gboolean res; const char *accountname; const char *protocol; if (!who || !*who || !message || !*message) return 0; username = strdup(purple_normalize(account, *who)); accountname = purple_account_get_username(account); protocol = purple_account_get_protocol_id(account); res = otrl_message_receiving(otrg_plugin_userstate, &ui_ops, NULL, accountname, protocol, username, *message, &newmessage, &tlvs, NULL, NULL, NULL); if (newmessage) { char *ourm = strdup(newmessage); otrl_message_free(newmessage); free(*message); *message = ourm; } tlv = otrl_tlv_find(tlvs, OTRL_TLV_DISCONNECTED); if (tlv) { /* Notify the user that the other side disconnected. */ otrg_dialog_finished(accountname, protocol, username); otrg_ui_update_keylist(); } otrl_tlv_free(tlvs); free(username); /* If we're supposed to ignore this incoming message (because it's a * protocol message), set it to NULL, so that other plugins that * catch receiving-im-msg don't return 0, and cause it to be * displayed anyway. */ if (res) { free(*message); *message = NULL; } return res; } /* Find the ConnContext appropriate to a given PurpleConversation. */ ConnContext *otrg_plugin_conv_to_context(PurpleConversation *conv, otrl_instag_t their_instance, int force_create) { PurpleAccount *account; char *username; const char *accountname, *proto; ConnContext *context; if (!conv) return NULL; account = purple_conversation_get_account(conv); accountname = purple_account_get_username(account); proto = purple_account_get_protocol_id(account); username = g_strdup( purple_normalize(account, purple_conversation_get_name(conv))); context = otrl_context_find(otrg_plugin_userstate, username, accountname, proto, their_instance, force_create, NULL, NULL, NULL); g_free(username); return context; } /* Given a PurpleConversation, return the selected instag */ otrl_instag_t otrg_plugin_conv_to_selected_instag(PurpleConversation *conv, otrl_instag_t default_val) { otrl_instag_t *selected_instance; if (!conv || !conv->data) { return default_val; } selected_instance = purple_conversation_get_data(conv, "otr-ui_selected_ctx"); if (!selected_instance) { return default_val; } return *selected_instance; } /* Given a PurpleConversation, return the selected ConnContext */ ConnContext* otrg_plugin_conv_to_selected_context(PurpleConversation *conv, int force_create) { otrl_instag_t selected_instance; selected_instance = otrg_plugin_conv_to_selected_instag(conv, OTRL_INSTAG_BEST); return otrg_plugin_conv_to_context(conv, selected_instance, force_create); } static void process_conv_create(PurpleConversation *conv) { otrl_instag_t * selected_instance; OtrlMessageEvent * msg_event; if (!conv) return; /* If this malloc fails (or the other below), trouble will be * unavoidable. */ selected_instance = g_malloc(sizeof(otrl_instag_t)); *selected_instance = OTRL_INSTAG_BEST; purple_conversation_set_data(conv, "otr-ui_selected_ctx", (gpointer)selected_instance); msg_event = g_malloc(sizeof(OtrlMessageEvent)); *msg_event = OTRL_MSGEVENT_NONE; purple_conversation_set_data(conv, "otr-last_msg_event", (gpointer)msg_event); otrg_dialog_new_conv(conv); } /* Wrapper around process_conv_create for callback purposes */ static void process_conv_create_cb(PurpleConversation *conv, void *data) { process_conv_create(conv); } static void process_conv_updated(PurpleConversation *conv, PurpleConvUpdateType type, void *data) { /* See if someone's trying to turn logging on for this conversation, * and we don't want them to. */ if (type == PURPLE_CONV_UPDATE_LOGGING) { ConnContext *context; OtrgUiPrefs prefs; PurpleAccount *account = purple_conversation_get_account(conv); otrg_ui_get_prefs(&prefs, account, purple_conversation_get_name(conv)); context = otrg_plugin_conv_to_selected_context(conv, 0); if (context && prefs.avoid_logging_otr && context->msgstate == OTRL_MSGSTATE_ENCRYPTED && conv->logging == TRUE) { purple_conversation_set_logging(conv, FALSE); } } } static void process_conv_destroyed(PurpleConversation *conv) { otrl_instag_t * selected_instance = purple_conversation_get_data(conv, "otr-ui_selected_ctx"); OtrlMessageEvent * msg_event = purple_conversation_get_data(conv, "otr-last_msg_event"); if (selected_instance) { g_free(selected_instance); } if (msg_event) { g_free(msg_event); } g_hash_table_remove(conv->data, "otr-ui_selected_ctx"); g_hash_table_remove(conv->data, "otr-last_msg_event"); } static void process_connection_change(PurpleConnection *conn, void *data) { /* If we log in or out of a connection, make sure all of the OTR * buttons are in the appropriate sensitive/insensitive state. */ otrg_dialog_resensitize_all(); } static void otr_options_cb(PurpleBlistNode *node, gpointer user_data) { /* We've already checked PURPLE_BLIST_NODE_IS_BUDDY(node) */ PurpleBuddy *buddy = (PurpleBuddy *)node; /* Modify the settings for this buddy */ otrg_ui_config_buddy(buddy); } static void supply_extended_menu(PurpleBlistNode *node, GList **menu) { PurpleMenuAction *act; PurpleBuddy *buddy; PurpleAccount *acct; const char *proto; if (!PURPLE_BLIST_NODE_IS_BUDDY(node)) return; /* Extract the account, and then the protocol, for this buddy */ buddy = (PurpleBuddy *)node; acct = buddy->account; if (acct == NULL) return; proto = purple_account_get_protocol_id(acct); if (!otrg_plugin_proto_supports_otr(proto)) return; act = purple_menu_action_new(_("OTR Settings"), (PurpleCallback)otr_options_cb, NULL, NULL); *menu = g_list_append(*menu, act); } /* Disconnect all context instances, sending a notice to the other side, if * appropriate. */ void otrg_plugin_disconnect_all_instances(ConnContext *context) { otrl_message_disconnect_all_instances(otrg_plugin_userstate, &ui_ops, NULL, context->accountname, context->protocol, context->username); } /* Disconnect a context, sending a notice to the other side, if * appropriate. */ void otrg_plugin_disconnect(ConnContext *context) { otrl_message_disconnect(otrg_plugin_userstate, &ui_ops, NULL, context->accountname, context->protocol, context->username, context->their_instance); } /* Write the fingerprints to disk. */ void otrg_plugin_write_fingerprints(void) { #ifndef WIN32 mode_t mask; #endif /* WIN32 */ FILE *storef; gchar *storefile = g_build_filename(purple_user_dir(), STOREFNAME, NULL); #ifndef WIN32 mask = umask (0077); #endif /* WIN32 */ storef = g_fopen(storefile, "wb"); #ifndef WIN32 umask (mask); #endif /* WIN32 */ g_free(storefile); if (!storef) return; otrl_privkey_write_fingerprints_FILEp(otrg_plugin_userstate, storef); fclose(storef); } /* Find the PurpleConversation appropriate to the given userinfo. If * one doesn't yet exist, create it if force_create is true. */ PurpleConversation *otrg_plugin_userinfo_to_conv(const char *accountname, const char *protocol, const char *username, int force_create) { PurpleAccount *account; PurpleConversation *conv; account = purple_accounts_find(accountname, protocol); if (account == NULL) return NULL; conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, username, account); if (conv == NULL && force_create) { conv = purple_conversation_new(PURPLE_CONV_TYPE_IM, account, username); } return conv; } /* Find the PurpleConversation appropriate to the given ConnContext. If * one doesn't yet exist, create it if force_create is true. */ PurpleConversation *otrg_plugin_context_to_conv(ConnContext *context, int force_create) { return otrg_plugin_userinfo_to_conv(context->accountname, context->protocol, context->username, force_create); } /* What level of trust do we have in the privacy of this ConnContext? */ TrustLevel otrg_plugin_context_to_trust(ConnContext *context) { TrustLevel level = TRUST_NOT_PRIVATE; if (context && context->msgstate == OTRL_MSGSTATE_ENCRYPTED) { if (context->active_fingerprint && context->active_fingerprint->trust && context->active_fingerprint->trust[0] != '\0') { level = TRUST_PRIVATE; } else { level = TRUST_UNVERIFIED; } } else if (context && context->msgstate == OTRL_MSGSTATE_FINISHED) { level = TRUST_FINISHED; } return level; } /* Send the OTRL_TLV_DISCONNECTED packets when we're about to quit. */ static void process_quitting(void) { ConnContext *context = otrg_plugin_userstate->context_root; while(context) { ConnContext *next = context->next; if (context->msgstate == OTRL_MSGSTATE_ENCRYPTED && context->protocol_version > 1) { otrg_plugin_disconnect(context); } context = next; } } /* Read the maxmsgsizes from a FILE* into the given GHashTable. * The FILE* must be open for reading. */ static void mms_read_FILEp(FILE *mmsf, GHashTable *ght) { char storeline[50]; size_t maxsize = sizeof(storeline); if (!mmsf) return; while(fgets(storeline, maxsize, mmsf)) { char *protocol; char *prot_in_table; char *mms; int *mms_in_table; char *tab; char *eol; /* Parse the line, which should be of the form: * protocol\tmaxmsgsize\n */ protocol = storeline; tab = strchr(protocol, '\t'); if (!tab) continue; *tab = '\0'; mms = tab + 1; tab = strchr(mms, '\t'); if (tab) continue; eol = strchr(mms, '\r'); if (!eol) eol = strchr(mms, '\n'); if (!eol) continue; *eol = '\0'; prot_in_table = strdup(protocol); mms_in_table = malloc(sizeof(int)); *mms_in_table = atoi(mms); g_hash_table_insert(ght, prot_in_table, mms_in_table); } } static void otrg_str_free(gpointer data) { g_free((char*)data); } static void otrg_int_free(gpointer data) { g_free((int*)data); } static void otrg_init_mms_table() { /* Hardcoded defaults for maximum message sizes for various * protocols. These can be overridden in the user's MAXMSGSIZEFNAME * file. */ static const struct s_OtrgIdProtPair { char *protid; int maxmsgsize; } mmsPairs[8] = {{"prpl-msn", 1409}, {"prpl-icq", 2346}, {"prpl-aim", 2343}, {"prpl-yahoo", 799}, {"prpl-gg", 1999}, {"prpl-irc", 417}, {"prpl-oscar", 2343}, {NULL, 0}}; int i = 0; gchar *maxmsgsizefile; FILE *mmsf; mms_table = g_hash_table_new_full(g_str_hash, g_str_equal, otrg_str_free, otrg_int_free); for (i=0; mmsPairs[i].protid != NULL; i++) { char* nextprot = g_strdup(mmsPairs[i].protid); int* nextsize = g_malloc(sizeof(int)); *nextsize = mmsPairs[i].maxmsgsize; g_hash_table_insert(mms_table, nextprot, nextsize); } maxmsgsizefile = g_build_filename(purple_user_dir(), MAXMSGSIZEFNAME, NULL); if (maxmsgsizefile) { mmsf = g_fopen(maxmsgsizefile, "rt"); /* Actually read the file here */ if (mmsf) { mms_read_FILEp(mmsf, mms_table); fclose(mmsf); } g_free(maxmsgsizefile); } } static void otrg_free_mms_table() { g_hash_table_destroy(mms_table); mms_table = NULL; } static gboolean otr_plugin_load(PurplePlugin *handle) { gchar *privkeyfile = g_build_filename(purple_user_dir(), PRIVKEYFNAME, NULL); gchar *storefile = g_build_filename(purple_user_dir(), STOREFNAME, NULL); gchar *instagfile = g_build_filename(purple_user_dir(), INSTAGFNAME, NULL); void *conv_handle = purple_conversations_get_handle(); void *conn_handle = purple_connections_get_handle(); void *blist_handle = purple_blist_get_handle(); void *core_handle = purple_get_core(); FILE *privf; FILE *storef; FILE *instagf; #if BETA_DIALOG && defined USING_GTK /* Only for beta */ GtkWidget *dialog; GtkWidget *dialog_text; PidginBuddyList *blist; gchar * buf = NULL; #endif if (!privkeyfile || !storefile || !instagfile) { g_free(privkeyfile); g_free(storefile); g_free(instagfile); return 0; } #if BETA_DIALOG && defined USING_GTK /* Only for beta */ blist = pidgin_blist_get_default_gtk_blist(); if (time(NULL) > 1356998400) /* 2013-01-01 */ { buf = g_strdup_printf(_("OTR PLUGIN v%s"), PIDGIN_OTR_VERSION); dialog = gtk_dialog_new_with_buttons (buf, GTK_WINDOW(blist->window), GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, NULL); dialog_text = gtk_label_new(NULL); gtk_widget_set_size_request(dialog_text, 350, 100); gtk_label_set_line_wrap(GTK_LABEL(dialog_text), TRUE); g_free(buf); buf = g_strdup_printf(_("This beta copy of the " "Off-the-Record Messaging v%s Pidgin plugin has expired as of " "2013-01-01. Please look for an updated release at " "http://otr.cypherpunks.ca/"), PIDGIN_OTR_VERSION); gtk_label_set_text(GTK_LABEL(dialog_text), buf); gtk_widget_show(dialog_text); gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), dialog_text, TRUE, TRUE, 0); gtk_dialog_run(GTK_DIALOG(dialog)); gtk_widget_destroy(dialog); g_free(buf); g_free(privkeyfile); g_free(storefile); g_free(instagfile); return 0; } buf = g_strdup_printf(_("OTR PLUGIN v%s"), PIDGIN_OTR_VERSION); dialog = gtk_dialog_new_with_buttons (buf, GTK_WINDOW(blist->window), GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, NULL); dialog_text = gtk_label_new(NULL); gtk_widget_set_size_request(dialog_text, 350, 100); gtk_label_set_line_wrap(GTK_LABEL(dialog_text), TRUE); g_free(buf); buf = g_strdup_printf(_("You have enabled a beta " "version of the Off-the-Record Messaging v%s Pidgin plugin. " "This version is intended for testing purposes only and is not " "for general purpose use."), PIDGIN_OTR_VERSION); gtk_label_set_text(GTK_LABEL(dialog_text), buf); gtk_widget_show(dialog_text); gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), dialog_text, TRUE, TRUE, 0); gtk_dialog_run(GTK_DIALOG(dialog)); gtk_widget_destroy(dialog); g_free(buf); #endif privf = g_fopen(privkeyfile, "rb"); storef = g_fopen(storefile, "rb"); instagf = g_fopen(instagfile, "rb"); g_free(privkeyfile); g_free(storefile); g_free(instagfile); otrg_init_mms_table(); otrg_plugin_handle = handle; /* Make our OtrlUserState; we'll only use the one. */ otrg_plugin_userstate = otrl_userstate_create(); otrg_plugin_timerid = 0; otrl_privkey_read_FILEp(otrg_plugin_userstate, privf); otrl_privkey_read_fingerprints_FILEp(otrg_plugin_userstate, storef, NULL, NULL); otrl_instag_read_FILEp(otrg_plugin_userstate, instagf); if (privf) fclose(privf); if (storef) fclose(storef); if (instagf) fclose(instagf); otrg_ui_update_fingerprint(); purple_signal_connect(core_handle, "quitting", otrg_plugin_handle, PURPLE_CALLBACK(process_quitting), NULL); purple_signal_connect(conv_handle, "sending-im-msg", otrg_plugin_handle, PURPLE_CALLBACK(process_sending_im), NULL); purple_signal_connect(conv_handle, "receiving-im-msg", otrg_plugin_handle, PURPLE_CALLBACK(process_receiving_im), NULL); purple_signal_connect(conv_handle, "conversation-updated", otrg_plugin_handle, PURPLE_CALLBACK(process_conv_updated), NULL); purple_signal_connect(conv_handle, "conversation-created", otrg_plugin_handle, PURPLE_CALLBACK(process_conv_create_cb), NULL); purple_signal_connect(conv_handle, "deleting-conversation", otrg_plugin_handle, PURPLE_CALLBACK(process_conv_destroyed), NULL); purple_signal_connect(conn_handle, "signed-on", otrg_plugin_handle, PURPLE_CALLBACK(process_connection_change), NULL); purple_signal_connect(conn_handle, "signed-off", otrg_plugin_handle, PURPLE_CALLBACK(process_connection_change), NULL); purple_signal_connect(blist_handle, "blist-node-extended-menu", otrg_plugin_handle, PURPLE_CALLBACK(supply_extended_menu), NULL); otrg_ui_init(); otrg_dialog_init(); purple_conversation_foreach(process_conv_create); return 1; } static gboolean otr_plugin_unload(PurplePlugin *handle) { void *conv_handle = purple_conversations_get_handle(); void *conn_handle = purple_connections_get_handle(); void *blist_handle = purple_blist_get_handle(); void *core_handle = purple_get_core(); /* Clean up all of our state. */ purple_conversation_foreach(otrg_dialog_remove_conv); otrg_dialog_cleanup(); otrg_ui_cleanup(); purple_signal_disconnect(core_handle, "quitting", otrg_plugin_handle, PURPLE_CALLBACK(process_quitting)); purple_signal_disconnect(conv_handle, "sending-im-msg", otrg_plugin_handle, PURPLE_CALLBACK(process_sending_im)); purple_signal_disconnect(conv_handle, "receiving-im-msg", otrg_plugin_handle, PURPLE_CALLBACK(process_receiving_im)); purple_signal_disconnect(conv_handle, "conversation-updated", otrg_plugin_handle, PURPLE_CALLBACK(process_conv_updated)); purple_signal_disconnect(conv_handle, "conversation-created", otrg_plugin_handle, PURPLE_CALLBACK(process_conv_create_cb)); purple_signal_disconnect(conv_handle, "deleting-conversation", otrg_plugin_handle, PURPLE_CALLBACK(process_conv_destroyed)); purple_signal_disconnect(conn_handle, "signed-on", otrg_plugin_handle, PURPLE_CALLBACK(process_connection_change)); purple_signal_disconnect(conn_handle, "signed-off", otrg_plugin_handle, PURPLE_CALLBACK(process_connection_change)); purple_signal_disconnect(blist_handle, "blist-node-extended-menu", otrg_plugin_handle, PURPLE_CALLBACK(supply_extended_menu)); /* Stop the timer, if necessary */ stop_start_timer(0); otrl_userstate_free(otrg_plugin_userstate); otrg_plugin_userstate = NULL; otrg_free_mms_table(); return 1; } /* Return 1 if the given protocol supports OTR, 0 otherwise. */ int otrg_plugin_proto_supports_otr(const char *proto) { /* Right now, OTR should work on all protocols, possibly * with the help of fragmentation. */ return 1; } #ifdef USING_GTK static PidginPluginUiInfo ui_info = { otrg_gtk_ui_make_widget }; #define UI_INFO &ui_info #define PLUGIN_TYPE PIDGIN_PLUGIN_TYPE #else #define UI_INFO NULL #define PLUGIN_TYPE "" #endif static PurplePluginInfo info = { PURPLE_PLUGIN_MAGIC, /* Use the 2.0.x API */ 2, /* major version */ 0, /* minor version */ PURPLE_PLUGIN_STANDARD, /* type */ PLUGIN_TYPE, /* ui_requirement */ 0, /* flags */ NULL, /* dependencies */ PURPLE_PRIORITY_DEFAULT, /* priority */ "otr", /* id */ NULL, /* name */ PIDGIN_OTR_VERSION, /* version */ NULL, /* summary */ NULL, /* description */ /* author */ "Ian Goldberg, Rob Smits,\n" "\t\t\tChris Alexander, Willy Lew, Lisa Du,\n" "\t\t\tNikita Borisov ", "http://otr.cypherpunks.ca/", /* homepage */ otr_plugin_load, /* load */ otr_plugin_unload, /* unload */ NULL, /* destroy */ UI_INFO, /* ui_info */ NULL, /* extra_info */ NULL, /* prefs_info */ NULL /* actions */ }; static void __init_plugin(PurplePlugin *plugin) { /* Set up the UI ops */ #ifdef USING_GTK otrg_ui_set_ui_ops(otrg_gtk_ui_get_ui_ops()); otrg_dialog_set_ui_ops(otrg_gtk_dialog_get_ui_ops()); #endif #ifndef WIN32 /* Make key generation use /dev/urandom instead of /dev/random */ gcry_control(GCRYCTL_ENABLE_QUICK_RANDOM, 0); #endif /* Initialize the OTR library */ OTRL_INIT; #ifdef ENABLE_NLS bindtextdomain(GETTEXT_PACKAGE, LOCALEDIR); bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8"); #endif info.name = _("Off-the-Record Messaging"); info.summary = _("Provides private and secure conversations"); info.description = _("Preserves the privacy of IM communications " "by providing encryption, authentication, " "deniability, and perfect forward secrecy."); } PURPLE_INIT_PLUGIN(otr, __init_plugin, info) pidgin-otr-4.0.0/Makefile.in0000644000175000017500000007153712021370005012560 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = . DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/config.h.in \ $(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \ config.guess config.sub depcomp install-sh ltmain.sh missing ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(install_sh) -d CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) pidgin_otr_la_LIBADD = am_pidgin_otr_la_OBJECTS = otr-plugin.lo ui.lo dialogs.lo gtk-ui.lo \ gtk-dialog.lo tooltipmenu.lo pidgin_otr_la_OBJECTS = $(am_pidgin_otr_la_OBJECTS) pidgin_otr_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(pidgin_otr_la_LDFLAGS) $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(pidgin_otr_la_SOURCES) DIST_SOURCES = $(pidgin_otr_la_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir dist dist-all distcheck ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ { test ! -d "$(distdir)" \ || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -fr "$(distdir)"; }; } am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ EXTRA_CFLAGS = @EXTRA_CFLAGS@ EXTRA_LIBS = @EXTRA_LIBS@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@ LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@ LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@ LIBOBJS = @LIBOBJS@ LIBOTR_CFLAGS = @LIBOTR_CFLAGS@ LIBOTR_LIBS = @LIBOTR_LIBS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGFMT_OPTS = @MSGFMT_OPTS@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AM_CFLAGS = @LIBGCRYPT_CFLAGS@ @LIBOTR_CFLAGS@ @EXTRA_CFLAGS@ \ -DUSING_GTK -DPURPLE_PLUGINS \ -DPIDGIN_OTR_VERSION=\"@VERSION@\" \ -DLOCALEDIR=\"$(datadir)/locale\" SUBDIRS = po plugindir = ${libdir}/pidgin plugin_LTLIBRARIES = pidgin-otr.la pidgin_otr_la_SOURCES = otr-plugin.c ui.c dialogs.c gtk-ui.c gtk-dialog.c \ tooltipmenu.c pidgin_otr_la_LDFLAGS = -module -avoid-version @LIBGCRYPT_LIBS@ \ @LIBOTR_LIBS@ $(am__empty) EXTRA_DIST = dialogs.h gtk-dialog.h gtk-ui.h otr-plugin.h ui.h \ otr-icons.h tooltipmenu.h \ Makefile.mingw packaging/windows/pidgin-otr.nsi \ packaging/fedora/pidgin-otr.spec po/Makefile.mingw \ po/README intltool-extract.in intltool-merge.in \ intltool-update.in Makefile.static INSTALL.mingw DISTCLEANFILES = intltool-extract intltool-merge intltool-update all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: .SUFFIXES: .c .lo .o .obj am--refresh: @: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \ $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: $(am__configure_deps) $(am__cd) $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): $(am__aclocal_m4_deps) $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) $(am__aclocal_m4_deps): config.h: stamp-h1 @if test ! -f $@; then \ rm -f stamp-h1; \ $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \ else :; fi stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status config.h $(srcdir)/config.h.in: $(am__configure_deps) ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) rm -f stamp-h1 touch $@ distclean-hdr: -rm -f config.h stamp-h1 install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(plugindir)" || $(MKDIR_P) "$(DESTDIR)$(plugindir)" @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \ } uninstall-pluginLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(plugindir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(plugindir)/$$f"; \ done clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done pidgin-otr.la: $(pidgin_otr_la_OBJECTS) $(pidgin_otr_la_DEPENDENCIES) $(pidgin_otr_la_LINK) -rpath $(plugindir) $(pidgin_otr_la_OBJECTS) $(pidgin_otr_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dialogs.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtk-dialog.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtk-ui.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/otr-plugin.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tooltipmenu.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ui.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool config.lt # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(am__remove_distdir) test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done -test -n "$(am__skip_mode_fix)" \ || find "$(distdir)" -type d ! -perm -755 \ -exec chmod u+rwx,go+rx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r "$(distdir)" dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 $(am__remove_distdir) dist-lzma: distdir tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma $(am__remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz $(am__remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__remove_distdir) dist dist-all: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lzma*) \ lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir); chmod a+w $(distdir) mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ && cd "$$am__cwd" \ || exit 1 $(am__remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: @$(am__cd) '$(distuninstallcheck_dir)' \ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-recursive all-am: Makefile $(LTLIBRARIES) config.h installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(plugindir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool clean-pluginLTLIBRARIES \ mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-hdr distclean-libtool distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-pluginLTLIBRARIES install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \ ctags-recursive install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am am--refresh check check-am clean clean-generic \ clean-libtool clean-pluginLTLIBRARIES ctags ctags-recursive \ dist dist-all dist-bzip2 dist-gzip dist-lzma dist-shar \ dist-tarZ dist-xz dist-zip distcheck distclean \ distclean-compile distclean-generic distclean-hdr \ distclean-libtool distclean-tags distcleancheck distdir \ distuninstallcheck dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-pluginLTLIBRARIES \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-recursive uninstall uninstall-am \ uninstall-pluginLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: pidgin-otr-4.0.0/INSTALL.mingw0000644000175000017500000001207512020421667012666 00000000000000Here are some rough notes that might help you create a pidgin-otr Win32 build on a Linux system with mingw32. These have been tested on Ubuntu 11.04. tl;dr download and install for files before disconnecting from the internet: wget -c ftp://ftp.gnupg.org/gcrypt/libgpg-error/libgpg-error-1.0.tar.gz \ ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-1.2.1.tar.gz \ http://www.cypherpunks.ca/otr/rndw32.diff \ http://ftp.gnome.org/pub/gnome/binaries/win32/gtk+/2.24/gtk+-bundle_2.24.10-20120208_win32.zip \ http://downloads.sourceforge.net/project/pidgin/Pidgin/2.10.6/pidgin-2.10.6.tar.bz2 \ http://downloads.sourceforge.net/project/pidgin/Pidgin/2.10.6/pidgin-2.10.6-win32-bin.zip \ http://www.cypherpunks.ca/otr/nsisunz.zip apt-get install mingw32 nsis wget unzip tar The above files have the following SHA1 values: 895072c22f5bfd4ac9054d48d62d6c8b2a487098 gtk+-bundle_2.24.10-20120208_win32.zip 8627d483e26e73b4cfabb4807ae8423875c37cda libgcrypt-1.2.1.tar.gz 1c91787f208c30a91678ebb2f173308f8fab3d36 libgpg-error-1.0.tar.gz caeeb30321966279285228f9afa088c7f4cace84 nsisunz.zip a0532e7ba2acd205d6a5a4e3624156a980fe3d43 pidgin-2.10.6.tar.bz2 e2758a47f911850a2afe7ad3764a383b43e405ba pidgin-2.10.6-win32-bin.zip 7513069475a3717f851867ab5f729f3a871421c0 rndw32.diff Packages and their build instructions in the order they should be built. Good luck! mingw: apt-get install mingw32 libgpg-error-1.0: cd /tmp; wget ftp://ftp.gnupg.org/gcrypt/libgpg-error/libgpg-error-1.0.tar.gz tar -xvzf libgpg-error-1.0.tar.gz # (before configure) HOST_CC=gcc DLLTOOL=i586-mingw32msvc-dlltool AS=i586-mingw32msvc-as CFLAGS="-g -O2 -fstack-protector-all -Wstack-protector -fwrapv --param ssp-buffer-size=1 -fno-strict-overflow" LDFLAGS="-pie" export HOST_CC DLLTOOL AS CFLAGS LDFLAGS ./configure --with-pic --build=`./config.guess` --host=i586-mingw32msvc --prefix=/usr/i586-mingw32msvc make sudo make install libgcrypt-1.2.1: cd /tmp; wget ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-1.2.1.tar.gz wget http://www.cypherpunks.ca/otr/rndw32.diff tar -xvzf libgcrypt-1.2.1.tar.gz cd /tmp/libgcrypt-1.2.1 CFLAGS="-g -O2 -fstack-protector-all -Wstack-protector -fwrapv --param ssp-buffer-size=1 -fno-strict-overflow" LDFLAGS="-pie" export CFLAGS LDFLAGS w32root=/usr/i586-mingw32msvc ./autogen.sh --build-w32 # Apply a basic configuration change patch patch -p0 < /path/to/pidgin-otr/patches/win32/libgcrypt-config.h.patch # Apply windows slow random fix patch patch -p0 < /path/to/pidgin-otr/patches/win32/rndw32.diff make sudo make install nsis: sudo apt-get install nsis # Locate the "nsisunz" plugin (a google search for "nsisunz.zip" should be sufficient) # Extract the DLL to /usr/share/nsis/Plugins # (yes it's a DLL extension, but it will still work for GNU/Linux nsis) # set LIBOTRSRCDIR to the libotr src directory cd /tmp; wget -c http://www.cypherpunks.ca/otr/nsisunz.zip unzip nsisunz.zip sudo cp /tmp/nsisunz/Release/nsisunz.dll /usr/share/nsis/Plugins/ libotr: autoreconf -s -i ./configure --with-pic --build=`./config.guess` --host=i586-mingw32msvc --prefix=/usr/i586-mingw32msvc \ --with-libgcrypt-prefix=/usr/i586-mingw32msvc make sudo make install pidgin-otr: # You will need: Pidgin source code distributable, # Pidgin Win32 distributable, # and an "all-in-one bundle" of the GTK+ stack 2.14.7 or greater # e.g., gtk+-bundle_2.24.10-20120208_win32.zip from # http://www.gtk.org/download/win32.php # In Makefile.mingw, specify the location of PIDGIN_HEADERS, PURPLE_HEADERS, # GTK_WIN32_BUNDLE, and PIDGIN_WIN32_LIBS # Ensure either pkg-config will correctly resolve all the dependencies for # glib-2.0 and gtk+-2.0. There is a README in the GTK+ bundle about this, or # uncomment (and perhaps revise) the hardcoded list of includes for GTK_HDRS cd /tmp; wget -c http://prdownloads.sourceforge.net/pidgin/pidgin-2.10.3.tar.bz2 wget -c http://downloads.sourceforge.net/project/pidgin/Pidgin/2.10.6/pidgin-2.10.6-win32-bin.zip wget -c http://ftp.gnome.org/pub/gnome/binaries/win32/gtk+/2.24/gtk+-bundle_2.24.10-20120208_win32.zip sudo mkdir -p /usr/i586-mingw32msvc/misc/gtk_bundle; cd /usr/i586-mingw32msvc/misc/gtk_bundle; sudo unzip /tmp/gtk+-bundle_2.24.10-20120208_win32.zip cd /tmp; unzip pidgin-2.10.6-win32-bin.zip sudo mkdir -p /usr/i586-mingw32msvc/misc/pidgin_dlls sudo mv /tmp/pidgin-2.10.6-win32bin/*.dll /usr/i586-mingw32msvc/misc/pidgin_dlls/ tar -xvjf pidgin-2.10.6.tar.bz2 sudo mkdir -p /usr/i586-mingw32msvc/include/ sudo mv /tmp/pidgin-2.10.6/libpurple /usr/i586-mingw32msvc/include/ sudo mv /tmp/pidgin-2.10.6/pidgin /usr/i586-mingw32msvc/include/ cd /path/to/pidgin-otr/ # Finally build pidgin-otr plugin make -f Makefile.mingw # This should now build the nsis installer make -f Makefile.mingw installer # This should now build the zipfile make -f Makefile.mingw zip The pidgin-otr plugin is now available in the current working directory - inspect it with unzip: unzip -l pidgin-otr-4.0.0.zip pidgin-otr-4.0.0/aclocal.m40000644000175000017500000126546112021367776012402 00000000000000# generated automatically by aclocal 1.11.1 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2007, 2008, 2009 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(m4_defn([AC_AUTOCONF_VERSION]), [2.65],, [m4_warning([this file was generated for autoconf 2.65. 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) 1995-2002 Free Software Foundation, Inc. # Copyright (C) 2001-2003,2004 Red Hat, Inc. # # This file is free software, distributed under the terms of the GNU # General Public License. As a special exception to the GNU General # Public License, this file may be distributed as part of a program # that contains a configuration script generated by Autoconf, under # the same distribution terms as the rest of that program. # # This file can be copied and used freely without restrictions. It can # be used in projects which are not available under the GNU Public License # but which still want to provide support for the GNU gettext functionality. # # Macro to add for using GNU gettext. # Ulrich Drepper , 1995, 1996 # # Modified to never use included libintl. # Owen Taylor , 12/15/1998 # # Major rework to remove unused code # Owen Taylor , 12/11/2002 # # Added better handling of ALL_LINGUAS from GNU gettext version # written by Bruno Haible, Owen Taylor 5/30/3002 # # Modified to require ngettext # Matthias Clasen 08/06/2004 # # We need this here as well, since someone might use autoconf-2.5x # to configure GLib then an older version to configure a package # using AM_GLIB_GNU_GETTEXT AC_PREREQ(2.53) dnl dnl We go to great lengths to make sure that aclocal won't dnl try to pull in the installed version of these macros dnl when running aclocal in the glib directory. dnl m4_copy([AC_DEFUN],[glib_DEFUN]) m4_copy([AC_REQUIRE],[glib_REQUIRE]) dnl dnl At the end, if we're not within glib, we'll define the public dnl definitions in terms of our private definitions. dnl # GLIB_LC_MESSAGES #-------------------- glib_DEFUN([GLIB_LC_MESSAGES], [AC_CHECK_HEADERS([locale.h]) if test $ac_cv_header_locale_h = yes; then AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES, [AC_TRY_LINK([#include ], [return LC_MESSAGES], am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)]) if test $am_cv_val_LC_MESSAGES = yes; then AC_DEFINE(HAVE_LC_MESSAGES, 1, [Define if your file defines LC_MESSAGES.]) fi fi]) # GLIB_PATH_PROG_WITH_TEST #---------------------------- dnl GLIB_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) glib_DEFUN([GLIB_PATH_PROG_WITH_TEST], [# Extract the first word of "$2", so it can be a program name with args. set dummy $2; ac_word=[$]2 AC_MSG_CHECKING([for $ac_word]) AC_CACHE_VAL(ac_cv_path_$1, [case "[$]$1" in /*) ac_cv_path_$1="[$]$1" # Let the user override the test with a path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in ifelse([$5], , $PATH, [$5]); do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if [$3]; then ac_cv_path_$1="$ac_dir/$ac_word" break fi fi done IFS="$ac_save_ifs" dnl If no 4th arg is given, leave the cache variable unset, dnl so AC_PATH_PROGS will keep looking. ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" ])dnl ;; esac])dnl $1="$ac_cv_path_$1" if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then AC_MSG_RESULT([$]$1) else AC_MSG_RESULT(no) fi AC_SUBST($1)dnl ]) # GLIB_WITH_NLS #----------------- glib_DEFUN([GLIB_WITH_NLS], dnl NLS is obligatory [USE_NLS=yes AC_SUBST(USE_NLS) gt_cv_have_gettext=no CATOBJEXT=NONE XGETTEXT=: INTLLIBS= AC_CHECK_HEADER(libintl.h, [gt_cv_func_dgettext_libintl="no" libintl_extra_libs="" # # First check in libc # AC_CACHE_CHECK([for ngettext in libc], gt_cv_func_ngettext_libc, [AC_TRY_LINK([ #include ], [return !ngettext ("","", 1)], gt_cv_func_ngettext_libc=yes, gt_cv_func_ngettext_libc=no) ]) if test "$gt_cv_func_ngettext_libc" = "yes" ; then AC_CACHE_CHECK([for dgettext in libc], gt_cv_func_dgettext_libc, [AC_TRY_LINK([ #include ], [return !dgettext ("","")], gt_cv_func_dgettext_libc=yes, gt_cv_func_dgettext_libc=no) ]) fi if test "$gt_cv_func_ngettext_libc" = "yes" ; then AC_CHECK_FUNCS(bind_textdomain_codeset) fi # # If we don't have everything we want, check in libintl # if test "$gt_cv_func_dgettext_libc" != "yes" \ || test "$gt_cv_func_ngettext_libc" != "yes" \ || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then AC_CHECK_LIB(intl, bindtextdomain, [AC_CHECK_LIB(intl, ngettext, [AC_CHECK_LIB(intl, dgettext, gt_cv_func_dgettext_libintl=yes)])]) if test "$gt_cv_func_dgettext_libintl" != "yes" ; then AC_MSG_CHECKING([if -liconv is needed to use gettext]) AC_MSG_RESULT([]) AC_CHECK_LIB(intl, ngettext, [AC_CHECK_LIB(intl, dcgettext, [gt_cv_func_dgettext_libintl=yes libintl_extra_libs=-liconv], :,-liconv)], :,-liconv) fi # # If we found libintl, then check in it for bind_textdomain_codeset(); # we'll prefer libc if neither have bind_textdomain_codeset(), # and both have dgettext and ngettext # if test "$gt_cv_func_dgettext_libintl" = "yes" ; then glib_save_LIBS="$LIBS" LIBS="$LIBS -lintl $libintl_extra_libs" unset ac_cv_func_bind_textdomain_codeset AC_CHECK_FUNCS(bind_textdomain_codeset) LIBS="$glib_save_LIBS" if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then gt_cv_func_dgettext_libc=no else if test "$gt_cv_func_dgettext_libc" = "yes" \ && test "$gt_cv_func_ngettext_libc" = "yes"; then gt_cv_func_dgettext_libintl=no fi fi fi fi if test "$gt_cv_func_dgettext_libc" = "yes" \ || test "$gt_cv_func_dgettext_libintl" = "yes"; then gt_cv_have_gettext=yes fi if test "$gt_cv_func_dgettext_libintl" = "yes"; then INTLLIBS="-lintl $libintl_extra_libs" fi if test "$gt_cv_have_gettext" = "yes"; then AC_DEFINE(HAVE_GETTEXT,1, [Define if the GNU gettext() function is already present or preinstalled.]) GLIB_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl if test "$MSGFMT" != "no"; then glib_save_LIBS="$LIBS" LIBS="$LIBS $INTLLIBS" AC_CHECK_FUNCS(dcgettext) MSGFMT_OPTS= AC_MSG_CHECKING([if msgfmt accepts -c]) GLIB_RUN_PROG([$MSGFMT -c -o /dev/null],[ msgid "" msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Project-Id-Version: test 1.0\n" "PO-Revision-Date: 2007-02-15 12:01+0100\n" "Last-Translator: test \n" "Language-Team: C \n" "MIME-Version: 1.0\n" "Content-Transfer-Encoding: 8bit\n" ], [MSGFMT_OPTS=-c; AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no])]) AC_SUBST(MSGFMT_OPTS) AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) GLIB_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) AC_TRY_LINK(, [extern int _nl_msg_cat_cntr; return _nl_msg_cat_cntr], [CATOBJEXT=.gmo DATADIRNAME=share], [case $host in *-*-solaris*) dnl On Solaris, if bind_textdomain_codeset is in libc, dnl GNU format message catalog is always supported, dnl since both are added to the libc all together. dnl Hence, we'd like to go with DATADIRNAME=share and dnl and CATOBJEXT=.gmo in this case. AC_CHECK_FUNC(bind_textdomain_codeset, [CATOBJEXT=.gmo DATADIRNAME=share], [CATOBJEXT=.mo DATADIRNAME=lib]) ;; *) CATOBJEXT=.mo DATADIRNAME=lib ;; esac]) LIBS="$glib_save_LIBS" INSTOBJEXT=.mo else gt_cv_have_gettext=no fi fi ]) if test "$gt_cv_have_gettext" = "yes" ; then AC_DEFINE(ENABLE_NLS, 1, [always defined to indicate that i18n is enabled]) fi dnl Test whether we really found GNU xgettext. if test "$XGETTEXT" != ":"; then dnl If it is not GNU xgettext we define it as : so that the dnl Makefiles still can work. if $XGETTEXT --omit-header /dev/null 2> /dev/null; then : ; else AC_MSG_RESULT( [found xgettext program is not GNU xgettext; ignore it]) XGETTEXT=":" fi fi # We need to process the po/ directory. POSUB=po AC_OUTPUT_COMMANDS( [case "$CONFIG_FILES" in *po/Makefile.in*) sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile esac]) dnl These rules are solely for the distribution goal. While doing this dnl we only have to keep exactly one list of the available catalogs dnl in configure.in. for lang in $ALL_LINGUAS; do GMOFILES="$GMOFILES $lang.gmo" POFILES="$POFILES $lang.po" done dnl Make all variables we use known to autoconf. AC_SUBST(CATALOGS) AC_SUBST(CATOBJEXT) AC_SUBST(DATADIRNAME) AC_SUBST(GMOFILES) AC_SUBST(INSTOBJEXT) AC_SUBST(INTLLIBS) AC_SUBST(PO_IN_DATADIR_TRUE) AC_SUBST(PO_IN_DATADIR_FALSE) AC_SUBST(POFILES) AC_SUBST(POSUB) ]) # AM_GLIB_GNU_GETTEXT # ------------------- # Do checks necessary for use of gettext. If a suitable implementation # of gettext is found in either in libintl or in the C library, # it will set INTLLIBS to the libraries needed for use of gettext # and AC_DEFINE() HAVE_GETTEXT and ENABLE_NLS. (The shell variable # gt_cv_have_gettext will be set to "yes".) It will also call AC_SUBST() # on various variables needed by the Makefile.in.in installed by # glib-gettextize. dnl glib_DEFUN([GLIB_GNU_GETTEXT], [AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_HEADER_STDC])dnl GLIB_LC_MESSAGES GLIB_WITH_NLS if test "$gt_cv_have_gettext" = "yes"; then if test "x$ALL_LINGUAS" = "x"; then LINGUAS= else AC_MSG_CHECKING(for catalogs to be installed) NEW_LINGUAS= for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then desiredlanguages="$LINGUAS" else desiredlanguages="$ALL_LINGUAS" fi for desiredlang in $desiredlanguages; do # Use the presentlang catalog if desiredlang is # a. equal to presentlang, or # b. a variant of presentlang (because in this case, # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in "$presentlang"*) useit=yes;; esac done if test $useit = yes; then NEW_LINGUAS="$NEW_LINGUAS $presentlang" fi done LINGUAS=$NEW_LINGUAS AC_MSG_RESULT($LINGUAS) fi dnl Construct list of names of catalog files to be constructed. if test -n "$LINGUAS"; then for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done fi fi dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly dnl find the mkinstalldirs script in another subdir but ($top_srcdir). dnl Try to locate is. MKINSTALLDIRS= if test -n "$ac_aux_dir"; then MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" fi if test -z "$MKINSTALLDIRS"; then MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" fi AC_SUBST(MKINSTALLDIRS) dnl Generate list of files to be processed by xgettext which will dnl be included in po/Makefile. test -d po || mkdir po if test "x$srcdir" != "x."; then if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then posrcprefix="$srcdir/" else posrcprefix="../$srcdir/" fi else posrcprefix="../" fi rm -f po/POTFILES sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ < $srcdir/po/POTFILES.in > po/POTFILES ]) # AM_GLIB_DEFINE_LOCALEDIR(VARIABLE) # ------------------------------- # Define VARIABLE to the location where catalog files will # be installed by po/Makefile. glib_DEFUN([GLIB_DEFINE_LOCALEDIR], [glib_REQUIRE([GLIB_GNU_GETTEXT])dnl glib_save_prefix="$prefix" glib_save_exec_prefix="$exec_prefix" glib_save_datarootdir="$datarootdir" test "x$prefix" = xNONE && prefix=$ac_default_prefix test "x$exec_prefix" = xNONE && exec_prefix=$prefix datarootdir=`eval echo "${datarootdir}"` if test "x$CATOBJEXT" = "x.mo" ; then localedir=`eval echo "${libdir}/locale"` else localedir=`eval echo "${datadir}/locale"` fi prefix="$glib_save_prefix" exec_prefix="$glib_save_exec_prefix" datarootdir="$glib_save_datarootdir" AC_DEFINE_UNQUOTED($1, "$localedir", [Define the location where the catalogs will be installed]) ]) dnl dnl Now the definitions that aclocal will find dnl ifdef(glib_configure_in,[],[ AC_DEFUN([AM_GLIB_GNU_GETTEXT],[GLIB_GNU_GETTEXT($@)]) AC_DEFUN([AM_GLIB_DEFINE_LOCALEDIR],[GLIB_DEFINE_LOCALEDIR($@)]) ])dnl # GLIB_RUN_PROG(PROGRAM, TEST-FILE, [ACTION-IF-PASS], [ACTION-IF-FAIL]) # # Create a temporary file with TEST-FILE as its contents and pass the # file name to PROGRAM. Perform ACTION-IF-PASS if PROGRAM exits with # 0 and perform ACTION-IF-FAIL for any other exit status. AC_DEFUN([GLIB_RUN_PROG], [cat >conftest.foo <<_ACEOF $2 _ACEOF if AC_RUN_LOG([$1 conftest.foo]); then m4_ifval([$3], [$3], [:]) m4_ifvaln([$4], [else $4])dnl echo "$as_me: failed input was:" >&AS_MESSAGE_LOG_FD sed 's/^/| /' conftest.foo >&AS_MESSAGE_LOG_FD fi]) dnl IT_PROG_INTLTOOL([MINIMUM-VERSION], [no-xml]) # serial 40 IT_PROG_INTLTOOL AC_DEFUN([IT_PROG_INTLTOOL], [ AC_PREREQ([2.50])dnl AC_REQUIRE([AM_NLS])dnl case "$am__api_version" in 1.[01234]) AC_MSG_ERROR([Automake 1.5 or newer is required to use intltool]) ;; *) ;; esac if test -n "$1"; then AC_MSG_CHECKING([for intltool >= $1]) INTLTOOL_REQUIRED_VERSION_AS_INT=`echo $1 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` [INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` ] AC_MSG_RESULT([$INTLTOOL_APPLIED_VERSION found]) test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || AC_MSG_ERROR([Your intltool is too old. You need intltool $1 or later.]) fi AC_PATH_PROG(INTLTOOL_UPDATE, [intltool-update]) AC_PATH_PROG(INTLTOOL_MERGE, [intltool-merge]) AC_PATH_PROG(INTLTOOL_EXTRACT, [intltool-extract]) if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then AC_MSG_ERROR([The intltool scripts were not found. Please install intltool.]) fi INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -p $(top_srcdir)/po $< [$]@' INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u /tmp $< [$]@' INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' _IT_SUBST(INTLTOOL_DESKTOP_RULE) _IT_SUBST(INTLTOOL_DIRECTORY_RULE) _IT_SUBST(INTLTOOL_KEYS_RULE) _IT_SUBST(INTLTOOL_PROP_RULE) _IT_SUBST(INTLTOOL_OAF_RULE) _IT_SUBST(INTLTOOL_PONG_RULE) _IT_SUBST(INTLTOOL_SERVER_RULE) _IT_SUBST(INTLTOOL_SHEET_RULE) _IT_SUBST(INTLTOOL_SOUNDLIST_RULE) _IT_SUBST(INTLTOOL_UI_RULE) _IT_SUBST(INTLTOOL_XAM_RULE) _IT_SUBST(INTLTOOL_KBD_RULE) _IT_SUBST(INTLTOOL_XML_RULE) _IT_SUBST(INTLTOOL_XML_NOMERGE_RULE) _IT_SUBST(INTLTOOL_CAVES_RULE) _IT_SUBST(INTLTOOL_SCHEMAS_RULE) _IT_SUBST(INTLTOOL_THEME_RULE) _IT_SUBST(INTLTOOL_SERVICE_RULE) _IT_SUBST(INTLTOOL_POLICY_RULE) # Check the gettext tools to make sure they are GNU AC_PATH_PROG(XGETTEXT, xgettext) AC_PATH_PROG(MSGMERGE, msgmerge) AC_PATH_PROG(MSGFMT, msgfmt) AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) fi xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) fi AC_PATH_PROG(INTLTOOL_PERL, perl) if test -z "$INTLTOOL_PERL"; then AC_MSG_ERROR([perl not found]) fi AC_MSG_CHECKING([for perl >= 5.8.1]) $INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 if test $? -ne 0; then AC_MSG_ERROR([perl 5.8.1 is required for intltool]) else IT_PERL_VERSION="`$INTLTOOL_PERL -e \"printf '%vd', $^V\"`" AC_MSG_RESULT([$IT_PERL_VERSION]) fi if test "x$2" != "xno-xml"; then AC_MSG_CHECKING([for XML::Parser]) if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then AC_MSG_RESULT([ok]) else AC_MSG_ERROR([XML::Parser perl module is required for intltool]) fi fi # Substitute ALL_LINGUAS so we can use it in po/Makefile AC_SUBST(ALL_LINGUAS) # Set DATADIRNAME correctly if it is not set yet # (copied from glib-gettext.m4) if test -z "$DATADIRNAME"; then AC_LINK_IFELSE( [AC_LANG_PROGRAM([[]], [[extern int _nl_msg_cat_cntr; return _nl_msg_cat_cntr]])], [DATADIRNAME=share], [case $host in *-*-solaris*) dnl On Solaris, if bind_textdomain_codeset is in libc, dnl GNU format message catalog is always supported, dnl since both are added to the libc all together. dnl Hence, we'd like to go with DATADIRNAME=share dnl in this case. AC_CHECK_FUNC(bind_textdomain_codeset, [DATADIRNAME=share], [DATADIRNAME=lib]) ;; *) [DATADIRNAME=lib] ;; esac]) fi AC_SUBST(DATADIRNAME) IT_PO_SUBDIR([po]) ]) # IT_PO_SUBDIR(DIRNAME) # --------------------- # All po subdirs have to be declared with this macro; the subdir "po" is # declared by IT_PROG_INTLTOOL. # AC_DEFUN([IT_PO_SUBDIR], [AC_PREREQ([2.53])dnl We use ac_top_srcdir inside AC_CONFIG_COMMANDS. dnl dnl The following CONFIG_COMMANDS should be exetuted at the very end dnl of config.status. AC_CONFIG_COMMANDS_PRE([ AC_CONFIG_COMMANDS([$1/stamp-it], [ if [ ! grep "^# INTLTOOL_MAKEFILE$" "$1/Makefile.in" > /dev/null ]; then AC_MSG_ERROR([$1/Makefile.in.in was not created by intltoolize.]) fi rm -f "$1/stamp-it" "$1/stamp-it.tmp" "$1/POTFILES" "$1/Makefile.tmp" >"$1/stamp-it.tmp" [sed '/^#/d s/^[[].*] *// /^[ ]*$/d '"s|^| $ac_top_srcdir/|" \ "$srcdir/$1/POTFILES.in" | sed '$!s/$/ \\/' >"$1/POTFILES" ] [sed '/^POTFILES =/,/[^\\]$/ { /^POTFILES =/!d r $1/POTFILES } ' "$1/Makefile.in" >"$1/Makefile"] rm -f "$1/Makefile.tmp" mv "$1/stamp-it.tmp" "$1/stamp-it" ]) ])dnl ]) # _IT_SUBST(VARIABLE) # ------------------- # Abstract macro to do either _AM_SUBST_NOTMAKE or AC_SUBST # AC_DEFUN([_IT_SUBST], [ AC_SUBST([$1]) m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([$1])]) ] ) # deprecated macros AU_ALIAS([AC_PROG_INTLTOOL], [IT_PROG_INTLTOOL]) # A hint is needed for aclocal from Automake <= 1.9.4: # AC_DEFUN([AC_PROG_INTLTOOL], ...) dnl Autoconf macros for libgcrypt dnl Copyright (C) 2002, 2004 Free Software Foundation, Inc. dnl dnl This file is free software; as a special exception the author gives dnl unlimited permission to copy and/or distribute it, with or without dnl modifications, as long as this notice is preserved. dnl dnl This file is distributed in the hope that it will be useful, but dnl WITHOUT ANY WARRANTY, to the extent permitted by law; without even the dnl implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. dnl AM_PATH_LIBGCRYPT([MINIMUM-VERSION, dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]]) dnl Test for libgcrypt and define LIBGCRYPT_CFLAGS and LIBGCRYPT_LIBS. dnl MINIMUN-VERSION is a string with the version number optionalliy prefixed dnl with the API version to also check the API compatibility. Example: dnl a MINIMUN-VERSION of 1:1.2.5 won't pass the test unless the installed dnl version of libgcrypt is at least 1.2.5 *and* the API number is 1. Using dnl this features allows to prevent build against newer versions of libgcrypt dnl with a changed API. dnl AC_DEFUN([AM_PATH_LIBGCRYPT], [ AC_ARG_WITH(libgcrypt-prefix, AC_HELP_STRING([--with-libgcrypt-prefix=PFX], [prefix where LIBGCRYPT is installed (optional)]), libgcrypt_config_prefix="$withval", libgcrypt_config_prefix="") if test x$libgcrypt_config_prefix != x ; then if test x${LIBGCRYPT_CONFIG+set} != xset ; then LIBGCRYPT_CONFIG=$libgcrypt_config_prefix/bin/libgcrypt-config fi fi AC_PATH_PROG(LIBGCRYPT_CONFIG, libgcrypt-config, no) tmp=ifelse([$1], ,1:1.2.0,$1) if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then req_libgcrypt_api=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\1/'` min_libgcrypt_version=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\2/'` else req_libgcrypt_api=0 min_libgcrypt_version="$tmp" fi AC_MSG_CHECKING(for LIBGCRYPT - version >= $min_libgcrypt_version) ok=no if test "$LIBGCRYPT_CONFIG" != "no" ; then req_major=`echo $min_libgcrypt_version | \ sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'` req_minor=`echo $min_libgcrypt_version | \ sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'` req_micro=`echo $min_libgcrypt_version | \ sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'` libgcrypt_config_version=`$LIBGCRYPT_CONFIG --version` major=`echo $libgcrypt_config_version | \ sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'` minor=`echo $libgcrypt_config_version | \ sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\2/'` micro=`echo $libgcrypt_config_version | \ sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\3/'` if test "$major" -gt "$req_major"; then ok=yes else if test "$major" -eq "$req_major"; then if test "$minor" -gt "$req_minor"; then ok=yes else if test "$minor" -eq "$req_minor"; then if test "$micro" -ge "$req_micro"; then ok=yes fi fi fi fi fi fi if test $ok = yes; then AC_MSG_RESULT([yes ($libgcrypt_config_version)]) else AC_MSG_RESULT(no) fi if test $ok = yes; then # If we have a recent libgcrypt, we should also check that the # API is compatible if test "$req_libgcrypt_api" -gt 0 ; then tmp=`$LIBGCRYPT_CONFIG --api-version 2>/dev/null || echo 0` if test "$tmp" -gt 0 ; then AC_MSG_CHECKING([LIBGCRYPT API version]) if test "$req_libgcrypt_api" -eq "$tmp" ; then AC_MSG_RESULT([okay]) else ok=no AC_MSG_RESULT([does not match. want=$req_libgcrypt_api got=$tmp]) fi fi fi fi if test $ok = yes; then LIBGCRYPT_CFLAGS=`$LIBGCRYPT_CONFIG --cflags` LIBGCRYPT_LIBS=`$LIBGCRYPT_CONFIG --libs` ifelse([$2], , :, [$2]) else LIBGCRYPT_CFLAGS="" LIBGCRYPT_LIBS="" ifelse([$3], , :, [$3]) fi AC_SUBST(LIBGCRYPT_CFLAGS) AC_SUBST(LIBGCRYPT_LIBS) ]) dnl dnl Off-the-Record Messaging library dnl Copyright (C) 2004-2007 Ian Goldberg, Chris Alexander, Nikita Borisov dnl dnl dnl This library is free software; you can redistribute it and/or dnl modify it under the terms of version 2.1 of the GNU Lesser General dnl Public License as published by the Free Software Foundation. dnl 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 Lesser General Public License for more details. dnl dnl You should have received a copy of the GNU Lesser General Public dnl License along with this library; if not, write to the Free Software dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA dnl dnl AM_PATH_LIBOTR([MINIMUM-VERSION [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]]) dnl Test for libotr, and define LIBOTR_CFLAGS and LIBOTR_LIBS as appropriate. dnl enables arguments --with-libotr-prefix= dnl --with-libotr-inc-prefix= dnl dnl You must already have found libgcrypt with AM_PATH_LIBGCRYPT dnl dnl Adapted from alsa.m4, originally by dnl Richard Boulton dnl Christopher Lansdown dnl Jaroslav Kysela AC_DEFUN([AM_PATH_LIBOTR], [dnl Save the original CFLAGS, LDFLAGS, and LIBS libotr_save_CFLAGS="$CFLAGS" libotr_save_LDFLAGS="$LDFLAGS" libotr_save_LIBS="$LIBS" libotr_found=yes dnl dnl Get the cflags and libraries for libotr dnl AC_ARG_WITH(libotr-prefix, [ --with-libotr-prefix=PFX Prefix where libotr is installed(optional)], [libotr_prefix="$withval"], [libotr_prefix=""]) AC_ARG_WITH(libotr-inc-prefix, [ --with-libotr-inc-prefix=PFX Prefix where libotr includes are (optional)], [libotr_inc_prefix="$withval"], [libotr_inc_prefix=""]) dnl Add any special include directories AC_MSG_CHECKING(for libotr CFLAGS) if test "$libotr_inc_prefix" != "" ; then LIBOTR_CFLAGS="$LIBOTR_CFLAGS -I$libotr_inc_prefix" CFLAGS="$CFLAGS $LIBOTR_CFLAGS" fi AC_MSG_RESULT($LIBOTR_CFLAGS) dnl add any special lib dirs AC_MSG_CHECKING(for libotr LIBS) if test "$libotr_prefix" != "" ; then LIBOTR_LIBS="$LIBOTR_LIBS -L$libotr_prefix" LDFLAGS="$LDFLAGS $LIBOTR_LIBS" fi dnl add the libotr library LIBOTR_LIBS="$LIBOTR_LIBS -lotr" LIBS="$LIBOTR_LIBS $LIBS" AC_MSG_RESULT($LIBOTR_LIBS) dnl Check for a working version of libotr that is of the right version. min_libotr_version=ifelse([$1], ,3.0.0,$1) no_libotr="" libotr_min_major_version=`echo $min_libotr_version | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` libotr_min_minor_version=`echo $min_libotr_version | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` libotr_min_sub_version=`echo $min_libotr_version | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` AC_MSG_CHECKING(for libotr headers version $libotr_min_major_version.x >= $min_libotr_version) AC_LANG_SAVE AC_LANG_C AC_TRY_COMPILE([ #include #include ], [ # if(OTRL_VERSION_MAJOR != $libotr_min_major_version) # error not present # else # if(OTRL_VERSION_MINOR > $libotr_min_minor_version) exit(0); # else # if(OTRL_VERSION_MINOR < $libotr_min_minor_version) # error not present # endif # if(OTRL_VERSION_SUB < $libotr_min_sub_version) # error not present # endif # endif # endif exit(0); ], [AC_MSG_RESULT(found.)], [AC_MSG_RESULT(not present.) ifelse([$3], , [AC_MSG_ERROR(Sufficiently new version of libotr not found.)]) libotr_found=no] ) AC_LANG_RESTORE dnl Now that we know that we have the right version, let's see if we have the library and not just the headers. AC_CHECK_LIB([otr], [otrl_message_receiving],, [ifelse([$3], , [AC_MSG_ERROR(No linkable libotr was found.)]) libotr_found=no], $LIBGCRYPT_LIBS ) LDFLAGS="$libotr_save_LDFLAGS" LIBS="$libotr_save_LIBS" if test "x$libotr_found" = "xyes" ; then ifelse([$2], , :, [$2]) else LIBOTR_CFLAGS="" LIBOTR_LIBS="" ifelse([$3], , :, [$3]) fi dnl That should be it. Now just export our symbols: AC_SUBST(LIBOTR_CFLAGS) AC_SUBST(LIBOTR_LIBS) ]) # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008 Free Software Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. m4_define([_LT_COPYING], [dnl # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008 Free Software Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. # # GNU Libtool is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 2 of # the License, or (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, or # obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ]) # serial 56 LT_INIT # LT_PREREQ(VERSION) # ------------------ # Complain and exit if this libtool version is less that VERSION. m4_defun([LT_PREREQ], [m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, [m4_default([$3], [m4_fatal([Libtool version $1 or higher is required], 63)])], [$2])]) # _LT_CHECK_BUILDDIR # ------------------ # Complain if the absolute build directory name contains unusual characters m4_defun([_LT_CHECK_BUILDDIR], [case `pwd` in *\ * | *\ *) AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; esac ]) # LT_INIT([OPTIONS]) # ------------------ AC_DEFUN([LT_INIT], [AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT AC_BEFORE([$0], [LT_LANG])dnl AC_BEFORE([$0], [LT_OUTPUT])dnl AC_BEFORE([$0], [LTDL_INIT])dnl m4_require([_LT_CHECK_BUILDDIR])dnl dnl Autoconf doesn't catch unexpanded LT_ macros by default: m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 dnl unless we require an AC_DEFUNed macro: AC_REQUIRE([LTOPTIONS_VERSION])dnl AC_REQUIRE([LTSUGAR_VERSION])dnl AC_REQUIRE([LTVERSION_VERSION])dnl AC_REQUIRE([LTOBSOLETE_VERSION])dnl m4_require([_LT_PROG_LTMAIN])dnl dnl Parse OPTIONS _LT_SET_OPTIONS([$0], [$1]) # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ltmain" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' AC_SUBST(LIBTOOL)dnl _LT_SETUP # Only expand once: m4_define([LT_INIT]) ])# LT_INIT # Old names: AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PROG_LIBTOOL], []) dnl AC_DEFUN([AM_PROG_LIBTOOL], []) # _LT_CC_BASENAME(CC) # ------------------- # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. m4_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_FILEUTILS_DEFAULTS # ---------------------- # It is okay to use these file commands and assume they have been set # sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'. m4_defun([_LT_FILEUTILS_DEFAULTS], [: ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} ])# _LT_FILEUTILS_DEFAULTS # _LT_SETUP # --------- m4_defun([_LT_SETUP], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl _LT_DECL([], [host_alias], [0], [The host system])dnl _LT_DECL([], [host], [0])dnl _LT_DECL([], [host_os], [0])dnl dnl _LT_DECL([], [build_alias], [0], [The build system])dnl _LT_DECL([], [build], [0])dnl _LT_DECL([], [build_os], [0])dnl dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl dnl AC_REQUIRE([AC_PROG_LN_S])dnl test -z "$LN_S" && LN_S="ln -s" _LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl dnl AC_REQUIRE([LT_CMD_MAX_LEN])dnl _LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl _LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl m4_require([_LT_CMD_RELOAD])dnl m4_require([_LT_CHECK_MAGIC_METHOD])dnl m4_require([_LT_CMD_OLD_ARCHIVE])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl _LT_CONFIG_LIBTOOL_INIT([ # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi ]) if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi _LT_CHECK_OBJDIR m4_require([_LT_TAG_COMPILER])dnl _LT_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. sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\([["`\\]]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld="$lt_cv_prog_gnu_ld" old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o _LT_CC_BASENAME([$compiler]) # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then _LT_PATH_MAGIC fi ;; esac # Use C for the default configuration in the libtool script LT_SUPPORTED_TAG([CC]) _LT_LANG_C_CONFIG _LT_LANG_DEFAULT_CONFIG _LT_CONFIG_COMMANDS ])# _LT_SETUP # _LT_PROG_LTMAIN # --------------- # Note that this code is called both from `configure', and `config.status' # now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, # `config.status' has no value for ac_aux_dir unless we are using Automake, # so we pass a copy along to make sure it has a sensible value anyway. m4_defun([_LT_PROG_LTMAIN], [m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl _LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) ltmain="$ac_aux_dir/ltmain.sh" ])# _LT_PROG_LTMAIN # So that we can recreate a full libtool script including additional # tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS # in macros and then make a single call at the end using the `libtool' # label. # _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) # ---------------------------------------- # Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL_INIT], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_INIT], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_INIT]) # _LT_CONFIG_LIBTOOL([COMMANDS]) # ------------------------------ # Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) # _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) # ----------------------------------------------------- m4_defun([_LT_CONFIG_SAVE_COMMANDS], [_LT_CONFIG_LIBTOOL([$1]) _LT_CONFIG_LIBTOOL_INIT([$2]) ]) # _LT_FORMAT_COMMENT([COMMENT]) # ----------------------------- # Add leading comment marks to the start of each line, and a trailing # full-stop to the whole comment if one is not present already. m4_define([_LT_FORMAT_COMMENT], [m4_ifval([$1], [ m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) )]) # _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) # ------------------------------------------------------------------- # CONFIGNAME is the name given to the value in the libtool script. # VARNAME is the (base) name used in the configure script. # VALUE may be 0, 1 or 2 for a computed quote escaped value based on # VARNAME. Any other value will be used directly. m4_define([_LT_DECL], [lt_if_append_uniq([lt_decl_varnames], [$2], [, ], [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], [m4_ifval([$1], [$1], [$2])]) lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) m4_ifval([$4], [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) lt_dict_add_subkey([lt_decl_dict], [$2], [tagged?], [m4_ifval([$5], [yes], [no])])]) ]) # _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) # -------------------------------------------------------- m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) # lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_tag_varnames], [_lt_decl_filter([tagged?], [yes], $@)]) # _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) # --------------------------------------------------------- m4_define([_lt_decl_filter], [m4_case([$#], [0], [m4_fatal([$0: too few arguments: $#])], [1], [m4_fatal([$0: too few arguments: $#: $1])], [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], [lt_dict_filter([lt_decl_dict], $@)])[]dnl ]) # lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) # -------------------------------------------------- m4_define([lt_decl_quote_varnames], [_lt_decl_filter([value], [1], $@)]) # lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_dquote_varnames], [_lt_decl_filter([value], [2], $@)]) # lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_varnames_tagged], [m4_assert([$# <= 2])dnl _$0(m4_quote(m4_default([$1], [[, ]])), m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) m4_define([_lt_decl_varnames_tagged], [m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) # lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_all_varnames], [_$0(m4_quote(m4_default([$1], [[, ]])), m4_if([$2], [], m4_quote(lt_decl_varnames), m4_quote(m4_shift($@))))[]dnl ]) m4_define([_lt_decl_all_varnames], [lt_join($@, lt_decl_varnames_tagged([$1], lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl ]) # _LT_CONFIG_STATUS_DECLARE([VARNAME]) # ------------------------------------ # Quote a variable value, and forward it to `config.status' so that its # declaration there will have the same value as in `configure'. VARNAME # must have a single quote delimited value for this to work. m4_define([_LT_CONFIG_STATUS_DECLARE], [$1='`$ECHO "X$][$1" | $Xsed -e "$delay_single_quote_subst"`']) # _LT_CONFIG_STATUS_DECLARATIONS # ------------------------------ # We delimit libtool config variables with single quotes, so when # we write them to config.status, we have to be sure to quote all # embedded single quotes properly. In configure, this macro expands # each variable declared with _LT_DECL (and _LT_TAGDECL) into: # # ='`$ECHO "X$" | $Xsed -e "$delay_single_quote_subst"`' m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], [m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAGS # ---------------- # Output comment and list of tags supported by the script m4_defun([_LT_LIBTOOL_TAGS], [_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl available_tags="_LT_TAGS"dnl ]) # _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) # ----------------------------------- # Extract the dictionary values for VARNAME (optionally with TAG) and # expand to a commented shell variable setting: # # # Some comment about what VAR is for. # visible_name=$lt_internal_name m4_define([_LT_LIBTOOL_DECLARE], [_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [description])))[]dnl m4_pushdef([_libtool_name], m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), [0], [_libtool_name=[$]$1], [1], [_libtool_name=$lt_[]$1], [2], [_libtool_name=$lt_[]$1], [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl ]) # _LT_LIBTOOL_CONFIG_VARS # ----------------------- # Produce commented declarations of non-tagged libtool config variables # suitable for insertion in the LIBTOOL CONFIG section of the `libtool' # script. Tagged libtool config variables (even for the LIBTOOL CONFIG # section) are produced by _LT_LIBTOOL_TAG_VARS. m4_defun([_LT_LIBTOOL_CONFIG_VARS], [m4_foreach([_lt_var], m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAG_VARS(TAG) # ------------------------- m4_define([_LT_LIBTOOL_TAG_VARS], [m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) # _LT_TAGVAR(VARNAME, [TAGNAME]) # ------------------------------ m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) # _LT_CONFIG_COMMANDS # ------------------- # Send accumulated output to $CONFIG_STATUS. Thanks to the lists of # variables for single and double quote escaping we saved from calls # to _LT_DECL, we can put quote escaped variables declarations # into `config.status', and then the shell code to quote escape them in # for loops in `config.status'. Finally, any additional code accumulated # from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. m4_defun([_LT_CONFIG_COMMANDS], [AC_PROVIDE_IFELSE([LT_OUTPUT], dnl If the libtool generation code has been placed in $CONFIG_LT, dnl instead of duplicating it all over again into config.status, dnl then we will have config.status run $CONFIG_LT later, so it dnl needs to know what name is stored there: [AC_CONFIG_COMMANDS([libtool], [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], dnl If the libtool generation code is destined for config.status, dnl expand the accumulated commands and init code now: [AC_CONFIG_COMMANDS([libtool], [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) ])#_LT_CONFIG_COMMANDS # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], [ # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' _LT_CONFIG_STATUS_DECLARATIONS LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # Quote evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_quote_varnames); do case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_dquote_varnames); do case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Fix-up fallback echo if it was mangled by the above quoting rules. case \$lt_ECHO in *'\\\[$]0 --fallback-echo"')dnl " lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\[$]0 --fallback-echo"\[$]/\[$]0 --fallback-echo"/'\` ;; esac _LT_OUTPUT_LIBTOOL_INIT ]) # LT_OUTPUT # --------- # This macro allows early generation of the libtool script (before # AC_OUTPUT is called), incase it is used in configure for compilation # tests. AC_DEFUN([LT_OUTPUT], [: ${CONFIG_LT=./config.lt} AC_MSG_NOTICE([creating $CONFIG_LT]) cat >"$CONFIG_LT" <<_LTEOF #! $SHELL # Generated by $as_me. # Run this file to recreate a libtool stub with the current configuration. lt_cl_silent=false SHELL=\${CONFIG_SHELL-$SHELL} _LTEOF cat >>"$CONFIG_LT" <<\_LTEOF AS_SHELL_SANITIZE _AS_PREPARE exec AS_MESSAGE_FD>&1 exec AS_MESSAGE_LOG_FD>>config.log { echo AS_BOX([Running $as_me.]) } >&AS_MESSAGE_LOG_FD lt_cl_help="\ \`$as_me' creates a local libtool stub from the current configuration, for use in further configure time tests before the real libtool is generated. Usage: $[0] [[OPTIONS]] -h, --help print this help, then exit -V, --version print version number, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files Report bugs to ." lt_cl_version="\ m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) configured by $[0], generated by m4_PACKAGE_STRING. Copyright (C) 2008 Free Software Foundation, Inc. This config.lt script is free software; the Free Software Foundation gives unlimited permision to copy, distribute and modify it." while test $[#] != 0 do case $[1] in --version | --v* | -V ) echo "$lt_cl_version"; exit 0 ;; --help | --h* | -h ) echo "$lt_cl_help"; exit 0 ;; --debug | --d* | -d ) debug=: ;; --quiet | --q* | --silent | --s* | -q ) lt_cl_silent=: ;; -*) AC_MSG_ERROR([unrecognized option: $[1] Try \`$[0] --help' for more information.]) ;; *) AC_MSG_ERROR([unrecognized argument: $[1] Try \`$[0] --help' for more information.]) ;; esac shift done if $lt_cl_silent; then exec AS_MESSAGE_FD>/dev/null fi _LTEOF cat >>"$CONFIG_LT" <<_LTEOF _LT_OUTPUT_LIBTOOL_COMMANDS_INIT _LTEOF cat >>"$CONFIG_LT" <<\_LTEOF AC_MSG_NOTICE([creating $ofile]) _LT_OUTPUT_LIBTOOL_COMMANDS AS_EXIT(0) _LTEOF chmod +x "$CONFIG_LT" # configure is writing to config.log, but config.lt does its own redirection, # appending to config.log, which fails on DOS, as config.log is still kept # open by configure. Here we exec the FD to /dev/null, effectively closing # config.log, so it can be properly (re)opened and appended to by config.lt. if test "$no_create" != yes; then lt_cl_success=: test "$silent" = yes && lt_config_lt_args="$lt_config_lt_args --quiet" exec AS_MESSAGE_LOG_FD>/dev/null $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false exec AS_MESSAGE_LOG_FD>>config.log $lt_cl_success || AS_EXIT(1) fi ])# LT_OUTPUT # _LT_CONFIG(TAG) # --------------- # If TAG is the built-in tag, create an initial libtool script with a # default configuration from the untagged config vars. Otherwise add code # to config.status for appending the configuration named by TAG from the # matching tagged config vars. m4_defun([_LT_CONFIG], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_CONFIG_SAVE_COMMANDS([ m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl m4_if(_LT_TAG, [C], [ # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi cfgfile="${ofile}T" trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # _LT_COPYING _LT_LIBTOOL_TAGS # ### BEGIN LIBTOOL CONFIG _LT_LIBTOOL_CONFIG_VARS _LT_LIBTOOL_TAG_VARS # ### END LIBTOOL CONFIG _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac _LT_PROG_LTMAIN # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) _LT_PROG_XSI_SHELLFNS sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ], [cat <<_LT_EOF >> "$ofile" dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded dnl in a comment (ie after a #). # ### BEGIN LIBTOOL TAG CONFIG: $1 _LT_LIBTOOL_TAG_VARS(_LT_TAG) # ### END LIBTOOL TAG CONFIG: $1 _LT_EOF ])dnl /m4_if ], [m4_if([$1], [], [ PACKAGE='$PACKAGE' VERSION='$VERSION' TIMESTAMP='$TIMESTAMP' RM='$RM' ofile='$ofile'], []) ])dnl /_LT_CONFIG_SAVE_COMMANDS ])# _LT_CONFIG # LT_SUPPORTED_TAG(TAG) # --------------------- # Trace this macro to discover what tags are supported by the libtool # --tag option, using: # autoconf --trace 'LT_SUPPORTED_TAG:$1' AC_DEFUN([LT_SUPPORTED_TAG], []) # C support is built-in for now m4_define([_LT_LANG_C_enabled], []) m4_define([_LT_TAGS], []) # LT_LANG(LANG) # ------------- # Enable libtool support for the given language if not already enabled. AC_DEFUN([LT_LANG], [AC_BEFORE([$0], [LT_OUTPUT])dnl m4_case([$1], [C], [_LT_LANG(C)], [C++], [_LT_LANG(CXX)], [Java], [_LT_LANG(GCJ)], [Fortran 77], [_LT_LANG(F77)], [Fortran], [_LT_LANG(FC)], [Windows Resource], [_LT_LANG(RC)], [m4_ifdef([_LT_LANG_]$1[_CONFIG], [_LT_LANG($1)], [m4_fatal([$0: unsupported language: "$1"])])])dnl ])# LT_LANG # _LT_LANG(LANGNAME) # ------------------ m4_defun([_LT_LANG], [m4_ifdef([_LT_LANG_]$1[_enabled], [], [LT_SUPPORTED_TAG([$1])dnl m4_append([_LT_TAGS], [$1 ])dnl m4_define([_LT_LANG_]$1[_enabled], [])dnl _LT_LANG_$1_CONFIG($1)])dnl ])# _LT_LANG # _LT_LANG_DEFAULT_CONFIG # ----------------------- m4_defun([_LT_LANG_DEFAULT_CONFIG], [AC_PROVIDE_IFELSE([AC_PROG_CXX], [LT_LANG(CXX)], [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) AC_PROVIDE_IFELSE([AC_PROG_F77], [LT_LANG(F77)], [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) AC_PROVIDE_IFELSE([AC_PROG_FC], [LT_LANG(FC)], [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal dnl pulling things in needlessly. AC_PROVIDE_IFELSE([AC_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([LT_PROG_GCJ], [LT_LANG(GCJ)], [m4_ifdef([AC_PROG_GCJ], [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([A][M_PROG_GCJ], [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([LT_PROG_GCJ], [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) AC_PROVIDE_IFELSE([LT_PROG_RC], [LT_LANG(RC)], [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) ])# _LT_LANG_DEFAULT_CONFIG # Obsolete macros: AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_CXX], []) dnl AC_DEFUN([AC_LIBTOOL_F77], []) dnl AC_DEFUN([AC_LIBTOOL_FC], []) dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) # _LT_TAG_COMPILER # ---------------- m4_defun([_LT_TAG_COMPILER], [AC_REQUIRE([AC_PROG_CC])dnl _LT_DECL([LTCC], [CC], [1], [A C compiler])dnl _LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl _LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl _LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC ])# _LT_TAG_COMPILER # _LT_COMPILER_BOILERPLATE # ------------------------ # Check for compiler boilerplate output or warnings with # the simple compiler test code. m4_defun([_LT_COMPILER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ])# _LT_COMPILER_BOILERPLATE # _LT_LINKER_BOILERPLATE # ---------------------- # Check for linker boilerplate output or warnings with # the simple link test code. m4_defun([_LT_LINKER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* ])# _LT_LINKER_BOILERPLATE # _LT_REQUIRED_DARWIN_CHECKS # ------------------------- m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ case $host_os in rhapsody* | darwin*) AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) AC_CHECK_TOOL([LIPO], [lipo], [:]) AC_CHECK_TOOL([OTOOL], [otool], [:]) AC_CHECK_TOOL([OTOOL64], [otool64], [:]) _LT_DECL([], [DSYMUTIL], [1], [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) _LT_DECL([], [NMEDIT], [1], [Tool to change global to local symbols on Mac OS X]) _LT_DECL([], [LIPO], [1], [Tool to manipulate fat objects and archives on Mac OS X]) _LT_DECL([], [OTOOL], [1], [ldd/readelf like tool for Mach-O binaries on Mac OS X]) _LT_DECL([], [OTOOL64], [1], [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], [lt_cv_apple_cc_single_mod=no if test -z "${LT_MULTI_MODULE}"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&AS_MESSAGE_LOG_FD fi rm -rf libconftest.dylib* rm -f conftest.* fi]) AC_CACHE_CHECK([for -exported_symbols_list linker flag], [lt_cv_ld_exported_symbols_list], [lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [lt_cv_ld_exported_symbols_list=yes], [lt_cv_ld_exported_symbols_list=no]) LDFLAGS="$save_LDFLAGS" ]) case $host_os in rhapsody* | darwin1.[[012]]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; 10.[[012]]*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test "$lt_cv_apple_cc_single_mod" = "yes"; then _lt_dar_single_mod='$single_module' fi if test "$lt_cv_ld_exported_symbols_list" = "yes"; then _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi if test "$DSYMUTIL" != ":"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac ]) # _LT_DARWIN_LINKER_FEATURES # -------------------------- # Checks for linker and compiler features on darwin m4_defun([_LT_DARWIN_LINKER_FEATURES], [ m4_require([_LT_REQUIRED_DARWIN_CHECKS]) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(whole_archive_flag_spec, $1)='' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=echo _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" m4_if([$1], [CXX], [ if test "$lt_cv_apple_cc_single_mod" != "yes"; then _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" fi ],[]) else _LT_TAGVAR(ld_shlibs, $1)=no fi ]) # _LT_SYS_MODULE_PATH_AIX # ----------------------- # 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. m4_defun([_LT_SYS_MODULE_PATH_AIX], [m4_require([_LT_DECL_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_SYS_MODULE_PATH_AIX # _LT_SHELL_INIT(ARG) # ------------------- m4_define([_LT_SHELL_INIT], [ifdef([AC_DIVERSION_NOTICE], [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], [AC_DIVERT_PUSH(NOTICE)]) $1 AC_DIVERT_POP ])# _LT_SHELL_INIT # _LT_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. m4_defun([_LT_PROG_ECHO_BACKSLASH], [_LT_SHELL_INIT([ # Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} case X$lt_ECHO in X*--fallback-echo) # Remove one level of quotation (which was required for Make). ECHO=`echo "$lt_ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` ;; esac ECHO=${lt_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 <<_LT_EOF [$]* _LT_EOF exit 0 fi # 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 if test -z "$lt_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 && { 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. lt_ECHO=$ECHO if test "X$lt_ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then lt_ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" fi AC_SUBST(lt_ECHO) ]) _LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) _LT_DECL([], [ECHO], [1], [An echo program that does not interpret backslashes]) ])# _LT_PROG_ECHO_BACKSLASH # _LT_ENABLE_LOCK # --------------- m4_defun([_LT_ENABLE_LOCK], [AC_ARG_ENABLE([libtool-lock], [AS_HELP_STRING([--disable-libtool-lock], [avoid locking (might break parallel builds)])]) test "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*|s390*-*tpf*|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*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, [AC_LANG_PUSH(C) AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) AC_LANG_POP]) if test 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" ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" ])# _LT_ENABLE_LOCK # _LT_CMD_OLD_ARCHIVE # ------------------- m4_defun([_LT_CMD_OLD_ARCHIVE], [AC_CHECK_TOOL(AR, ar, false) test -z "$AR" && AR=ar test -z "$AR_FLAGS" && AR_FLAGS=cru _LT_DECL([], [AR], [1], [The archiver]) _LT_DECL([], [AR_FLAGS], [1]) AC_CHECK_TOOL(STRIP, strip, :) test -z "$STRIP" && STRIP=: _LT_DECL([], [STRIP], [1], [A symbol stripping program]) AC_CHECK_TOOL(RANLIB, ranlib, :) test -z "$RANLIB" && RANLIB=: _LT_DECL([], [RANLIB], [1], [Commands used to install an old-style archive]) # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in 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_DECL([], [old_postinstall_cmds], [2]) _LT_DECL([], [old_postuninstall_cmds], [2]) _LT_TAGDECL([], [old_archive_cmds], [2], [Commands used to build an old-style archive]) ])# _LT_CMD_OLD_ARCHIVE # _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------------------- # Check whether the given compiler option works AC_DEFUN([_LT_COMPILER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$3" # 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 m4_if([$5], , :, [$5]) else m4_if([$6], , :, [$6]) fi ])# _LT_COMPILER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) # _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------- # Check whether the given linker option works AC_DEFUN([_LT_LINKER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $3" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&AS_MESSAGE_LOG_FD $ECHO "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 -r conftest* LDFLAGS="$save_LDFLAGS" ]) if test x"[$]$2" = xyes; then m4_if([$4], , :, [$4]) else m4_if([$5], , :, [$5]) fi ])# _LT_LINKER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) # LT_CMD_MAX_LEN #--------------- AC_DEFUN([LT_CMD_MAX_LEN], [AC_REQUIRE([AC_CANONICAL_HOST])dnl # find the maximum length of command line arguments AC_MSG_CHECKING([the maximum length of command line arguments]) AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; 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 # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8 ; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while { test "X"`$SHELL [$]0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ = "XX$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac ]) if test -n $lt_cv_sys_max_cmd_len ; then AC_MSG_RESULT($lt_cv_sys_max_cmd_len) else AC_MSG_RESULT(none) fi max_cmd_len=$lt_cv_sys_max_cmd_len _LT_DECL([], [max_cmd_len], [0], [What is the maximum length of a command?]) ])# LT_CMD_MAX_LEN # Old name: AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) # _LT_HEADER_DLFCN # ---------------- m4_defun([_LT_HEADER_DLFCN], [AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl ])# _LT_HEADER_DLFCN # _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, # ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) # ---------------------------------------------------------------- m4_defun([_LT_TRY_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test "$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 <<_LT_EOF [#line __oline__ "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif 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 ()); return status; }] _LT_EOF if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) $1 ;; x$lt_dlneed_uscore) $2 ;; x$lt_dlunknown|x*) $3 ;; esac else : # compilation failed $3 fi fi rm -fr conftest* ])# _LT_TRY_DLOPEN_SELF # LT_SYS_DLOPEN_SELF # ------------------ AC_DEFUN([LT_SYS_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test "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* | cegcc*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ]) ;; *) AC_CHECK_FUNC([shl_load], [lt_cv_dlopen="shl_load"], [AC_CHECK_LIB([dld], [shl_load], [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"], [AC_CHECK_FUNC([dlopen], [lt_cv_dlopen="dlopen"], [AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], [AC_CHECK_LIB([svld], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], [AC_CHECK_LIB([dld], [dld_link], [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"]) ]) ]) ]) ]) ]) ;; esac if test "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_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_TRY_DLOPEN_SELF( lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) ]) fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi _LT_DECL([dlopen_support], [enable_dlopen], [0], [Whether dlopen is supported]) _LT_DECL([dlopen_self], [enable_dlopen_self], [0], [Whether dlopen of programs is supported]) _LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], [Whether dlopen of statically linked programs is supported]) ])# LT_SYS_DLOPEN_SELF # Old name: AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) # _LT_COMPILER_C_O([TAGNAME]) # --------------------------- # Check to see if options -c and -o are simultaneously supported by compiler. # This macro does not hard code the compiler like AC_PROG_CC_C_O. m4_defun([_LT_COMPILER_C_O], [m4_require([_LT_DECL_SED])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:__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_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes fi fi chmod u+w . 2>&AS_MESSAGE_LOG_FD $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* ]) _LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], [Does compiler simultaneously support -c and -o options?]) ])# _LT_COMPILER_C_O # _LT_COMPILER_FILE_LOCKS([TAGNAME]) # ---------------------------------- # Check to see if we can do hard links to lock some files if needed m4_defun([_LT_COMPILER_FILE_LOCKS], [m4_require([_LT_ENABLE_LOCK])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_COMPILER_C_O([$1]) hard_links="nottested" if test "$_LT_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 _LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) ])# _LT_COMPILER_FILE_LOCKS # _LT_CHECK_OBJDIR # ---------------- m4_defun([_LT_CHECK_OBJDIR], [AC_CACHE_CHECK([for objdir], [lt_cv_objdir], [rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null]) objdir=$lt_cv_objdir _LT_DECL([], [objdir], [0], [The name of the directory that contains temporary libtool files])dnl m4_pattern_allow([LT_OBJDIR])dnl AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/", [Define to the sub-directory in which libtool stores uninstalled libraries.]) ])# _LT_CHECK_OBJDIR # _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) # -------------------------------------- # Check hardcoding attributes. m4_defun([_LT_LINKER_HARDCODE_LIBPATH], [AC_MSG_CHECKING([how to hardcode library paths into programs]) _LT_TAGVAR(hardcode_action, $1)= if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || test -n "$_LT_TAGVAR(runpath_var, $1)" || test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then # We can hardcode non-existent directories. if test "$_LT_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_TAGVAR(hardcode_shlibpath_var, $1)" != no && test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then # Linking always hardcodes the temporary library directory. _LT_TAGVAR(hardcode_action, $1)=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. _LT_TAGVAR(hardcode_action, $1)=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. _LT_TAGVAR(hardcode_action, $1)=unsupported fi AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) if test "$_LT_TAGVAR(hardcode_action, $1)" = relink || test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; 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 _LT_TAGDECL([], [hardcode_action], [0], [How to hardcode a shared library path into an executable]) ])# _LT_LINKER_HARDCODE_LIBPATH # _LT_CMD_STRIPLIB # ---------------- m4_defun([_LT_CMD_STRIPLIB], [m4_require([_LT_DECL_EGREP]) striplib= old_striplib= AC_MSG_CHECKING([whether stripping libraries is possible]) if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" AC_MSG_RESULT([yes]) else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" old_striplib="$STRIP -S" AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) fi ;; *) AC_MSG_RESULT([no]) ;; esac fi _LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) _LT_DECL([], [striplib], [1]) ])# _LT_CMD_STRIPLIB # _LT_SYS_DYNAMIC_LINKER([TAG]) # ----------------------------- # PORTME Fill in your ld.so characteristics m4_defun([_LT_SYS_DYNAMIC_LINKER], [AC_REQUIRE([AC_CANONICAL_HOST])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_OBJDUMP])dnl m4_require([_LT_DECL_SED])dnl AC_MSG_CHECKING([dynamic linker characteristics]) 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]) library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[[4-9]]*) version_type=linux 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*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$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' ;; esac ;; 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* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw* | cegcc*) # 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}${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 | kopensolaris*-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 # Some binutils ld are patched to set DT_RUNPATH save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], [shlibpath_overrides_runpath=yes])]) LDFLAGS=$save_LDFLAGS libdir=$save_libdir # 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=qnx need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd*) 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 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 shlibpath_overrides_runpath=yes 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' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux 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 if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi _LT_DECL([], [variables_saved_for_relink], [1], [Variables whose values should be saved in libtool wrapper scripts and restored at link time]) _LT_DECL([], [need_lib_prefix], [0], [Do we need the "lib" prefix for modules?]) _LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) _LT_DECL([], [version_type], [0], [Library versioning type]) _LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) _LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) _LT_DECL([], [shlibpath_overrides_runpath], [0], [Is shlibpath searched before the hard-coded library search path?]) _LT_DECL([], [libname_spec], [1], [Format of library name prefix]) _LT_DECL([], [library_names_spec], [1], [[List of archive names. First name is the real one, the rest are links. The last name is the one that the linker finds with -lNAME]]) _LT_DECL([], [soname_spec], [1], [[The coded name of the library, if different from the real name]]) _LT_DECL([], [postinstall_cmds], [2], [Command to use after installation of a shared archive]) _LT_DECL([], [postuninstall_cmds], [2], [Command to use after uninstallation of a shared archive]) _LT_DECL([], [finish_cmds], [2], [Commands used to finish a libtool library installation in a directory]) _LT_DECL([], [finish_eval], [1], [[As "finish_cmds", except a single script fragment to be evaled but not shown]]) _LT_DECL([], [hardcode_into_libs], [0], [Whether we should hardcode library paths into libraries]) _LT_DECL([], [sys_lib_search_path_spec], [2], [Compile-time system search path for libraries]) _LT_DECL([], [sys_lib_dlsearch_path_spec], [2], [Run-time system search path for libraries]) ])# _LT_SYS_DYNAMIC_LINKER # _LT_PATH_TOOL_PREFIX(TOOL) # -------------------------- # find a file program which can recognize shared library AC_DEFUN([_LT_PATH_TOOL_PREFIX], [m4_require([_LT_DECL_EGREP])dnl AC_MSG_CHECKING([for $1]) AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, [case $MAGIC_CMD in [[\\/*] | ?:[\\/]*]) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR dnl $ac_dummy forces splitting on constant user-supplied paths. dnl POSIX.2 word splitting is done only on the output of word expansions, dnl not every word. This closes a longstanding sh security hole. ac_dummy="m4_if([$2], , $PATH, [$2])" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$1; then lt_cv_path_MAGIC_CMD="$ac_dir/$1" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac]) MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then AC_MSG_RESULT($MAGIC_CMD) else AC_MSG_RESULT(no) fi _LT_DECL([], [MAGIC_CMD], [0], [Used to examine libraries when file_magic_cmd begins with "file"])dnl ])# _LT_PATH_TOOL_PREFIX # Old name: AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) # _LT_PATH_MAGIC # -------------- # find a file program which can recognize a shared library m4_defun([_LT_PATH_MAGIC], [_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) else MAGIC_CMD=: fi fi ])# _LT_PATH_MAGIC # LT_PATH_LD # ---------- # find the pathname to the GNU or non-GNU linker AC_DEFUN([LT_PATH_LD], [AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl AC_ARG_WITH([gnu-ld], [AS_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])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 ;; cegcc) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; 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 | kopensolaris*-gnu) lt_cv_deplibs_check_method=pass_all ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd*) 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 ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; 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 _LT_DECL([], [deplibs_check_method], [1], [Method to check whether dependent libraries are shared objects]) _LT_DECL([], [file_magic_cmd], [1], [Command to use when deplibs_check_method == "file_magic"]) ])# _LT_CHECK_MAGIC_METHOD # LT_PATH_NM # ---------- # find the pathname to a BSD- or MS-compatible name lister AC_DEFUN([LT_PATH_NM], [AC_REQUIRE([AC_PROG_CC])dnl AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, [if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file 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 : ${lt_cv_path_NM=no} fi]) if test "$lt_cv_path_NM" != "no"; then NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. AC_CHECK_TOOLS(DUMPBIN, ["dumpbin -symbols" "link -dump -symbols"], :) AC_SUBST([DUMPBIN]) if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" fi fi test -z "$NM" && NM=nm AC_SUBST([NM]) _LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], [lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:__oline__: $ac_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:__oline__: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:__oline__: output\"" >&AS_MESSAGE_LOG_FD) cat conftest.out >&AS_MESSAGE_LOG_FD if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest*]) ])# LT_PATH_NM # Old names: AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_PROG_NM], []) dnl AC_DEFUN([AC_PROG_NM], []) # LT_LIB_M # -------- # check for math library AC_DEFUN([LT_LIB_M], [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_SUBST([LIBM]) ])# LT_LIB_M # Old name: AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_CHECK_LIBM], []) # _LT_COMPILER_NO_RTTI([TAGNAME]) # ------------------------------- m4_defun([_LT_COMPILER_NO_RTTI], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= if test "$GCC" = yes; then _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], lt_cv_prog_compiler_rtti_exceptions, [-fno-rtti -fno-exceptions], [], [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) fi _LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], [Compiler flag to turn off builtin functions]) ])# _LT_COMPILER_NO_RTTI # _LT_CMD_GLOBAL_SYMBOLS # ---------------------- m4_defun([_LT_CMD_GLOBAL_SYMBOLS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([LT_PATH_NM])dnl AC_REQUIRE([LT_PATH_LD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_TAG_COMPILER])dnl # Check for command to grab the raw symbol name followed by C symbol from nm. AC_MSG_CHECKING([command to parse $NM output from $compiler object]) AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], [ # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[[BCDEGRST]]' # Regexp to match symbols that can be accessed directly from C. sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[[BCDT]]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[[ABCDGISTW]]' ;; hpux*) if test "$host_cpu" = ia64; then symcode='[[ABCDEGRST]]' fi ;; irix* | nonstopux*) symcode='[[BCDEGRST]]' ;; osf*) symcode='[[BCDEGQRST]]' ;; solaris*) symcode='[[BDRT]]' ;; sco3.2v5*) symcode='[[DT]]' ;; sysv4.2uw2*) symcode='[[DT]]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[[ABDT]]' ;; sysv4) symcode='[[DFNSTU]]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[[ABCDGIRSTW]]' ;; esac # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function # and D for any global variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK ['"\ " {last_section=section; section=\$ 3};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ " {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ " s[1]~/^[@?]/{print s[1], s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx]" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if AC_TRY_EVAL(ac_compile); then # Now try to grab the symbols. nlist=conftest.nm if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ const struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[[]] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_save_LIBS="$LIBS" lt_save_CFLAGS="$CFLAGS" LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS="$lt_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 -rf 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 _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], [Take the output of nm and produce a listing of raw symbols and C names]) _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], [Transform the output of nm in a proper C declaration]) _LT_DECL([global_symbol_to_c_name_address], [lt_cv_sys_global_symbol_to_c_name_address], [1], [Transform the output of nm in a C name address pair]) _LT_DECL([global_symbol_to_c_name_address_lib_prefix], [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], [Transform the output of nm in a C name address pair when lib prefix is needed]) ]) # _LT_CMD_GLOBAL_SYMBOLS # _LT_COMPILER_PIC([TAGNAME]) # --------------------------- m4_defun([_LT_COMPILER_PIC], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_wl, $1)= _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)= AC_MSG_CHECKING([for $compiler option to produce PIC]) m4_if([$1], [CXX], [ # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac else case $host_os in aix[[4-9]]*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; dgux*) case $cc_basename in ec++*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; ghcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; freebsd* | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' if test "$host_cpu" != ia64; then _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' fi ;; aCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in KCC*) # KAI C++ Compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; ecpc* ) # old Intel C++ for x86_64 which still supported -KPIC. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; icpc* ) # Intel C++, used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; pgCC* | pgcpp*) # Portland Group C++ compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xlc* | xlC*) # IBM XL 8.0 on PPC _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; esac ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' ;; *) ;; esac ;; netbsd* | netbsdelf*-gnu) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; cxx*) # Digital/Compaq C++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; lcc*) # Lucid _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; *) ;; esac ;; vxworks*) ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ], [ if test "$GCC" = yes; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; hpux9* | hpux10* | hpux11*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC (with -KPIC) is the default. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # Lahey Fortran 8.1. lf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; ccc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All Alpha code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xl*) # IBM XL C 8.0/Fortran 10.1 on PPC _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ;; *Sun\ F*) # Sun Fortran 8.3 passes all unrecognized flags to the linker _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='' ;; esac ;; esac ;; newsos6) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All OSF/1 code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; rdos*) _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; solaris*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' case $cc_basename in f77* | f90* | f95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; *) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; esac ;; sunos4*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; unicos*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; uts4*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ]) case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" ;; esac AC_MSG_RESULT([$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) _LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], [How to pass a linker flag through the compiler]) # # Check to make sure the PIC flag actually works. # if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in "" | " "*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; esac], [_LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) fi _LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], [Additional compiler flags for building library objects]) # # Check to make sure the static flag actually works. # wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" _LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), $lt_tmp_static_flag, [], [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) _LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], [Compiler flag to prevent dynamic linking]) ])# _LT_COMPILER_PIC # _LT_LINKER_SHLIBS([TAGNAME]) # ---------------------------- # See if the linker supports building shared libraries. m4_defun([_LT_LINKER_SHLIBS], [AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) m4_if([$1], [CXX], [ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' case $host_os in aix[[4-9]]*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_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_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" ;; cygwin* | mingw* | cegcc*) _LT_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_TAGVAR(link_all_deplibs, $1)=no ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] ], [ runpath_var= _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_cmds, $1)= _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(old_archive_from_new_cmds, $1)= _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= _LT_TAGVAR(thread_safe_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list _LT_TAGVAR(include_expsyms, $1)= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. dnl Note also adjust exclude_expsyms for C++ above. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$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 ;; linux* | k*bsd*-gnu) _LT_TAGVAR(link_all_deplibs, $1)=no ;; esac _LT_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_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi supports_anon_versioning=no case `$LD -v 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[[3-9]]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&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. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_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_TAGVAR(ld_shlibs, $1)=no fi ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test "$host_os" = linux-dietlibc; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then tmp_addflag= tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $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' ;; lf95*) # Lahey Fortran 8.1 _LT_TAGVAR(whole_archive_flag_spec, $1)= tmp_sharedflag='--shared' ;; xl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi case $cc_basename in xlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 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 ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; sunos4*) _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then runpath_var= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. _LT_TAGVAR(hardcode_minus_L, $1)=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. _LT_TAGVAR(hardcode_direct, $1)=unsupported fi ;; aix[[4-9]]*) if test "$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_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_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]].*|aix[[5-9]]*) 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_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' 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_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi _LT_TAGVAR(link_all_deplibs, $1)=no 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 _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. _LT_TAGVAR(always_export_symbols, $1)=yes if test "$aix_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_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared libraries. _LT_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*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; bsdi[[45]]*) _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' # FIXME: Should let the user specify the lib program. _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' _LT_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; freebsd1*) _LT_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_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; hpux9*) if test "$GCC" = yes; then _LT_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_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_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_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_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" AC_LINK_IFELSE(int foo(void) {}, _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' ) LDFLAGS="$save_LDFLAGS" else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes _LT_TAGVAR(link_all_deplibs, $1)=yes ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; newsos6) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' else case $host_os in openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' ;; esac fi else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; os2*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_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_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; solaris*) _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='${wl}' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' fi ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes ;; sunos4*) if test "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_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4) case $host_vendor in sni) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' _LT_TAGVAR(hardcode_direct, $1)=no ;; motorola) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4.3*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes _LT_TAGVAR(ld_shlibs, $1)=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We 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_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(ld_shlibs, $1)=no ;; esac if test x$host_vendor = xsni; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym' ;; esac fi fi ]) AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld _LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl _LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl _LT_DECL([], [extract_expsyms_cmds], [2], [The commands to extract the exported symbol list from a shared archive]) # # Do we need to explicitly link libc? # case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in x|xyes) # Assume -lc should be added _LT_TAGVAR(archive_cmds_need_lc, $1)=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $_LT_TAGVAR(archive_cmds, $1) in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. AC_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_TAGVAR(lt_prog_compiler_wl, $1) pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) _LT_TAGVAR(allow_undefined_flag, $1)= if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) then _LT_TAGVAR(archive_cmds_need_lc, $1)=no else _LT_TAGVAR(archive_cmds_need_lc, $1)=yes fi _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* AC_MSG_RESULT([$_LT_TAGVAR(archive_cmds_need_lc, $1)]) ;; esac fi ;; esac _LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], [Whether or not to add -lc for building shared libraries]) _LT_TAGDECL([allow_libtool_libs_with_static_runtimes], [enable_shared_with_static_runtimes], [0], [Whether or not to disallow shared libs when runtime libs are static]) _LT_TAGDECL([], [export_dynamic_flag_spec], [1], [Compiler flag to allow reflexive dlopens]) _LT_TAGDECL([], [whole_archive_flag_spec], [1], [Compiler flag to generate shared objects directly from archives]) _LT_TAGDECL([], [compiler_needs_object], [1], [Whether the compiler copes with passing no objects directly]) _LT_TAGDECL([], [old_archive_from_new_cmds], [2], [Create an old-style archive from a shared archive]) _LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], [Create a temporary old-style archive to link instead of a shared archive]) _LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) _LT_TAGDECL([], [archive_expsym_cmds], [2]) _LT_TAGDECL([], [module_cmds], [2], [Commands used to build a loadable module if different from building a shared archive.]) _LT_TAGDECL([], [module_expsym_cmds], [2]) _LT_TAGDECL([], [with_gnu_ld], [1], [Whether we are building with GNU ld or not]) _LT_TAGDECL([], [allow_undefined_flag], [1], [Flag that allows shared libraries with undefined symbols to be built]) _LT_TAGDECL([], [no_undefined_flag], [1], [Flag that enforces no undefined symbols]) _LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], [Flag to hardcode $libdir into a binary during linking. This must work even if $libdir does not exist]) _LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [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]]) _LT_TAGDECL([], [hardcode_libdir_separator], [1], [Whether we need a single "-rpath" flag with a separated argument]) _LT_TAGDECL([], [hardcode_direct], [0], [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_direct_absolute], [0], [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the resulting binary and the resulting library dependency is "absolute", i.e impossible to change by setting ${shlibpath_var} if the library is relocated]) _LT_TAGDECL([], [hardcode_minus_L], [0], [Set to "yes" if using the -LDIR flag during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_shlibpath_var], [0], [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_automatic], [0], [Set to "yes" if building a shared library automatically hardcodes DIR into the library and all subsequent libraries and executables linked against it]) _LT_TAGDECL([], [inherit_rpath], [0], [Set to yes if linker adds runtime paths of dependent libraries to runtime path list]) _LT_TAGDECL([], [link_all_deplibs], [0], [Whether libtool must link a program against all its dependency libraries]) _LT_TAGDECL([], [fix_srcfile_path], [1], [Fix the shell variable $srcfile for the compiler]) _LT_TAGDECL([], [always_export_symbols], [0], [Set to "yes" if exported symbols are required]) _LT_TAGDECL([], [export_symbols_cmds], [2], [The commands to list exported symbols]) _LT_TAGDECL([], [exclude_expsyms], [1], [Symbols that should not be listed in the preloaded symbols]) _LT_TAGDECL([], [include_expsyms], [1], [Symbols that must always be exported]) _LT_TAGDECL([], [prelink_cmds], [2], [Commands necessary for linking programs (against libraries) with templates]) _LT_TAGDECL([], [file_list_spec], [1], [Specify filename containing input files]) dnl FIXME: Not yet implemented dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], dnl [Compiler flag to generate thread safe objects]) ])# _LT_LINKER_SHLIBS # _LT_LANG_C_CONFIG([TAG]) # ------------------------ # Ensure that the configuration variables for a C compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to `libtool'. m4_defun([_LT_LANG_C_CONFIG], [m4_require([_LT_DECL_EGREP])dnl lt_save_CC="$CC" AC_LANG_PUSH(C) # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' _LT_TAG_COMPILER # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) LT_SYS_DLOPEN_SELF _LT_CMD_STRIPLIB # Report 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 ;; aix[[4-9]]*) 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_CONFIG($1) fi AC_LANG_POP CC="$lt_save_CC" ])# _LT_LANG_C_CONFIG # _LT_PROG_CXX # ------------ # Since AC_PROG_CXX is broken, in that it returns g++ if there is no c++ # compiler, we have our own version here. m4_defun([_LT_PROG_CXX], [ pushdef([AC_MSG_ERROR], [_lt_caught_CXX_error=yes]) 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 else _lt_caught_CXX_error=yes fi popdef([AC_MSG_ERROR]) ])# _LT_PROG_CXX dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([_LT_PROG_CXX], []) # _LT_LANG_CXX_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a C++ compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to `libtool'. m4_defun([_LT_LANG_CXX_CONFIG], [AC_REQUIRE([_LT_PROG_CXX])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl AC_LANG_PUSH(C++) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the CXX compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_caught_CXX_error" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_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_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then # We don't want -fno-exception when compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' else _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration LT_PATH_LD # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_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_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='${wl}' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) _LT_TAGVAR(ld_shlibs, $1)=yes case $host_os in aix3*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aix[[4-9]]*) if test "$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]].*|aix[[5-9]]*) 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_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' 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_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi esac shared_flag='-shared' if test "$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 _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to # export. _LT_TAGVAR(always_export_symbols, $1)=yes if test "$aix_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_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an empty # executable. _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared # libraries. _LT_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_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_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_TAGVAR(ld_shlibs, $1)=no fi ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; freebsd[[12]]*) # C++ shared libraries reported to be fairly broken before # switch to ELF _LT_TAGVAR(ld_shlibs, $1)=no ;; freebsd-elf*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; freebsd* | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions _LT_TAGVAR(ld_shlibs, $1)=yes ;; gnu*) ;; hpux9*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes; then _LT_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_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) ;; *) _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_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_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib' fi fi _LT_TAGVAR(link_all_deplibs, $1)=yes ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc* | ecpc* ) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; esac _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in *pgCC\ [[1-5]]* | *pgcpp\ [[1-5]]*) _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ $RANLIB $oldlib' _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; *) # Version 6 will use weak symbols _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`$ECHO "X$templist" | $Xsed -e "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 "X$list" | $Xsed' ;; xl*) # IBM XL 8.0 on PPC, with GNU ld _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. output_verbose_link_cmd='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_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; esac ;; esac ;; lynxos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; m88k*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; *nto* | *qnx*) _LT_TAGVAR(ld_shlibs, $1)=yes ;; openbsd2*) # C++ shared libraries are fairly broken _LT_TAGVAR(ld_shlibs, $1)=no ;; openbsd*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi output_verbose_link_cmd=echo else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Archives containing C++ object files must be created using # the KAI C++ compiler. case $host in osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; esac ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; cxx*) case $host in osf3*) _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' ;; *) _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~ $RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' ;; esac _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`$ECHO "X$templist" | $Xsed -e "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 "X$list" | $Xsed' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' case $host in osf3*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; *) _LT_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" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(archive_cmds_need_lc,$1)=yes _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. # Supported since Solaris 2.6 (maybe 2.5.1?) _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes output_verbose_link_cmd='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_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared -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_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib ${wl}-M $wl$lib.exp -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_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ;; esac fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We 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_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_TAGVAR(GCC, $1)="$GXX" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" CC=$lt_save_CC LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld fi # test "$_lt_caught_CXX_error" != yes AC_LANG_POP ])# _LT_LANG_CXX_CONFIG # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) # --------------------------------- # Figure out "hidden" library dependencies from verbose # compiler output when linking a shared library. # Parse the compiler output and extract the necessary # objects, libraries and library flags. m4_defun([_LT_SYS_HIDDEN_LIBDEPS], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl # Dependencies to place before and after the object being linked: _LT_TAGVAR(predep_objects, $1)= _LT_TAGVAR(postdep_objects, $1)= _LT_TAGVAR(predeps, $1)= _LT_TAGVAR(postdeps, $1)= _LT_TAGVAR(compiler_lib_search_path, $1)= dnl we can't use the lt_simple_compile_test_code here, dnl because it contains code intended for an executable, dnl not a library. It's possible we should let each dnl tag define a new lt_????_link_test_code variable, dnl but it's only used here... m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF int a; void foo (void) { a = 0; } _LT_EOF ], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF class Foo { public: Foo (void) { a = 0; } private: int a; }; _LT_EOF ], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer*4 a a=0 return end _LT_EOF ], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer a a=0 return end _LT_EOF ], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF public class foo { private int a; public void bar (void) { a = 0; } }; _LT_EOF ]) dnl Parse the compiler output and extract the necessary dnl objects, libraries and library flags. if AC_TRY_EVAL(ac_compile); then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do case $p in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test $p = "-L" || test $p = "-R"; then prev=$p continue else prev= fi if test "$pre_test_object_deps_done" = no; then case $p in -L* | -R*) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}" else _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$_LT_TAGVAR(postdeps, $1)"; then _LT_TAGVAR(postdeps, $1)="${prev}${p}" else _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" fi fi ;; *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test "$pre_test_object_deps_done" = no; then if test -z "$_LT_TAGVAR(predep_objects, $1)"; then _LT_TAGVAR(predep_objects, $1)="$p" else _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" fi else if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then _LT_TAGVAR(postdep_objects, $1)="$p" else _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling $1 test program" fi $RM -f confest.$objext # PORTME: override above test on systems where it is broken m4_if([$1], [CXX], [case $host_os in interix[[3-9]]*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. _LT_TAGVAR(predep_objects,$1)= _LT_TAGVAR(postdep_objects,$1)= _LT_TAGVAR(postdeps,$1)= ;; linux*) case `$CC -V 2>&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_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_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; esac ;; esac ]) case " $_LT_TAGVAR(postdeps, $1) " in *" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; esac _LT_TAGVAR(compiler_lib_search_dirs, $1)= if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` fi _LT_TAGDECL([], [compiler_lib_search_dirs], [1], [The directories searched by this compiler when creating a shared library]) _LT_TAGDECL([], [predep_objects], [1], [Dependencies to place before and after the objects being linked to create a shared library]) _LT_TAGDECL([], [postdep_objects], [1]) _LT_TAGDECL([], [predeps], [1]) _LT_TAGDECL([], [postdeps], [1]) _LT_TAGDECL([], [compiler_lib_search_path], [1], [The library search path used internally by the compiler when linking a shared library]) ])# _LT_SYS_HIDDEN_LIBDEPS # _LT_PROG_F77 # ------------ # Since AC_PROG_F77 is broken, in that it returns the empty string # if there is no fortran compiler, we have our own version here. m4_defun([_LT_PROG_F77], [ pushdef([AC_MSG_ERROR], [_lt_disable_F77=yes]) AC_PROG_F77 if test -z "$F77" || test "X$F77" = "Xno"; then _lt_disable_F77=yes fi popdef([AC_MSG_ERROR]) ])# _LT_PROG_F77 dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([_LT_PROG_F77], []) # _LT_LANG_F77_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a Fortran 77 compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_F77_CONFIG], [AC_REQUIRE([_LT_PROG_F77])dnl AC_LANG_PUSH(Fortran 77) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for f77 test sources. ac_ext=f # Object file extension for compiled f77 test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the F77 compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_disable_F77" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC CC=${F77-"f77"} compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) GCC=$G77 if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$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 ;; aix[[4-9]]*) 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_TAGVAR(GCC, $1)="$G77" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC="$lt_save_CC" fi # test "$_lt_disable_F77" != yes AC_LANG_POP ])# _LT_LANG_F77_CONFIG # _LT_PROG_FC # ----------- # Since AC_PROG_FC is broken, in that it returns the empty string # if there is no fortran compiler, we have our own version here. m4_defun([_LT_PROG_FC], [ pushdef([AC_MSG_ERROR], [_lt_disable_FC=yes]) AC_PROG_FC if test -z "$FC" || test "X$FC" = "Xno"; then _lt_disable_FC=yes fi popdef([AC_MSG_ERROR]) ])# _LT_PROG_FC dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([_LT_PROG_FC], []) # _LT_LANG_FC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for a Fortran compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_FC_CONFIG], [AC_REQUIRE([_LT_PROG_FC])dnl AC_LANG_PUSH(Fortran) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for fc test sources. ac_ext=${ac_fc_srcext-f} # Object file extension for compiled fc test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the FC compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_disable_FC" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC CC=${FC-"f95"} compiler=$CC GCC=$ac_cv_fc_compiler_gnu _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$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 ;; aix[[4-9]]*) 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_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC="$lt_save_CC" fi # test "$_lt_disable_FC" != yes AC_LANG_POP ])# _LT_LANG_FC_CONFIG # _LT_LANG_GCJ_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for the GNU Java Compiler compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_GCJ_CONFIG], [AC_REQUIRE([LT_PROG_GCJ])dnl AC_LANG_SAVE # Source file extension for Java test sources. ac_ext=java # Object file extension for compiled Java test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="class foo {}" # Code to be used in simple link tests lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC GCC=yes CC=${GCJ-"gcj"} compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)="$LD" _LT_CC_BASENAME([$compiler]) # GCJ did not exist at the time GCC didn't implicitly link libc in. _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi AC_LANG_RESTORE GCC=$lt_save_GCC CC="$lt_save_CC" ])# _LT_LANG_GCJ_CONFIG # _LT_LANG_RC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for the Windows resource compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_RC_CONFIG], [AC_REQUIRE([LT_PROG_RC])dnl AC_LANG_SAVE # Source file extension for RC test sources. ac_ext=rc # Object file extension for compiled RC test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' # Code to be used in simple link tests lt_simple_link_test_code="$lt_simple_compile_test_code" # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC GCC= CC=${RC-"windres"} compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes if test -n "$compiler"; then : _LT_CONFIG($1) fi GCC=$lt_save_GCC AC_LANG_RESTORE CC="$lt_save_CC" ])# _LT_LANG_RC_CONFIG # LT_PROG_GCJ # ----------- AC_DEFUN([LT_PROG_GCJ], [m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], [AC_CHECK_TOOL(GCJ, gcj,) test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" AC_SUBST(GCJFLAGS)])])[]dnl ]) # Old name: AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_GCJ], []) # LT_PROG_RC # ---------- AC_DEFUN([LT_PROG_RC], [AC_CHECK_TOOL(RC, windres,) ]) # Old name: AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_RC], []) # _LT_DECL_EGREP # -------------- # If we don't have a new enough Autoconf to choose the best grep # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_EGREP], [AC_REQUIRE([AC_PROG_EGREP])dnl AC_REQUIRE([AC_PROG_FGREP])dnl test -z "$GREP" && GREP=grep _LT_DECL([], [GREP], [1], [A grep program that handles long lines]) _LT_DECL([], [EGREP], [1], [An ERE matcher]) _LT_DECL([], [FGREP], [1], [A literal string matcher]) dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too AC_SUBST([GREP]) ]) # _LT_DECL_OBJDUMP # -------------- # If we don't have a new enough Autoconf to choose the best objdump # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_OBJDUMP], [AC_CHECK_TOOL(OBJDUMP, objdump, false) test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) AC_SUBST([OBJDUMP]) ]) # _LT_DECL_SED # ------------ # Check for a fully-functional sed program, that truncates # as few characters as possible. Prefer GNU sed if found. m4_defun([_LT_DECL_SED], [AC_PROG_SED test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" _LT_DECL([], [SED], [1], [A sed program that does not truncate output]) _LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], [Sed that helps us avoid accidentally triggering echo(1) options like -n]) ])# _LT_DECL_SED m4_ifndef([AC_PROG_SED], [ # NOTE: This macro has been submitted for inclusion into # # GNU Autoconf as AC_PROG_SED. When it is available in # # a released version of Autoconf we should remove this # # macro and use it instead. # m4_defun([AC_PROG_SED], [AC_MSG_CHECKING([for a sed that does not truncate output]) AC_CACHE_VAL(lt_cv_path_SED, [# Loop through the user's path and test for sed and gsed. # Then use that list of sed's as ones to test for truncation. as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for lt_ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" fi done done done IFS=$as_save_IFS lt_ac_max=0 lt_ac_count=0 # Add /usr/xpg4/bin/sed as it is typically found on Solaris # along with /bin/sed that truncates output. for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do test ! -f $lt_ac_sed && continue cat /dev/null > conftest.in lt_ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >conftest.in # Check for GNU sed and select it if it is found. if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then lt_cv_path_SED=$lt_ac_sed break fi while true; do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo >>conftest.nl $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break cmp -s conftest.out conftest.nl || break # 10000 chars as input seems more than enough test $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]) ])#AC_PROG_SED ])#m4_ifndef # Old name: AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_SED], []) # _LT_CHECK_SHELL_FEATURES # ------------------------ # Find out whether the shell is Bourne or XSI compatible, # or has some other useful features. m4_defun([_LT_CHECK_SHELL_FEATURES], [AC_MSG_CHECKING([whether the shell understands some XSI constructs]) # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ = c,a/b,, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes AC_MSG_RESULT([$xsi_shell]) _LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell']) AC_MSG_CHECKING([whether the shell understands "+="]) lt_shell_append=no ( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \ >/dev/null 2>&1 \ && lt_shell_append=yes AC_MSG_RESULT([$lt_shell_append]) _LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append']) if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi _LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac _LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl _LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl ])# _LT_CHECK_SHELL_FEATURES # _LT_PROG_XSI_SHELLFNS # --------------------- # Bourne and XSI compatible variants of some useful shell functions. m4_defun([_LT_PROG_XSI_SHELLFNS], [case $xsi_shell in yes) cat << \_LT_EOF >> "$cfgfile" # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac } # func_basename file func_basename () { func_basename_result="${1##*/}" } # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac func_basename_result="${1##*/}" } # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). func_stripname () { # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are # positional parameters, so assign one to ordinary parameter first. func_stripname_result=${3} func_stripname_result=${func_stripname_result#"${1}"} func_stripname_result=${func_stripname_result%"${2}"} } # func_opt_split func_opt_split () { func_opt_split_opt=${1%%=*} func_opt_split_arg=${1#*=} } # func_lo2o object func_lo2o () { case ${1} in *.lo) func_lo2o_result=${1%.lo}.${objext} ;; *) func_lo2o_result=${1} ;; esac } # func_xform libobj-or-source func_xform () { func_xform_result=${1%.*}.lo } # func_arith arithmetic-term... func_arith () { func_arith_result=$(( $[*] )) } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=${#1} } _LT_EOF ;; *) # Bourne compatible functions. cat << \_LT_EOF >> "$cfgfile" # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi } # func_basename file func_basename () { func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` } dnl func_dirname_and_basename dnl A portable version of this function is already defined in general.m4sh dnl so there is no need for it here. # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # func_strip_suffix prefix name func_stripname () { case ${2} in .*) func_stripname_result=`$ECHO "X${3}" \ | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "X${3}" \ | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; esac } # sed scripts: my_sed_long_opt='1s/^\(-[[^=]]*\)=.*/\1/;q' my_sed_long_arg='1s/^-[[^=]]*=//' # func_opt_split func_opt_split () { func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` } # func_lo2o object func_lo2o () { func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` } # func_xform libobj-or-source func_xform () { func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[[^.]]*$/.lo/'` } # func_arith arithmetic-term... func_arith () { func_arith_result=`expr "$[@]"` } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len` } _LT_EOF esac case $lt_shell_append in yes) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$[1]+=\$[2]" } _LT_EOF ;; *) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$[1]=\$$[1]\$[2]" } _LT_EOF ;; esac ]) # Helper functions for option handling. -*- Autoconf -*- # # Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 6 ltoptions.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) # _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) # ------------------------------------------ m4_define([_LT_MANGLE_OPTION], [[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) # _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) # --------------------------------------- # Set option OPTION-NAME for macro MACRO-NAME, and if there is a # matching handler defined, dispatch to it. Other OPTION-NAMEs are # saved as a flag. m4_define([_LT_SET_OPTION], [m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), _LT_MANGLE_DEFUN([$1], [$2]), [m4_warning([Unknown $1 option `$2'])])[]dnl ]) # _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) # ------------------------------------------------------------ # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. m4_define([_LT_IF_OPTION], [m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) # _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) # ------------------------------------------------------- # Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME # are set. m4_define([_LT_UNLESS_OPTIONS], [m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), [m4_define([$0_found])])])[]dnl m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 ])[]dnl ]) # _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) # ---------------------------------------- # OPTION-LIST is a space-separated list of Libtool options associated # with MACRO-NAME. If any OPTION has a matching handler declared with # LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about # the unknown option and exit. m4_defun([_LT_SET_OPTIONS], [# Set options m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [_LT_SET_OPTION([$1], _LT_Option)]) m4_if([$1],[LT_INIT],[ dnl dnl Simply set some default values (i.e off) if boolean options were not dnl specified: _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no ]) _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no ]) dnl dnl If no reference was made to various pairs of opposing options, then dnl we run the default mode handler for the pair. For example, if neither dnl `shared' nor `disable-shared' was passed, we enable building of shared dnl archives by default: _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], [_LT_ENABLE_FAST_INSTALL]) ]) ])# _LT_SET_OPTIONS # _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) # ----------------------------------------- m4_define([_LT_MANGLE_DEFUN], [[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) # LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) # ----------------------------------------------- m4_define([LT_OPTION_DEFINE], [m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl ])# LT_OPTION_DEFINE # dlopen # ------ LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes ]) AU_DEFUN([AC_LIBTOOL_DLOPEN], [_LT_SET_OPTION([LT_INIT], [dlopen]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `dlopen' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) # win32-dll # --------- # Declare package support for building win32 dll's. LT_OPTION_DEFINE([LT_INIT], [win32-dll], [enable_win32_dll=yes case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*) AC_CHECK_TOOL(AS, as, false) AC_CHECK_TOOL(DLLTOOL, dlltool, false) AC_CHECK_TOOL(OBJDUMP, objdump, false) ;; esac test -z "$AS" && AS=as _LT_DECL([], [AS], [0], [Assembler program])dnl test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [0], [DLL creation program])dnl test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [0], [Object dumper program])dnl ])# win32-dll AU_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_REQUIRE([AC_CANONICAL_HOST])dnl _LT_SET_OPTION([LT_INIT], [win32-dll]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `win32-dll' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) # _LT_ENABLE_SHARED([DEFAULT]) # ---------------------------- # implement the --enable-shared flag, and supports the `shared' and # `disable-shared' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_SHARED], [m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([shared], [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) _LT_DECL([build_libtool_libs], [enable_shared], [0], [Whether or not to build shared libraries]) ])# _LT_ENABLE_SHARED LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) # Old names: AC_DEFUN([AC_ENABLE_SHARED], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) ]) AC_DEFUN([AC_DISABLE_SHARED], [_LT_SET_OPTION([LT_INIT], [disable-shared]) ]) AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_SHARED], []) dnl AC_DEFUN([AM_DISABLE_SHARED], []) # _LT_ENABLE_STATIC([DEFAULT]) # ---------------------------- # implement the --enable-static flag, and support the `static' and # `disable-static' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_STATIC], [m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([static], [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_static=]_LT_ENABLE_STATIC_DEFAULT) _LT_DECL([build_old_libs], [enable_static], [0], [Whether or not to build static libraries]) ])# _LT_ENABLE_STATIC LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) # Old names: AC_DEFUN([AC_ENABLE_STATIC], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) ]) AC_DEFUN([AC_DISABLE_STATIC], [_LT_SET_OPTION([LT_INIT], [disable-static]) ]) AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_STATIC], []) dnl AC_DEFUN([AM_DISABLE_STATIC], []) # _LT_ENABLE_FAST_INSTALL([DEFAULT]) # ---------------------------------- # implement the --enable-fast-install flag, and support the `fast-install' # and `disable-fast-install' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_FAST_INSTALL], [m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([fast-install], [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) _LT_DECL([fast_install], [enable_fast_install], [0], [Whether or not to optimize for fast installation])dnl ])# _LT_ENABLE_FAST_INSTALL LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) # Old names: AU_DEFUN([AC_ENABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `fast-install' option into LT_INIT's first parameter.]) ]) AU_DEFUN([AC_DISABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], [disable-fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `disable-fast-install' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) # _LT_WITH_PIC([MODE]) # -------------------- # implement the --with-pic flag, and support the `pic-only' and `no-pic' # LT_INIT options. # MODE is either `yes' or `no'. If omitted, it defaults to `both'. m4_define([_LT_WITH_PIC], [AC_ARG_WITH([pic], [AS_HELP_STRING([--with-pic], [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], [pic_mode="$withval"], [pic_mode=default]) test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) _LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl ])# _LT_WITH_PIC LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) # Old name: AU_DEFUN([AC_LIBTOOL_PICMODE], [_LT_SET_OPTION([LT_INIT], [pic-only]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `pic-only' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) m4_define([_LTDL_MODE], []) LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], [m4_define([_LTDL_MODE], [nonrecursive])]) LT_OPTION_DEFINE([LTDL_INIT], [recursive], [m4_define([_LTDL_MODE], [recursive])]) LT_OPTION_DEFINE([LTDL_INIT], [subproject], [m4_define([_LTDL_MODE], [subproject])]) m4_define([_LTDL_TYPE], []) LT_OPTION_DEFINE([LTDL_INIT], [installable], [m4_define([_LTDL_TYPE], [installable])]) LT_OPTION_DEFINE([LTDL_INIT], [convenience], [m4_define([_LTDL_TYPE], [convenience])]) # ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- # # Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 6 ltsugar.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) # lt_join(SEP, ARG1, [ARG2...]) # ----------------------------- # Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their # associated separator. # Needed until we can rely on m4_join from Autoconf 2.62, since all earlier # versions in m4sugar had bugs. m4_define([lt_join], [m4_if([$#], [1], [], [$#], [2], [[$2]], [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) m4_define([_lt_join], [m4_if([$#$2], [2], [], [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) # lt_car(LIST) # lt_cdr(LIST) # ------------ # Manipulate m4 lists. # These macros are necessary as long as will still need to support # Autoconf-2.59 which quotes differently. m4_define([lt_car], [[$1]]) m4_define([lt_cdr], [m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], [$#], 1, [], [m4_dquote(m4_shift($@))])]) m4_define([lt_unquote], $1) # lt_append(MACRO-NAME, STRING, [SEPARATOR]) # ------------------------------------------ # Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'. # Note that neither SEPARATOR nor STRING are expanded; they are appended # to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). # No SEPARATOR is output if MACRO-NAME was previously undefined (different # than defined and empty). # # This macro is needed until we can rely on Autoconf 2.62, since earlier # versions of m4sugar mistakenly expanded SEPARATOR but not STRING. m4_define([lt_append], [m4_define([$1], m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) # lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) # ---------------------------------------------------------- # Produce a SEP delimited list of all paired combinations of elements of # PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list # has the form PREFIXmINFIXSUFFIXn. # Needed until we can rely on m4_combine added in Autoconf 2.62. m4_define([lt_combine], [m4_if(m4_eval([$# > 3]), [1], [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl [[m4_foreach([_Lt_prefix], [$2], [m4_foreach([_Lt_suffix], ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) # lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) # ----------------------------------------------------------------------- # Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited # by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. m4_define([lt_if_append_uniq], [m4_ifdef([$1], [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], [lt_append([$1], [$2], [$3])$4], [$5])], [lt_append([$1], [$2], [$3])$4])]) # lt_dict_add(DICT, KEY, VALUE) # ----------------------------- m4_define([lt_dict_add], [m4_define([$1($2)], [$3])]) # lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) # -------------------------------------------- m4_define([lt_dict_add_subkey], [m4_define([$1($2:$3)], [$4])]) # lt_dict_fetch(DICT, KEY, [SUBKEY]) # ---------------------------------- m4_define([lt_dict_fetch], [m4_ifval([$3], m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) # lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) # ----------------------------------------------------------------- m4_define([lt_if_dict_fetch], [m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], [$5], [$6])]) # lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) # -------------------------------------------------------------- m4_define([lt_dict_filter], [m4_if([$5], [], [], [lt_join(m4_quote(m4_default([$4], [[, ]])), lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl ]) # ltversion.m4 -- version numbers -*- Autoconf -*- # # Copyright (C) 2004 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # Generated from ltversion.in. # serial 3017 ltversion.m4 # This file is part of GNU Libtool m4_define([LT_PACKAGE_VERSION], [2.2.6b]) m4_define([LT_PACKAGE_REVISION], [1.3017]) AC_DEFUN([LTVERSION_VERSION], [macro_version='2.2.6b' macro_revision='1.3017' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) # lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- # # Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004. # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 4 lt~obsolete.m4 # These exist entirely to fool aclocal when bootstrapping libtool. # # In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN) # which have later been changed to m4_define as they aren't part of the # exported API, or moved to Autoconf or Automake where they belong. # # The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN # in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us # using a macro with the same name in our local m4/libtool.m4 it'll # pull the old libtool.m4 in (it doesn't see our shiny new m4_define # and doesn't know about Autoconf macros at all.) # # So we provide this file, which has a silly filename so it's always # included after everything else. This provides aclocal with the # AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything # because those macros already exist, or will be overwritten later. # We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. # # Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. # Yes, that means every name once taken will need to remain here until # we give up compatibility with versions before 1.7, at which point # we need to keep only those names which we still refer to. # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) m4_ifndef([AC_LIBTOOL_RC], [AC_DEFUN([AC_LIBTOOL_RC])]) m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) # nls.m4 serial 3 (gettext-0.15) dnl Copyright (C) 1995-2003, 2005-2006 Free Software Foundation, Inc. dnl This file 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 dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1995-2000. dnl Bruno Haible , 2000-2003. AC_PREREQ(2.50) AC_DEFUN([AM_NLS], [ AC_MSG_CHECKING([whether NLS is requested]) dnl Default is enabled NLS AC_ARG_ENABLE(nls, [ --disable-nls do not use Native Language Support], USE_NLS=$enableval, USE_NLS=yes) AC_MSG_RESULT($USE_NLS) AC_SUBST(USE_NLS) ]) # pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- # # Copyright © 2004 Scott James Remnant . # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # PKG_PROG_PKG_CONFIG([MIN-VERSION]) # ---------------------------------- AC_DEFUN([PKG_PROG_PKG_CONFIG], [m4_pattern_forbid([^_?PKG_[A-Z_]+$]) m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) fi if test -n "$PKG_CONFIG"; then _pkg_min_version=m4_default([$1], [0.9.0]) AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) PKG_CONFIG="" fi fi[]dnl ])# PKG_PROG_PKG_CONFIG # PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) # # Check to see whether a particular set of modules exists. Similar # to PKG_CHECK_MODULES(), but does not set variables or print errors. # # # Similar to PKG_CHECK_MODULES, make sure that the first instance of # this or PKG_CHECK_MODULES is called, or make sure to call # PKG_CHECK_EXISTS manually # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_EXISTS], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl if test -n "$PKG_CONFIG" && \ AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then m4_ifval([$2], [$2], [:]) m4_ifvaln([$3], [else $3])dnl fi]) # _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) # --------------------------------------------- m4_define([_PKG_CONFIG], [if test -n "$PKG_CONFIG"; then if test -n "$$1"; then pkg_cv_[]$1="$$1" else PKG_CHECK_EXISTS([$3], [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], [pkg_failed=yes]) fi else pkg_failed=untried fi[]dnl ])# _PKG_CONFIG # _PKG_SHORT_ERRORS_SUPPORTED # ----------------------------- AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], [AC_REQUIRE([PKG_PROG_PKG_CONFIG]) if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi[]dnl ])# _PKG_SHORT_ERRORS_SUPPORTED # PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], # [ACTION-IF-NOT-FOUND]) # # # Note that if there is a possibility the first call to # PKG_CHECK_MODULES might not happen, you should be sure to include an # explicit call to PKG_PROG_PKG_CONFIG in your configure.ac # # # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_MODULES], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl pkg_failed=no AC_MSG_CHECKING([for $1]) _PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) _PKG_CONFIG([$1][_LIBS], [libs], [$2]) m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS and $1[]_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.]) if test $pkg_failed = yes; then _PKG_SHORT_ERRORS_SUPPORTED if test $_pkg_short_errors_supported = yes; then $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$2"` else $1[]_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"` fi # Put the nasty error message in config.log where it belongs echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD ifelse([$4], , [AC_MSG_ERROR(dnl [Package requirements ($2) were not met: $$1_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. _PKG_TEXT ])], [AC_MSG_RESULT([no]) $4]) elif test $pkg_failed = untried; then ifelse([$4], , [AC_MSG_FAILURE(dnl [The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. _PKG_TEXT To get pkg-config, see .])], [$4]) else $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS $1[]_LIBS=$pkg_cv_[]$1[]_LIBS AC_MSG_RESULT([yes]) ifelse([$3], , :, [$3]) fi[]dnl ])# PKG_CHECK_MODULES # Copyright (C) 2002, 2003, 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. # 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.11' 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.11.1], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) # _AM_AUTOCONF_VERSION(VERSION) # ----------------------------- # aclocal traces this macro to find the Autoconf version. # This is a private macro too. Using m4_define simplifies # the logic in aclocal, which can simply ignore this definition. m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.11.1])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001, 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, 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 9 # 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 m4_define([_AM_COND_VALUE_$1], [$2])dnl if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then AC_MSG_ERROR([[conditional "$1" was never defined. Usually this means the macro was only invoked conditionally.]]) fi])]) # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009 # 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 10 # 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 am__universal=false m4_case([$1], [CC], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac], [CXX], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac]) for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_$1_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_$1_dependencies_compiler_type=none fi ]) AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) AM_CONDITIONAL([am__fastdep$1], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) ]) # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. # This macro is AC_REQUIREd in _AM_DEPENDENCIES AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ]) # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE(dependency-tracking, [ --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, 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 5 # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ # Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`AS_DIRNAME("$mf")` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # 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, 2009 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 16 # 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.62])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) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl 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 ]) _AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl dnl The `parallel-tests' driver may need to know about EXEEXT, so add the dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl ]) dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_arg=$1 _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001, 2003, 2005, 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. # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi AC_SUBST(install_sh)]) # Copyright (C) 2003, 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])]) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2009 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_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. AC_MSG_CHECKING([for style of include used by $am_make]) am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from `make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi AC_SUBST([am__include]) AC_SUBST([am__quote]) AC_MSG_RESULT([$_am_result]) rm -f confinc confmf ]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 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 6 # 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 if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --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, 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 4 # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # ------------------------------ # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), 1)]) # _AM_SET_OPTIONS(OPTIONS) # ---------------------------------- # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 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 5 # 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 # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[[\\\"\#\$\&\'\`$am_lf]]*) AC_MSG_ERROR([unsafe absolute working directory name]);; esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);; esac # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( 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, 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 2 # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. AC_DEFUN([_AM_SUBST_NOTMAKE]) # AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Public sister of _AM_SUBST_NOTMAKE. AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004, 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 pidgin-otr-4.0.0/dialogs.c0000644000175000017500000001471212020421667012303 00000000000000/* * Off-the-Record Messaging plugin for pidgin * Copyright (C) 2004-2012 Ian Goldberg, Rob Smits, * Chris Alexander, Willy Lew, * Nikita Borisov * * * This program is free software; you can redistribute it and/or modify * it under the terms of version 2 of the GNU General Public License as * published by the Free Software Foundation. * * 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 */ #ifdef HAVE_CONFIG_H #include "config.h" #endif /* system headers */ #include /* pidgin headers */ #include "notify.h" /* libotr headers */ #include #include /* pidgin-otr headers */ #include "dialogs.h" #include "otr-plugin.h" static const OtrgDialogUiOps *ui_ops = NULL; /* Set the UI ops */ void otrg_dialog_set_ui_ops(const OtrgDialogUiOps *ops) { ui_ops = ops; } /* Get the UI ops */ const OtrgDialogUiOps *otrg_dialog_get_ui_ops(void) { return ui_ops; } /* Initialize the OTR dialog subsystem */ void otrg_dialog_init(void) { ui_ops->init(); } /* Deinitialize the OTR dialog subsystem */ void otrg_dialog_cleanup(void) { ui_ops->cleanup(); } /* This is just like pidgin_notify_message, except: (a) it doesn't grab * keyboard focus, (b) the button is "OK" instead of "Close", and (c) * the labels aren't limited to 2K. */ void otrg_dialog_notify_message(PurpleNotifyMsgType type, const char *accountname, const char *protocol, const char *username, const char *title, const char *primary, const char *secondary) { ui_ops->notify_message(type, accountname, protocol, username, title, primary, secondary); } /* Put up the error version of otrg_dialog_notify_message */ void otrg_dialog_notify_error(const char *accountname, const char *protocol, const char *username, const char *title, const char *primary, const char *secondary) { otrg_dialog_notify_message(PURPLE_NOTIFY_MSG_ERROR, accountname, protocol, username, title, primary, secondary); } /* Put up the warning version of otrg_dialog_notify_message */ void otrg_dialog_notify_warning(const char *accountname, const char *protocol, const char *username, const char *title, const char *primary, const char *secondary) { otrg_dialog_notify_message(PURPLE_NOTIFY_MSG_WARNING, accountname, protocol, username, title, primary, secondary); } /* Put up the info version of otrg_dialog_notify_message */ void otrg_dialog_notify_info(const char *accountname, const char *protocol, const char *username, const char *title, const char *primary, const char *secondary) { otrg_dialog_notify_message(PURPLE_NOTIFY_MSG_INFO, accountname, protocol, username, title, primary, secondary); } /* Display an OTR control message for the given accountname / protocol / * username conversation. Return 0 on success, non-0 on error (in which * case the message will be displayed inline as a received message). */ int otrg_dialog_display_otr_message( const char *accountname, const char *protocol, const char *username, const char *msg, int force_create) { return ui_ops->display_otr_message(accountname, protocol, username, msg, force_create); } /* Put up a Please Wait dialog. This dialog can not be cancelled. * Return a handle that must eventually be passed to * otrg_dialog_private_key_wait_done. */ OtrgDialogWaitHandle otrg_dialog_private_key_wait_start(const char *account, const char *protocol) { return ui_ops->private_key_wait_start(account, protocol); } /* End a Please Wait dialog. */ void otrg_dialog_private_key_wait_done(OtrgDialogWaitHandle handle) { ui_ops->private_key_wait_done(handle); } /* Show a dialog informing the user that a correspondent (who) has sent * us a Key Exchange Message (kem) that contains an unknown fingerprint. */ void otrg_dialog_unknown_fingerprint(OtrlUserState us, const char *accountname, const char *protocol, const char *who, unsigned char fingerprint[20]) { ui_ops->unknown_fingerprint(us, accountname, protocol, who, fingerprint); } /* Show a dialog asking the user to verify the given fingerprint. */ void otrg_dialog_verify_fingerprint(Fingerprint *fprint) { ui_ops->verify_fingerprint(fprint); } /* Show a dialog asking the user to give an SMP secret. */ void otrg_dialog_socialist_millionaires(ConnContext *context) { ui_ops->socialist_millionaires(context, NULL, TRUE); } /* Show a dialog asking the user to give an SMP secret, prompting with a * question. */ void otrg_dialog_socialist_millionaires_q(ConnContext *context, char *question) { ui_ops->socialist_millionaires(context, question, TRUE); } /* Update the status of an ongoing socialist millionaires protocol. */ void otrg_dialog_update_smp(ConnContext *context, OtrlSMPEvent smp_event, double progress_level) { ui_ops->update_smp(context, smp_event, progress_level); } /* Call this when a context transitions to ENCRYPTED. */ void otrg_dialog_connected(ConnContext *context) { ui_ops->connected(context); } /* Call this when a context transitions to PLAINTEXT. */ void otrg_dialog_disconnected(ConnContext *context) { ui_ops->disconnected(context); } /* Call this when we receive a Key Exchange message that doesn't cause * our state to change (because it was just the keys we knew already). */ void otrg_dialog_stillconnected(ConnContext *context) { ui_ops->stillconnected(context); } /* Call this if the remote user terminates his end of an ENCRYPTED * connection, and lets us know. */ void otrg_dialog_finished(const char *accountname, const char *protocol, const char *username) { ui_ops->finished(accountname, protocol, username); } /* Set all OTR buttons to "sensitive" or "insensitive" as appropriate. * Call this when accounts are logged in or out. */ void otrg_dialog_resensitize_all(void) { ui_ops->resensitize_all(); } /* Set up the per-conversation information display */ void otrg_dialog_new_conv(PurpleConversation *conv) { ui_ops->new_conv(conv); } /* Remove the per-conversation information display */ void otrg_dialog_remove_conv(PurpleConversation *conv) { ui_ops->remove_conv(conv); } pidgin-otr-4.0.0/otr-plugin.h0000644000175000017500000001076312020421670012762 00000000000000/* * Off-the-Record Messaging plugin for pidgin * Copyright (C) 2004-2012 Ian Goldberg, Rob Smits, * Chris Alexander, Willy Lew, * Lisa Du, Nikita Borisov * * * This program is free software; you can redistribute it and/or modify * it under the terms of version 2 of the GNU General Public License as * published by the Free Software Foundation. * * 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 */ #ifndef __OTRG_OTR_PLUGIN_H__ #define __OTRG_OTR_PLUGIN_H__ /* Purple headers */ #include "account.h" #include "plugin.h" /* libotr headers */ #include #include #include #define PRIVKEYFNAME "otr.private_key" #define STOREFNAME "otr.fingerprints" #define INSTAGFNAME "otr.instance_tags" #define MAXMSGSIZEFNAME "otr.max_message_size" extern PurplePlugin *otrg_plugin_handle; extern OtrlUserState otrg_plugin_userstate; /* Given a PurpleConversation, return the ConnContext corresponding to the * selected instance tag. */ ConnContext* otrg_plugin_conv_to_selected_context(PurpleConversation *conv, int force_create); /* Given a PurpleConversation, return the selected instag. */ otrl_instag_t otrg_plugin_conv_to_selected_instag(PurpleConversation *conv, otrl_instag_t default_value); /* Send an IM from the given account to the given recipient. Display an * error dialog if that account isn't currently logged in. */ void otrg_plugin_inject_message(PurpleAccount *account, const char *recipient, const char *message); /* Generate a private key for the given accountname/protocol */ void otrg_plugin_create_privkey(const char *accountname, const char *protocol); /* Generate a instance tag for the given accountname/protocol */ void otrg_plugin_create_instag(const char *accountname, const char *protocol); /* Start the Socialist Millionaires' Protocol over the current connection, * using the given initial secret, and optionally a question to pass to * the buddy. */ void otrg_plugin_start_smp(ConnContext *context, const char *question, const unsigned char *secret, size_t secretlen); void otrg_plugin_continue_smp(ConnContext *context, const unsigned char *secret, size_t secretlen); /* Abort the SMP protocol. Used when malformed or unexpected messages * are received. */ void otrg_plugin_abort_smp(ConnContext *context); /* Send the default OTR Query message to the correspondent of the given * context, from the given account. [account is actually a * PurpleAccount*, but it's declared here as void* so this can be passed * as a callback.] */ void otrg_plugin_send_default_query(ConnContext *context, void *account); /* Send the default OTR Query message to the correspondent of the given * conversation. */ void otrg_plugin_send_default_query_conv(PurpleConversation *conv); /* Disconnect a context, sending a notice to the other side, if * appropriate. */ void otrg_plugin_disconnect(ConnContext *context); /* Write the fingerprints to disk. */ void otrg_plugin_write_fingerprints(void); /* Find the ConnContext appropriate to a given PurpleConversation. */ ConnContext *otrg_plugin_conv_to_context(PurpleConversation *conv, otrl_instag_t their_instance, int force_create); /* Find the PurpleConversation appropriate to the given userinfo. If * one doesn't yet exist, create it if force_create is true. */ PurpleConversation *otrg_plugin_userinfo_to_conv(const char *accountname, const char *protocol, const char *username, int force_create); /* Find the PurpleConversation appropriate to the given ConnContext. If * one doesn't yet exist, create it if force_create is true. */ PurpleConversation *otrg_plugin_context_to_conv(ConnContext *context, int force_create); typedef enum { TRUST_NOT_PRIVATE, TRUST_UNVERIFIED, TRUST_PRIVATE, TRUST_FINISHED } TrustLevel; /* What level of trust do we have in the privacy of this ConnContext? */ TrustLevel otrg_plugin_context_to_trust(ConnContext *context); /* Return 1 if the given protocol supports OTR, 0 otherwise. */ int otrg_plugin_proto_supports_otr(const char *proto); #endif pidgin-otr-4.0.0/intltool-extract.in0000644000175000017500000000000012021367770014347 00000000000000pidgin-otr-4.0.0/COPYING0000644000175000017500000004313612020421667011552 00000000000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. pidgin-otr-4.0.0/ChangeLog0000644000175000017500000004612312020740352012263 000000000000002012-09-04 * README: Release 4.0.0 2012-09-02 * gtk-dialog.c (otrg_gtk_dialog_new_purple_conv): When switching to a conversation tab for which the user has explicitly disabled OTR, remove the OTR menus from the top menu bar. Thanks to Greg Troxel for reporting the issue. 2012-08-27 * otr-plugin.c: Add a timer_control callback for the last-minute libotr 4 API change. * gtk-dialog.c (otrg_gtk_dialog_finished): If one of our buddies ends his/her side of the OTR session, don't automatically change the label on the OTR button on our side to "Finished", since there may be other sessions for the same buddy still in ENCRYPTED. * configure.ac: Make the version number of libotr we're looking for more clear. It used to say "4.0.0 or newer"; now it says "4.x >= 4.0.0", since 5.0 is *not* acceptable. Thanks to Jacob Appelbaum for pointing it out. 2012-08-24 * otr-plugin.c: Turn off the beta dialog * README: * INSTALL.mingw: * Makefile.mingw: * packaging/windows/pidgin-otr.nsi: * configure.ac: Change version number to 4.0.0 2012-08-22 * configure.ac: * Makefile.mingw: Use gcc and ld hardening flags, where possible. * patches/win32/rndw32.c: * patches/win32/libgcrypt-config.h.patch: Include required win32 build patches right here in the source tree * INSTALL.mingw: Be much more thorough in describing how to cross-compile pidgin-otr.dll on Linux * configure.ac: * gtk-dialog.c: Build cleanly with -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wformat-security 2012-08-16 * packaging/windows/pidgin-otr.nsi: Modifications to the nsi file to make it work properly in a UI-less setting. Thanks to Ariel Poliak for the patch! 2012-07-19 * gtk-dialog.c, gtk-ui.c, otr-plugin.c: Clean up compiler warnings, memory leaks, and a potential buffer overflow from overlong translations. Thanks to Paul Wouters for the report. 2012-07-03 * po/de.po: Updates to German translation from Andreas Schlick 2012-07-01 * po/my_MM.po: Burmese translation from Russell Kyaw 2012-06-29 * po/nl.po: Updated Dutch translation from Paul Wouters * po/fr.po: Updated French translation from Paul Hendry 2012-06-28 * po/fa.po: Farsi translation from Hooman Mohajeri Moghaddam ﻩﻮﻤﻧ ﻢﻫﺎﺟﺭی ﻢﻗﺪﻣ * po/nn.po: Norwegian translation from Yngve Spjeld Landro 2012-06-25 * po/es.po: Updated Spanish translation from Juan Rodriguez 2012-06-21 * INSTALL.mingw: * Makefile.mingw: Cleaned up instructions for mingw win32 cross-compile * po/el.po: Updated Greek translation by Alex 2012-06-21 * otr-plugin.c: Fixed a crash that happened when enabling the OTR plugin while a conversation is open. * Release 4.0.0-beta2 2012-06-20 * po/el.po: Greek translation by Alex * po/zh_CN.po: Simplified Chinese translation by Bisheng Liu 2012-06-16 * po/de.po: German translation updated by Marc Ester 2012-06-07 * Release 4.0.0-beta1 2012-05-11 * otr-plugin.c: Added annoying warnings to prepare for win32 build. 2012-05-10 * gtk-dialog.c: * otr-plugin.c: Avoiding storing values in g_hash_tables. Doing this improperly created issues in 64-bit environments. 2012-04-30 * gtk-dialog.c: * gtk-ui.c: * otr-plugin.c: * otr-plugin.h: * ui.c: More changes for instance tags. Some logging- related changes too (output whether pidgin is logging, change default not to log otr conversations). -- Rob Smits 2010-03-02 * po/vi.po: Vietnamese translation from Lyndon Johnson 2009-11-14 * gtk-dialog.c (add_to_vbox_verify_fingerprint): Make the fingerprints in the manual authentication dialog selectable (but not selected by default). 2009-06-11 * gtk-dialog.c: * otr-plugin.c: * otr-plugin.h: Initial instance tags implementation from Lisa Du 2009-08-24 * po/fr.po: Fixed \n errors 2009-07-20 * po/fr.po: Complete French translation from Solveig 2009-06-24 * po/fr.po: Spelling correction from intrigeri 2009-03-18 * po/sv.po: Swedish translation from Daniel Nylander 2009-01-18 * po/pl.po: Polish translation from Paweł Czochański 2008-09-24 * po/it.po: Italian translation from Vincenzo Reale . 2008-08-15 * otr-plugin.c: Willy Lew's updates to reflect libotr 4.0.0 API 2008-08-07 * otr-plugin.c: * dialogs.h: * dialogs.c: * gtk-dialog.c: Add a force_create parameter to display_otr_message. 2008-07-10 * otr-plugin.c: Use /dev/urandom to generate keys instead of /dev/random. [Really: on non-Win32, call gcry_control(GCRYCTL_ENABLE_QUICK_RANDOM, 0); before OTRL_INIT;.] 2008-07-07 * gtk-conv.c: Don't delete the OTR menus if a non-foreground conversation window is closed. 2008-07-02 * dialogs.c: * dialogs.h: * gtk-dialog.c: * otr-plugin.c: Use the new SMP event callback instead of handling the SMP state machine ourselves. 2008-06-19 * Makefile.static: Forgot to add tooltipmenu.o to Makefile.static. Fixed. 2008-06-17 * otr-plugin.c: Except on WIN32, set the umask to 0077 before creating the otr.* files in the purple directory so that they end up mode 0600. Based on a patch from Caspar Clemens Mierau . * po/de.po: Updated German translation from Michael Meier . 2008-06-16 * gtk-dialog.c: Make the menu item say "Reauthenticate buddy" when the buddy is already authenticated. 2008-06-15 * gtk-dialog.c: Don't try to destroy the submenu when we've already destroyed the menu. Linux doesn't complain about this, but Windows does. * packaging/windows/pidgin-otr.msi: Bump version number. * Makefile.mingw: Add tooltipmenu.o to link line. * Release 3.2.0. 2008-06-13 * po/de.po: Updated German translation from Michael Meier * README: Updated, ready for release of 3.2.0. * dialogs.h: Remove unused FINGERPRINT_HELPURL. * gtk-dialog.c: Remove dead (#if 0) code. 2008-06-11 * gtk-dialog.c: A small change to aid in i18n from Őry Máté * po/hu.po: Updated Hungarian translation from Őry Máté 2008-05-30 * gtk-dialog.c: The new toolbar OTR button now uses the standard OTR menu. * gtk-dialog.c: The buddy and status items in the OTR menu are no longer selectable. * gtk-ui.c: Specify that the OTR button shows up in the toolbar now. * gtk-dialog.c: Added a context-sensitive Help button to the Authenticate Buddy dialog. * gtk-dialog.c: Revamp of Authenticate Buddy dialog, based on a mockup by hcat@gmx.net 2008-05-29 * gtk-ui.c: * gtk-dialog.c: Try moving the OTR button to the toolbar, based on an idea from Pontus Andersson at http://blog.pesa.se/2007/09/25/goodbye-big-bloated-otr-button/ * gtk-dialog.c: Some changes to the authenticate buddy dialog; more to come. * gtk-dialog.c: Some strings were missing _(), and others had them unnecessarily. * po/de.po: Updated German translation from Michael Meier 2008-05-28 * tooltipmenu.[ch]: New classes to allow tooltips on menus. * otr-icons.h: New OTR icons from . * README: * AUTHORS: * *.[ch]: Update copyright dates to 2004-2008 and add Rob Smits as an author. (Rob wrote the new gtk-dialog stuff to handle user authentication with an explicit question, inserted inline OTR icons into the conversation when the status changes, and moved the OTR button to the menu bar.) * gtk-ui.c: Updated variable names to reflect the (old) change from "OTR Options" to "OTR Settings". * ui.h: * ui.c: * gtk-ui.c: Added new OTR UI Options section of the configuration panel, which currently controls only whether the old OTR button will still show up. * dialogs.h: * dialogs.c: * gtk-dialog.c: * otr-plugin.h: * otr-plugin.c: Support starting the SMP authentication with an explicit question. * otr-plugin.c: Better handling of the case where an SMP message fails a verification step. * configure.ac: * Makefile.mingw: Update version number to 3.2.0. * gtk-dialog.c: Made new OTR menus (one master one, and one for each active conversation in the window) that replace the old OTR button. [The old button is still available as an option, but the menu is always present.] * gtk-dialog.c: OTR icons are inserted inline into the conversation when the OTR status changes. * configure.ac: * po/ar.po: * po/de.po: * po/ru.po: New translations: Arabic (Ahmad Gharbeia ﺄﺤﻣﺩ ﻍﺮﺒﻳﺓ ), German (Thorsten Mühlfelder ), Hungarian (Mate Ory ), Russian (Sergei Smirnov ) * dialogs.h: Help URLs now have version numbers in them, so the appropriate help page can be served. * Makefile.am: Include new files in compilation and distribution targets. * gtk-dialog.c: Added "What's this?" item to OTR menu * gtk-dialog.c: Name of authentication dialog is now "Authenticate Buddy" with a capital "B". * gtk-dialog.c: Authentication dialog now says "Authentication Options" instead of "Other Authentication Options". 2007-07-28 * configure.ac: Fix PKG_CHECK_MODULES so that it gives a sensible error if the packages aren't found * Makefile.mingw: * po/Makefile.mingw: Cleaned up Makefile.mingw files, removed "install" target, added "zip" target * packaging/windows/pidgin-otr.nsi: Install and uninstall the translation files 2007-07-26 * gtk-dialog.c: * otr-plugin.c: ISO C cleanups (no mixing declarations with code) * otr-plugin.c: Defend against potential NULL pointer dereferences * gtk-dialog.c: The SMP secret window should grab focus, but only if the user requested to authenticate buddy (and not if it popped up because the remote side asked for it) * Makefile.mingw: Statically link libintl and libiconv 2007-07-24 * INSTALL: Added information about i18n; added information about linking libgcrypt statically * otr-plugin.c: Added support for transparent fragmentation of large messages * Most files: Updated copyright information 2007-07-22 * configure.ac: Check for libpurple and use a recent format for AC_INIT/AM_INIT_AUTOMAKE, based on a patch from . 2007-07-18 * gtk-ui.c: Simplify account list option menu in Config UI, thanks to Gabriel Schulhof . * gtk-ui.c: Reorder the tabs in the Config UI so that Config is first. * README: Updated to reflect new tab ordering, and new "Don't log OTR conversations" option. * gtk-dialog.c: Fixed a bug in the verify fingerprint dialog in the unlikely event that a fingerprint exists in the fingerprints file with no corresponding key for the local account in the private keys file. 2007-07-17 * dialogs.c: * dialogs.h: * gtk-dialog.c: Removed Verify fingerprint and View secure session id menu options. Added "Advanced..." button to Authenticate buddy dialog, which brings up the old Verify fingerprint dialog. The Authenticate buddy dialog now allows users to authenticate their buddies without ever seeing a fingerprint. 2007-07-10 * dialogs.c: * dialogs.h: * gtk-dialog.c: * gtk-ui.c: * otr-plugin.c: * ui.c: * ui.h: Added init() and cleanup() callbacks to the ui and dialog subsystems that are called when the plugin is loaded and unloaded respectively. * gtk-dialog.c: Fixed bug where multiple OTR buttons in one window would cause pidgin to crash when the window is closed. 2007-07-08 * otr-plugin.c: * gtk-dialog.c: * gtk-ui.c: Added an option to not log OTR conversations. * gtk-ui.c: * ui.c: * ui.h: Generalized find_policy to get_prefs, allowing for other preferences to be available. 2007-07-07 * INSTALL: Update dependency information * Makefile.am: * Makefile.mingw: * configure.ac: * gtk-dialog.c: * gtk-ui.c: * makedist: * otr-plugin.c: * ui.c: i18n, thanks to Thomas B. . 2007-05-06 * Makefile.am: * configure.ac: * dialogs.c: * dialogs.h: * gtk-dialog.c: * gtk-dialog.h: * gtk-ui.c: * gtk-ui.h: * otr-plugin.c: * otr-plugin.h: * ui.c: * ui.h: Porting to Pidgin 2.0.0 thanks to Reza Jelveh . * packaging/windows/gaim-otr.nsi: * Makefile.mingw: Porting the Windows version to Pidgin 2.0.0. 2006-11-28 * Makefile.mingw: Build under newer mingw cross-compilation environment. * gtk-dialog.c: Change "gtkstock.h" to "gaimstock.h" to match gaim-2.0.0beta5. * packaging/windows/gaim-otr.nsi: New version from Paul. 2006-07-24 * otr-plugin.c: Use g_fopen() to open the otr files, so that on Windows, the UTF8 filename encoding is respected. 2006-01-20 * otr-plugin.c: Track the gaim-2 API changes. 2005-12-18 * gtk-dialog.c: * otr-plugin.c: Compile against either gaim-1.x or gaim-2.x, based on a patch from Dustin Howett . 2005-11-02 * INSTALL: Add instruction for doing autoreconf from CVS version, if your libotr.m4 is in a nonstandard place. * Makefile.mingw: * README: * configure.ac: Release version 3.0.0 * README: Update UI instructions for version 3.0.0 2005-10-27 * gtk-dialog.c: Better icons * gtk-dialog.c: Make the text of dialog boxes selectable 2005-10-19 * dialogs.h: * dialogs.c: * gtk-dialog.c: * otr-plugin.c: Track libotr API change: protocol_version is now part of the ConnContext, and not passed separately to the gone_secure() and still_secure() plugins. * otr-plugin.c: Removed automatic sending of OTRL_TLV_DISCONNECTED at quitting time, since it causes unreadable messages to be sent to people with clients who don't send those messages. * packaging/fedora/gaim-otr.spec: Patches from Paul 2005-10-16 * Conform to the new libotr API. 2005-08-04 * otr-plugin.c: Disconnect all contexts when gaim is about to quit. 2005-07-29 * otr-plugin.c (confirm_fingerprint_cb): Match the changing libotr API. 2005-06-24 * README: * Makefile.mingw: * packaging/fedora/gaim-otr.spec: * packaging/windows/gaim-otr.nsi: * configure.ac: Change version to 3.0.0 (but don't yet release) * Makefile.mingw: add -lgtk_pixbuf-2.0-0 for the OTR button pixmaps. * configure.ac: Require libotr 3.x. * dialogs.h: * dialogs.c (otrg_dialog_unknown_fingerprint): This function now merely informs the user that a new fingerprint has been received, and doesn't require the user to confirm it before it can be used. * dialogs.h: * dialogs.c (otrg_dialog_verify_fingerprint): New function to allow the user to confirm the authenticity of a fingerprint. * dialogs.h: Add #defines for the online help URLs. * gtk-dialog.c: There are now three states a conversation can be in: Not Private (not using OTR), Unverified (using OTR, but to a fingerprint that hasn't been verified, so you are subject to a straightforward active attack), and Private (using OTR with a verified fingerprint). There are new icons for these states that appear in the OTR button. * gtk-dialog.c: Callers of create_dialog can now specify additional widgets to appear in the dialog boxes. We use this primarily for the "What's this?" help widgets. * gtk-dialog.c (otrg_gtk_dialog_unknown_fingerprint): This function no longer has to deal with callbacks to get the user's response to the new fingerprint. * gtk-dialog.c: Right-clicking the OTR button now produces an OTR menu, with options to start or end the private conversation, verify the fingerprint, view the secure session id, or get help. * gtk-dialog.c (dialog_update_label_conv): Have the OTR button obey the user's requested style (text only, pictures only, pictures and text, none). Note that if the user chooses "none", there's currently no way to reach the aforementioned menu. * gtk-dialog.c: The "private connection established", "private connection refreshed", and "private connection ended" messages no longer pop up dialog boxes. Instead, they appear inline in the conversation window. The session id and fingerprint which used to appear in the "private connection established" dialog are now viewable via the OTR button right-click menu. * gtk-dialog.c: New dialog to view and verify fingerprints. * gtk-dialog.c: New dialog to view secure session id. * gtk-ui.c: New "Verify fingerprint" button in the plugin UI, and rearrangement of the (now four) buttons into a 2x2 table. * gtk-ui.c: New "Verified" column in the Known Fingerprints table. * otr-plugin.c (confirm_fingerprint_cb): This function no longer has to deal with callbacks due to the change in the libotr API. * otr-plugin.h: * otr-plugin.c (otrg_plugin_write_fingerprints): Refactored this function so that other parts of the code can call it. * otr-plugin.h: * otr-plugin.c (otrg_plugin_conv_to_context) (otrg_plugin_context_to_conv, otrg_plugin_context_to_trust): New functions. 2005-05-27 * otr-plugin.c: * gtk-dialog.c: Replace the OTR button in the button box if the user changes the button style (which causes gaim to remove all the buttons, and only replace its own). * gtk-dialog.c: Add a right-button context menu to the OTR button. Currently, it only has one entry, which has the same effect as clicking the button; eventually, you'll be able to do other things here, like getting the info currently in the "Private Connection Established" dialog. This also opens the door to making the button functionality available if the user hides his buttons completely (if we can find a place to make this context menu appear; say, on some F-key?). * otr-plugin.c (notify_cb): Initialize gaimlevel so that -Wall stops complaining, even though there's no situation in which it can actually get used while unset. 2005-05-19 * otr-plugin.h: * otr-plugin.c (otrg_plugin_proto_supports_otr): New function to check whether a given protocol supports OTR. Right now, everything except IRC is assumed to support it. * otr-plugin.c (supply_extended_menu): Don't add the "OTR Settings" menu option to the per-buddy menu if this buddy's protocol doesn't support OTR. * ui.c (otrg_ui_find_policy): If the protocol doesn't support OTR, always return a policy of OTRL_POLICY_NEVER. 2005-05-03 * README: * packaging/fedora/gaim-otr.spec: * packaging/windows/gaim-otr.nsi: * configure.ac: Change version to 2.0.2 * packaging/debian: Remove this directory, as Thibaut VARENE is now responsible for the debian packages. 2005-03-23 * otr-plugin.c (process_receiving_im): If libotr tells us to ignore this received message (because it's an internal protocol message), it's not enough just to return 1 from this function, since other plugins that catch receiving-im-msg may later return 0, and gaim only checks the return value from the last such plugin. So we additionally set the message to NULL. 2005-03-21 * gtk-ui.c (otrg_gtk_ui_config_buddy): * otr-plugin.c (supply_extended_menu): For consistency, use "OTR Settings" instead of "OTR Options" everywhere. 2005-03-08 * gtk-dialog.c (otrg_gtk_dialog_private_key_wait_start): Move a variable declaration to the right place. 2005-03-01 Initial autoconfiscation, thanks to Greg Troxel . pidgin-otr-4.0.0/ui.c0000644000175000017500000001137612020421670011273 00000000000000/* * Off-the-Record Messaging plugin for pidgin * Copyright (C) 2004-2012 Ian Goldberg, Rob Smits, * Chris Alexander, Willy Lew, * Nikita Borisov * * * This program is free software; you can redistribute it and/or modify * it under the terms of version 2 of the GNU General Public License as * published by the Free Software Foundation. * * 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 */ /* config.h */ #ifdef HAVE_CONFIG_H #include "config.h" #endif /* system headers */ #include /* purple headers */ #include "util.h" #include "account.h" #ifdef ENABLE_NLS /* internationalisation header */ #include #endif /* libotr headers */ #include #include #include /* purple-otr headers */ #include "ui.h" #include "dialogs.h" #include "otr-plugin.h" static const OtrgUiUiOps *ui_ops = NULL; /* Set the UI ops */ void otrg_ui_set_ui_ops(const OtrgUiUiOps *ops) { ui_ops = ops; } /* Get the UI ops */ const OtrgUiUiOps *otrg_ui_get_ui_ops(void) { return ui_ops; } /* Initialize the OTR UI subsystem */ void otrg_ui_init(void) { if (ui_ops != NULL) { ui_ops->init(); } } /* Deinitialize the OTR UI subsystem */ void otrg_ui_cleanup(void) { if (ui_ops != NULL) { ui_ops->cleanup(); } } /* Call this function when the DSA key is updated; it will redraw the * UI, if visible. */ void otrg_ui_update_fingerprint(void) { if (ui_ops != NULL) { ui_ops->update_fingerprint(); } } /* Update the keylist, if it's visible */ void otrg_ui_update_keylist(void) { if (ui_ops != NULL) { ui_ops->update_keylist(); } } /* Send an OTR Query Message to attempt to start a connection */ void otrg_ui_connect_connection(ConnContext *context) { /* Send an OTR Query to the other side. */ PurpleAccount *account; char *msg; /* Don't do this if we're already ENCRYPTED */ if (context == NULL || context->msgstate == OTRL_MSGSTATE_ENCRYPTED) return; account = purple_accounts_find(context->accountname, context->protocol); if (!account) { PurplePlugin *p = purple_find_prpl(context->protocol); msg = g_strdup_printf(_("Account %s (%s) could not be found"), context->accountname, (p && p->info->name) ? p->info->name : _("Unknown")); otrg_dialog_notify_error(context->accountname, context->protocol, context->username, _("Account not found"), msg, NULL); g_free(msg); return; } otrg_plugin_send_default_query(context, account); } /* Drop a context to PLAINTEXT state */ void otrg_ui_disconnect_connection(ConnContext *context) { if (context == NULL) return; otrg_plugin_disconnect(context); otrg_dialog_disconnected(context); } /* Forget a fingerprint */ void otrg_ui_forget_fingerprint(Fingerprint *fingerprint) { ConnContext *context; ConnContext *context_iter; if (fingerprint == NULL) return; /* Don't do anything with the active fingerprint if we're in the * ENCRYPTED state. */ context = fingerprint->context; for (context_iter = context->m_context; context_iter && context_iter->m_context == context->m_context; context_iter = context_iter->next) { if (context_iter->msgstate == OTRL_MSGSTATE_ENCRYPTED && context_iter->active_fingerprint == fingerprint) return; } otrl_context_forget_fingerprint(fingerprint, 1); otrg_plugin_write_fingerprints(); otrg_ui_update_keylist(); } /* Configure OTR for a particular buddy */ void otrg_ui_config_buddy(PurpleBuddy *buddy) { if (ui_ops != NULL) { ui_ops->config_buddy(buddy); } } /* Load the preferences for a particular account / username */ void otrg_ui_get_prefs(OtrgUiPrefs *prefsp, PurpleAccount *account, const char *name) { /* Check to see if the protocol for this account supports OTR at all. */ const char *proto = purple_account_get_protocol_id(account); if (!otrg_plugin_proto_supports_otr(proto)) { prefsp->policy = OTRL_POLICY_NEVER; prefsp->avoid_logging_otr = TRUE; prefsp->show_otr_button = FALSE; return; } if (ui_ops != NULL) { ui_ops->get_prefs(prefsp, account, name); return; } /* If we've got no other way to get the prefs, use sensible defaults */ prefsp->policy = OTRL_POLICY_DEFAULT; prefsp->avoid_logging_otr = TRUE; prefsp->show_otr_button = FALSE; } pidgin-otr-4.0.0/intltool-update.in0000644000175000017500000000000012021367770014157 00000000000000pidgin-otr-4.0.0/gtk-ui.c0000644000175000017500000010735412020421667012066 00000000000000/* * Off-the-Record Messaging plugin for pidgin * Copyright (C) 2004-2012 Ian Goldberg, Rob Smits, * Chris Alexander, Willy Lew, * Nikita Borisov * * * This program is free software; you can redistribute it and/or modify * it under the terms of version 2 of the GNU General Public License as * published by the Free Software Foundation. * * 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 */ /* config.h */ #ifdef HAVE_CONFIG_H #include "config.h" #endif /* system headers */ #include /* libgcrypt headers */ #include /* libotr headers */ #include /* purple headers */ #include "util.h" #include "account.h" #include "notify.h" #include "gtkutils.h" #ifdef ENABLE_NLS /* internationalisation header */ #include #endif /* purple-otr headers */ #include "dialogs.h" #include "ui.h" #include "otr-plugin.h" struct otrsettingsdata { GtkWidget *enablebox; GtkWidget *automaticbox; GtkWidget *onlyprivatebox; GtkWidget *avoidloggingotrbox; }; struct otroptionsdata { GtkWidget *showotrbutton; }; static struct { GtkWidget *accountmenu; GtkWidget *fprint_label; GtkWidget *generate_button; GtkWidget *scrollwin; GtkWidget *keylist; gint sortcol, sortdir; Fingerprint *selected_fprint; GtkWidget *connect_button; GtkWidget *disconnect_button; GtkWidget *forget_button; GtkWidget *verify_button; struct otrsettingsdata os; struct otroptionsdata oo; } ui_layout; static const gchar *trust_states[] = { N_("Not private"), N_("Unverified"), N_("Private"), N_("Finished") }; static void account_menu_changed_cb(GtkWidget *item, PurpleAccount *account, void *data) { const char *accountname; const char *protocol; GtkWidget *fprint = ui_layout.fprint_label; char *s = NULL; char *fingerprint; if (account) { char fingerprint_buf[OTRL_PRIVKEY_FPRINT_HUMAN_LEN]; accountname = purple_account_get_username(account); protocol = purple_account_get_protocol_id(account); fingerprint = otrl_privkey_fingerprint(otrg_plugin_userstate, fingerprint_buf, accountname, protocol); if (fingerprint) { s = g_strdup_printf(_("Fingerprint: %.80s"), fingerprint); if (ui_layout.generate_button) gtk_widget_set_sensitive(ui_layout.generate_button, 0); } else { s = g_strdup(_("No key present")); if (ui_layout.generate_button) gtk_widget_set_sensitive(ui_layout.generate_button, 1); } } else { s = g_strdup(_("No account available")); if (ui_layout.generate_button) gtk_widget_set_sensitive(ui_layout.generate_button, 0); } if (fprint) { gtk_label_set_text(GTK_LABEL(fprint), s ? s : ""); gtk_widget_show(fprint); } if (s) { g_free(s); } } /* Call this function when the DSA key is updated; it will redraw the * UI, if visible. */ static void otrg_gtk_ui_update_fingerprint(void) { if (ui_layout.accountmenu) { g_signal_emit_by_name(G_OBJECT(ui_layout.accountmenu), "changed"); } } static void account_menu_added_removed_cb(PurpleAccount *account, void *data) { otrg_gtk_ui_update_fingerprint(); } static void clist_all_unselected(void) { if (ui_layout.connect_button) { gtk_widget_set_sensitive(ui_layout.connect_button, 0); } if (ui_layout.disconnect_button) { gtk_widget_set_sensitive(ui_layout.disconnect_button, 0); } if (ui_layout.forget_button) { gtk_widget_set_sensitive(ui_layout.forget_button, 0); } if (ui_layout.verify_button) { gtk_widget_set_sensitive(ui_layout.verify_button, 0); } ui_layout.selected_fprint = NULL; } /* Update the keylist, if it's visible */ static void otrg_gtk_ui_update_keylist(void) { gchar *titles[5]; char hash[OTRL_PRIVKEY_FPRINT_HUMAN_LEN]; ConnContext * context; Fingerprint * fingerprint; int selected_row = -1; GtkWidget *keylist = ui_layout.keylist; if (keylist == NULL) return; gtk_clist_freeze(GTK_CLIST(keylist)); gtk_clist_clear(GTK_CLIST(keylist)); for (context = otrg_plugin_userstate->context_root; context != NULL; context = context->next) { int i; PurplePlugin *p; char *proto_name; if (context->m_context != context) continue; fingerprint = context->fingerprint_root.next; /* If there's no fingerprint, don't add it to the known * fingerprints list */ while(fingerprint) { ConnContext *context_iter; TrustLevel best_level = TRUST_NOT_PRIVATE; int used = 0; titles[0] = context->username; titles[1] = _("Unused"); for (context_iter = context->m_context; context_iter && context_iter->m_context == context->m_context; context_iter = context_iter->next) { TrustLevel this_level = TRUST_NOT_PRIVATE; if (context_iter->active_fingerprint == fingerprint) { this_level = otrg_plugin_context_to_trust(context_iter); used = 1; if (this_level == TRUST_PRIVATE) { best_level = TRUST_PRIVATE; } else if (this_level == TRUST_UNVERIFIED && best_level != TRUST_PRIVATE) { best_level = TRUST_UNVERIFIED; } else if (this_level == TRUST_FINISHED && best_level == TRUST_NOT_PRIVATE) { best_level = TRUST_FINISHED; } } } if (used) { titles[1] = (gchar *) _(trust_states[best_level]); } titles[2] = (fingerprint->trust && fingerprint->trust[0]) ? _("Yes") : _("No"); otrl_privkey_hash_to_human(hash, fingerprint->fingerprint); titles[3] = hash; p = purple_find_prpl(context->protocol); proto_name = (p && p->info->name) ? p->info->name : _("Unknown"); titles[4] = g_strdup_printf("%s (%s)", context->accountname, proto_name); i = gtk_clist_append(GTK_CLIST(keylist), titles); g_free(titles[4]); gtk_clist_set_row_data(GTK_CLIST(keylist), i, fingerprint); if (ui_layout.selected_fprint == fingerprint) { selected_row = i; } fingerprint = fingerprint->next; } } if (selected_row >= 0) { gtk_clist_select_row(GTK_CLIST(keylist), selected_row, 0); } else { clist_all_unselected(); } gtk_clist_sort(GTK_CLIST(keylist)); gtk_clist_thaw(GTK_CLIST(keylist)); } static void generate(GtkWidget *widget, gpointer data) { PurpleAccount *account; account = pidgin_account_option_menu_get_selected(ui_layout.accountmenu); if (account == NULL) return; otrg_plugin_create_privkey(purple_account_get_username(account), purple_account_get_protocol_id(account)); } static void ui_destroyed(GtkObject *object) { /* If this is called, we need to invalidate the stored pointers in * the ui_layout struct. */ ui_layout.accountmenu = NULL; ui_layout.fprint_label = NULL; ui_layout.generate_button = NULL; ui_layout.scrollwin = NULL; ui_layout.keylist = NULL; ui_layout.selected_fprint = NULL; ui_layout.connect_button = NULL; ui_layout.disconnect_button = NULL; ui_layout.forget_button = NULL; ui_layout.verify_button = NULL; ui_layout.os.enablebox = NULL; ui_layout.os.automaticbox = NULL; ui_layout.os.onlyprivatebox = NULL; } static void clist_selected(GtkWidget *widget, gint row, gint column, GdkEventButton *event, gpointer data) { int connect_sensitive = 0; int disconnect_sensitive = 0; int forget_sensitive = 0; int verify_sensitive = 0; Fingerprint *f = gtk_clist_get_row_data(GTK_CLIST(ui_layout.keylist), row); ConnContext *context_iter; if (f) { verify_sensitive = 1; forget_sensitive = 1; if (f->context && f->context->m_context) { for (context_iter = f->context; context_iter && context_iter->m_context == f->context->m_context; context_iter = context_iter->next) { if (context_iter->msgstate == OTRL_MSGSTATE_ENCRYPTED && context_iter->active_fingerprint == f) { disconnect_sensitive = 1; forget_sensitive = 0; } else if (context_iter->msgstate == OTRL_MSGSTATE_FINISHED) { disconnect_sensitive = 1; connect_sensitive = 1; } else if (context_iter->msgstate == OTRL_MSGSTATE_PLAINTEXT) { connect_sensitive = 1; } } } } gtk_widget_set_sensitive(ui_layout.connect_button, connect_sensitive); gtk_widget_set_sensitive(ui_layout.disconnect_button, disconnect_sensitive); gtk_widget_set_sensitive(ui_layout.forget_button, forget_sensitive); gtk_widget_set_sensitive(ui_layout.verify_button, verify_sensitive); ui_layout.selected_fprint = f; } static void clist_unselected(GtkWidget *widget, gint row, gint column, GdkEventButton *event, gpointer data) { clist_all_unselected(); } /* For a given fingerprint, find the master context that the fingerprint is * pointing to, iterate through it and all its children. * Of the contexts that are using this fingerprint, return a value that * corresponds to the "best" trust level among these. */ static int fngsortval(Fingerprint *f) { int result = 200; ConnContext *context_iter; for (context_iter = f->context->m_context; context_iter && context_iter->m_context == f->context->m_context; context_iter = context_iter->next) { int is_active = 0; TrustLevel level; if (context_iter->msgstate == OTRL_MSGSTATE_ENCRYPTED && context_iter->active_fingerprint == f) { is_active = 1; } level = otrg_plugin_context_to_trust(context_iter); if (level == TRUST_PRIVATE) { if (is_active) { result = 0; break; } else { result = result > 100 ? 100 : result; } } else if (level == TRUST_UNVERIFIED) { if (is_active) { result = 1; } else { result = result > 100 ? 100 : result; } } else if (level == TRUST_FINISHED) { result = result > 2 ? 2 : result; } else if (level == TRUST_NOT_PRIVATE) { result = result > 3 ? 3 : result; } } return result; } static gint statuscmp(GtkCList *clist, gconstpointer ptr1, gconstpointer ptr2) { const GtkCListRow *a = ptr1; const GtkCListRow *b = ptr2; int as = fngsortval(a->data); int bs = fngsortval(b->data); return (as - bs); } static void clist_click_column(GtkCList *clist, gint column, gpointer data) { if (ui_layout.sortcol == column) { ui_layout.sortdir = -(ui_layout.sortdir); } else { ui_layout.sortcol = column; ui_layout.sortdir = 1; } gtk_clist_set_sort_column(clist, ui_layout.sortcol); gtk_clist_set_sort_type(clist, ui_layout.sortdir == 1 ? GTK_SORT_ASCENDING : GTK_SORT_DESCENDING); if (column == 1) { gtk_clist_set_compare_func(clist, statuscmp); } else { /* Just use the default compare function for the rest of the * columns */ gtk_clist_set_compare_func(clist, NULL); } gtk_clist_sort(clist); } static void connect_connection(GtkWidget *widget, gpointer data) { /* Send an OTR Query to the other side. */ ConnContext *context; if (ui_layout.selected_fprint == NULL) return; context = ui_layout.selected_fprint->context; otrg_ui_connect_connection(context); } static void disconnect_connection(GtkWidget *widget, gpointer data) { /* Forget whatever state we've got with this context */ ConnContext *context; ConnContext *context_iter; if (ui_layout.selected_fprint == NULL) return; context = ui_layout.selected_fprint->context; if (context == NULL) return; for (context_iter = context->m_context; context_iter && context_iter->m_context == context->m_context; context_iter = context_iter->next) { /* Don't do anything with fingerprints other than the active one * if we're in the ENCRYPTED state */ if (context_iter->msgstate == OTRL_MSGSTATE_ENCRYPTED && context_iter->active_fingerprint == ui_layout.selected_fprint) { otrg_ui_disconnect_connection(context_iter); } } } static void forget_fingerprint(GtkWidget *widget, gpointer data) { Fingerprint *fingerprint = ui_layout.selected_fprint; otrg_ui_forget_fingerprint(fingerprint); } static void verify_fingerprint(GtkWidget *widget, gpointer data) { Fingerprint *fingerprint = ui_layout.selected_fprint; otrg_dialog_verify_fingerprint(fingerprint); } static void otrsettings_clicked_cb(GtkButton *button, struct otrsettingsdata *os) { gtk_widget_set_sensitive(os->enablebox, TRUE); if (gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(os->enablebox))) { gtk_widget_set_sensitive(os->automaticbox, TRUE); if (gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(os->automaticbox))) { gtk_widget_set_sensitive(os->onlyprivatebox, TRUE); } else { gtk_widget_set_sensitive(os->onlyprivatebox, FALSE); } gtk_widget_set_sensitive(os->avoidloggingotrbox, TRUE); } else { gtk_widget_set_sensitive(os->automaticbox, FALSE); gtk_widget_set_sensitive(os->onlyprivatebox, FALSE); gtk_widget_set_sensitive(os->avoidloggingotrbox, FALSE); } } static void create_otrsettings_buttons(struct otrsettingsdata *os, GtkWidget *vbox) { GtkWidget *tempbox1, *tempbox2; os->enablebox = gtk_check_button_new_with_label(_("Enable private " "messaging")); os->automaticbox = gtk_check_button_new_with_label(_("Automatically " "initiate private messaging")); os->onlyprivatebox = gtk_check_button_new_with_label(_("Require private " "messaging")); os->avoidloggingotrbox = gtk_check_button_new_with_label( _("Don't log OTR conversations")); gtk_box_pack_start(GTK_BOX(vbox), os->enablebox, FALSE, FALSE, 0); tempbox1 = gtk_hbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox), tempbox1, FALSE, FALSE, 0); tempbox2 = gtk_vbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(tempbox1), tempbox2, FALSE, FALSE, 5); gtk_box_pack_start(GTK_BOX(tempbox2), os->automaticbox, FALSE, FALSE, 0); tempbox1 = gtk_hbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(tempbox2), tempbox1, FALSE, FALSE, 0); tempbox2 = gtk_vbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(tempbox1), tempbox2, FALSE, FALSE, 5); gtk_box_pack_start(GTK_BOX(tempbox2), os->onlyprivatebox, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox), os->avoidloggingotrbox, FALSE, FALSE, 5); g_signal_connect(G_OBJECT(os->enablebox), "clicked", G_CALLBACK(otrsettings_clicked_cb), os); g_signal_connect(G_OBJECT(os->automaticbox), "clicked", G_CALLBACK(otrsettings_clicked_cb), os); g_signal_connect(G_OBJECT(os->onlyprivatebox), "clicked", G_CALLBACK(otrsettings_clicked_cb), os); g_signal_connect(G_OBJECT(os->avoidloggingotrbox), "clicked", G_CALLBACK(otrsettings_clicked_cb), os); } static void otroptions_clicked_cb(GtkButton *button, struct otroptionsdata *oo) { /* This doesn't really do anything useful right now, but is here for * future expansion purposes. */ gtk_widget_set_sensitive(oo->showotrbutton, TRUE); } static void create_otroptions_buttons(struct otroptionsdata *oo, GtkWidget *vbox) { oo->showotrbutton = gtk_check_button_new_with_label( _("Show OTR button in toolbar")); gtk_box_pack_start(GTK_BOX(vbox), oo->showotrbutton, FALSE, FALSE, 0); g_signal_connect(G_OBJECT(oo->showotrbutton), "clicked", G_CALLBACK(otroptions_clicked_cb), oo); } /* Load the global OTR prefs */ static void otrg_gtk_ui_global_prefs_load(gboolean *enabledp, gboolean *automaticp, gboolean *onlyprivatep, gboolean *avoidloggingotrp) { if (purple_prefs_exists("/OTR/enabled")) { *enabledp = purple_prefs_get_bool("/OTR/enabled"); *automaticp = purple_prefs_get_bool("/OTR/automatic"); *onlyprivatep = purple_prefs_get_bool("/OTR/onlyprivate"); *avoidloggingotrp = purple_prefs_get_bool("/OTR/avoidloggingotr"); } else { *enabledp = TRUE; *automaticp = TRUE; *onlyprivatep = FALSE; *avoidloggingotrp = TRUE; } } /* Save the global OTR prefs */ static void otrg_gtk_ui_global_prefs_save(gboolean enabled, gboolean automatic, gboolean onlyprivate, gboolean avoidloggingotr) { if (! purple_prefs_exists("/OTR")) { purple_prefs_add_none("/OTR"); } purple_prefs_set_bool("/OTR/enabled", enabled); purple_prefs_set_bool("/OTR/automatic", automatic); purple_prefs_set_bool("/OTR/onlyprivate", onlyprivate); purple_prefs_set_bool("/OTR/avoidloggingotr", avoidloggingotr); } /* Load the OTR prefs for a particular buddy */ static void otrg_gtk_ui_buddy_prefs_load(PurpleBuddy *buddy, gboolean *usedefaultp, gboolean *enabledp, gboolean *automaticp, gboolean *onlyprivatep, gboolean *avoidloggingotrp) { PurpleBlistNode *node = &(buddy->node); *usedefaultp = ! purple_blist_node_get_bool(node, "OTR/overridedefault"); if (*usedefaultp) { otrg_gtk_ui_global_prefs_load(enabledp, automaticp, onlyprivatep, avoidloggingotrp); } else { *enabledp = purple_blist_node_get_bool(node, "OTR/enabled"); *automaticp = purple_blist_node_get_bool(node, "OTR/automatic"); *onlyprivatep = purple_blist_node_get_bool(node, "OTR/onlyprivate"); *avoidloggingotrp = purple_blist_node_get_bool(node, "OTR/avoidloggingotr"); } } /* Save the OTR prefs for a particular buddy */ static void otrg_gtk_ui_buddy_prefs_save(PurpleBuddy *buddy, gboolean usedefault, gboolean enabled, gboolean automatic, gboolean onlyprivate, gboolean avoidloggingotr) { PurpleBlistNode *node = &(buddy->node); purple_blist_node_set_bool(node, "OTR/overridedefault", !usedefault); purple_blist_node_set_bool(node, "OTR/enabled", enabled); purple_blist_node_set_bool(node, "OTR/automatic", automatic); purple_blist_node_set_bool(node, "OTR/onlyprivate", onlyprivate); purple_blist_node_set_bool(node, "OTR/avoidloggingotr", avoidloggingotr); } static void load_otrsettings(struct otrsettingsdata *os) { gboolean otrenabled; gboolean otrautomatic; gboolean otronlyprivate; gboolean otravoidloggingotr; otrg_gtk_ui_global_prefs_load(&otrenabled, &otrautomatic, &otronlyprivate, &otravoidloggingotr); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(os->enablebox), otrenabled); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(os->automaticbox), otrautomatic); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(os->onlyprivatebox), otronlyprivate); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(os->avoidloggingotrbox), otravoidloggingotr); otrsettings_clicked_cb(GTK_BUTTON(os->enablebox), os); } /* Load the global OTR UI options */ static void otrg_gtk_ui_global_options_load(gboolean *showotrbuttonp) { if (purple_prefs_exists("/OTR/showotrbutton")) { *showotrbuttonp = purple_prefs_get_bool("/OTR/showotrbutton"); } else { *showotrbuttonp = TRUE; } } /* Save the global OTR UI options */ static void otrg_gtk_ui_global_options_save(gboolean showotrbutton) { if (! purple_prefs_exists("/OTR")) { purple_prefs_add_none("/OTR"); } if (! purple_prefs_exists("/OTR/showotrbutton")) { purple_prefs_add_bool("/OTR/showotrbutton", showotrbutton); } purple_prefs_set_bool("/OTR/showotrbutton", showotrbutton); } static void load_otroptions(struct otroptionsdata *oo) { gboolean showotrbutton; otrg_gtk_ui_global_options_load(&showotrbutton); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(oo->showotrbutton), showotrbutton); otroptions_clicked_cb(GTK_BUTTON(oo->showotrbutton), oo); } /* Create the privkeys UI, and pack it into the vbox */ static void make_privkeys_ui(GtkWidget *vbox) { GtkWidget *fbox; GtkWidget *hbox; GtkWidget *label; GtkWidget *frame; frame = gtk_frame_new(_("My private keys")); gtk_box_pack_start(GTK_BOX(vbox), frame, FALSE, FALSE, 0); fbox = gtk_vbox_new(FALSE, 5); gtk_container_set_border_width(GTK_CONTAINER(fbox), 10); gtk_container_add(GTK_CONTAINER(frame), fbox); hbox = gtk_hbox_new(FALSE, 5); gtk_box_pack_start(GTK_BOX(fbox), hbox, FALSE, FALSE, 0); label = gtk_label_new(_("Key for account:")); gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); ui_layout.accountmenu = pidgin_account_option_menu_new(NULL, 1, G_CALLBACK(account_menu_changed_cb), NULL, NULL); gtk_box_pack_start(GTK_BOX(hbox), ui_layout.accountmenu, TRUE, TRUE, 0); /* Make sure we notice if the menu changes because an account has * been added or removed */ purple_signal_connect(purple_accounts_get_handle(), "account-added", ui_layout.accountmenu, PURPLE_CALLBACK(account_menu_added_removed_cb), NULL); purple_signal_connect(purple_accounts_get_handle(), "account-removed", ui_layout.accountmenu, PURPLE_CALLBACK(account_menu_added_removed_cb), NULL); ui_layout.fprint_label = gtk_label_new(""); gtk_label_set_selectable(GTK_LABEL(ui_layout.fprint_label), 1); gtk_box_pack_start(GTK_BOX(fbox), ui_layout.fprint_label, FALSE, FALSE, 0); ui_layout.generate_button = gtk_button_new(); gtk_signal_connect(GTK_OBJECT(ui_layout.generate_button), "clicked", GTK_SIGNAL_FUNC(generate), NULL); label = gtk_label_new(_("Generate")); gtk_container_add(GTK_CONTAINER(ui_layout.generate_button), label); otrg_gtk_ui_update_fingerprint(); gtk_box_pack_start(GTK_BOX(fbox), ui_layout.generate_button, FALSE, FALSE, 0); } /* Save the global OTR settings whenever they're clicked */ static void otrsettings_save_cb(GtkButton *button, struct otrsettingsdata *os) { otrg_gtk_ui_global_prefs_save( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(os->enablebox)), gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(os->automaticbox)), gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(os->onlyprivatebox)), gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(os->avoidloggingotrbox))); otrg_dialog_resensitize_all(); } /* Save the global OTR UI options whenever they're clicked */ static void otroptions_save_cb(GtkButton *button, struct otroptionsdata *oo) { otrg_gtk_ui_global_options_save( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(oo->showotrbutton))); otrg_dialog_resensitize_all(); } /* Make the settings UI, and pack it into the vbox */ static void make_settings_ui(GtkWidget *vbox) { GtkWidget *fbox; GtkWidget *frame; frame = gtk_frame_new(_("Default OTR Settings")); gtk_box_pack_start(GTK_BOX(vbox), frame, FALSE, FALSE, 0); fbox = gtk_vbox_new(FALSE, 0); gtk_container_set_border_width(GTK_CONTAINER(fbox), 10); gtk_container_add(GTK_CONTAINER(frame), fbox); create_otrsettings_buttons(&(ui_layout.os), fbox); load_otrsettings(&(ui_layout.os)); g_signal_connect(G_OBJECT(ui_layout.os.enablebox), "clicked", G_CALLBACK(otrsettings_save_cb), &(ui_layout.os)); g_signal_connect(G_OBJECT(ui_layout.os.automaticbox), "clicked", G_CALLBACK(otrsettings_save_cb), &(ui_layout.os)); g_signal_connect(G_OBJECT(ui_layout.os.onlyprivatebox), "clicked", G_CALLBACK(otrsettings_save_cb), &(ui_layout.os)); g_signal_connect(G_OBJECT(ui_layout.os.avoidloggingotrbox), "clicked", G_CALLBACK(otrsettings_save_cb), &(ui_layout.os)); } /* Make the options UI, and pack it into the vbox */ static void make_options_ui(GtkWidget *vbox) { GtkWidget *fbox; GtkWidget *frame; frame = gtk_frame_new(_("OTR UI Options")); gtk_box_pack_start(GTK_BOX(vbox), frame, FALSE, FALSE, 0); fbox = gtk_vbox_new(FALSE, 0); gtk_container_set_border_width(GTK_CONTAINER(fbox), 10); gtk_container_add(GTK_CONTAINER(frame), fbox); create_otroptions_buttons(&(ui_layout.oo), fbox); load_otroptions(&(ui_layout.oo)); g_signal_connect(G_OBJECT(ui_layout.oo.showotrbutton), "clicked", G_CALLBACK(otroptions_save_cb), &(ui_layout.oo)); } /* Create the fingerprint UI, and pack it into the vbox */ static void make_fingerprints_ui(GtkWidget *vbox) { GtkWidget *hbox; GtkWidget *table; GtkWidget *label; char *titles[5]; titles[0] = _("Screenname"); titles[1] = _("Status"); titles[2] = _("Verified"); titles[3] = _("Fingerprint"); titles[4] = _("Account"); ui_layout.scrollwin = gtk_scrolled_window_new(0, 0); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(ui_layout.scrollwin), GTK_POLICY_ALWAYS, GTK_POLICY_ALWAYS); ui_layout.keylist = gtk_clist_new_with_titles(5, titles); gtk_clist_set_column_width(GTK_CLIST(ui_layout.keylist), 0, 90); gtk_clist_set_column_width(GTK_CLIST(ui_layout.keylist), 1, 90); gtk_clist_set_column_width(GTK_CLIST(ui_layout.keylist), 2, 60); gtk_clist_set_column_width(GTK_CLIST(ui_layout.keylist), 3, 400); gtk_clist_set_column_width(GTK_CLIST(ui_layout.keylist), 4, 200); gtk_clist_set_selection_mode(GTK_CLIST(ui_layout.keylist), GTK_SELECTION_SINGLE); gtk_clist_column_titles_active(GTK_CLIST(ui_layout.keylist)); gtk_container_add(GTK_CONTAINER(ui_layout.scrollwin), ui_layout.keylist); gtk_box_pack_start(GTK_BOX(vbox), ui_layout.scrollwin, TRUE, TRUE, 0); otrg_gtk_ui_update_keylist(); hbox = gtk_hbox_new(FALSE, 5); gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 5); table = gtk_table_new(2, 2, TRUE); gtk_table_set_row_spacings(GTK_TABLE(table), 5); gtk_table_set_col_spacings(GTK_TABLE(table), 20); gtk_box_pack_start(GTK_BOX(hbox), gtk_label_new(""), TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(hbox), table, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(hbox), gtk_label_new(""), TRUE, TRUE, 0); ui_layout.connect_button = gtk_button_new(); gtk_signal_connect(GTK_OBJECT(ui_layout.connect_button), "clicked", GTK_SIGNAL_FUNC(connect_connection), NULL); label = gtk_label_new(_("Start private connection")); gtk_container_add(GTK_CONTAINER(ui_layout.connect_button), label); gtk_table_attach_defaults(GTK_TABLE(table), ui_layout.connect_button, 0, 1, 0, 1); ui_layout.disconnect_button = gtk_button_new(); gtk_signal_connect(GTK_OBJECT(ui_layout.disconnect_button), "clicked", GTK_SIGNAL_FUNC(disconnect_connection), NULL); label = gtk_label_new(_("End private connection")); gtk_container_add(GTK_CONTAINER(ui_layout.disconnect_button), label); gtk_table_attach_defaults(GTK_TABLE(table), ui_layout.disconnect_button, 0, 1, 1, 2); ui_layout.verify_button = gtk_button_new(); gtk_signal_connect(GTK_OBJECT(ui_layout.verify_button), "clicked", GTK_SIGNAL_FUNC(verify_fingerprint), NULL); label = gtk_label_new(_("Verify fingerprint")); gtk_container_add(GTK_CONTAINER(ui_layout.verify_button), label); gtk_table_attach_defaults(GTK_TABLE(table), ui_layout.verify_button, 1, 2, 0, 1); ui_layout.forget_button = gtk_button_new(); gtk_signal_connect(GTK_OBJECT(ui_layout.forget_button), "clicked", GTK_SIGNAL_FUNC(forget_fingerprint), NULL); label = gtk_label_new(_("Forget fingerprint")); gtk_container_add(GTK_CONTAINER(ui_layout.forget_button), label); gtk_table_attach_defaults(GTK_TABLE(table), ui_layout.forget_button, 1, 2, 1, 2); gtk_signal_connect(GTK_OBJECT(vbox), "destroy", GTK_SIGNAL_FUNC(ui_destroyed), NULL); /* Handle selections and deselections */ gtk_signal_connect(GTK_OBJECT(ui_layout.keylist), "select_row", GTK_SIGNAL_FUNC(clist_selected), NULL); gtk_signal_connect(GTK_OBJECT(ui_layout.keylist), "unselect_row", GTK_SIGNAL_FUNC(clist_unselected), NULL); /* Handle column sorting */ gtk_signal_connect(GTK_OBJECT(ui_layout.keylist), "click-column", GTK_SIGNAL_FUNC(clist_click_column), NULL); ui_layout.sortcol = 0; ui_layout.sortdir = 1; clist_all_unselected(); } /* Construct the OTR UI widget */ GtkWidget* otrg_gtk_ui_make_widget(PurplePlugin *plugin) { GtkWidget *vbox = gtk_vbox_new(FALSE, 5); GtkWidget *fingerprintbox = gtk_vbox_new(FALSE, 5); GtkWidget *configbox = gtk_vbox_new(FALSE, 5); GtkWidget *notebook = gtk_notebook_new(); gtk_container_set_border_width(GTK_CONTAINER(vbox), 2); gtk_container_set_border_width(GTK_CONTAINER(fingerprintbox), 5); gtk_container_set_border_width(GTK_CONTAINER(configbox), 5); gtk_box_pack_start(GTK_BOX(vbox), notebook, TRUE, TRUE, 0); make_privkeys_ui(configbox); make_settings_ui(configbox); make_options_ui(configbox); /* gtk_container_set_border_width(GTK_CONTAINER(vbox), 10); gtk_container_add(GTK_CONTAINER(confwindow), vbox); */ make_fingerprints_ui(fingerprintbox); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), configbox, gtk_label_new(_("Config"))); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), fingerprintbox, gtk_label_new(_("Known fingerprints"))); gtk_widget_show_all(vbox); return vbox; } struct cbdata { GtkWidget *dialog; PurpleBuddy *buddy; GtkWidget *defaultbox; struct otrsettingsdata os; }; static void default_clicked_cb(GtkButton *button, struct cbdata *data) { gboolean defaultset = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->defaultbox)); if (defaultset) { gtk_widget_set_sensitive(data->os.enablebox, FALSE); gtk_widget_set_sensitive(data->os.automaticbox, FALSE); gtk_widget_set_sensitive(data->os.onlyprivatebox, FALSE); gtk_widget_set_sensitive(data->os.avoidloggingotrbox, FALSE); } else { otrsettings_clicked_cb(button, &(data->os)); } } static void load_buddyprefs(struct cbdata *data) { gboolean usedefault, enabled, automatic, onlyprivate, avoidloggingotr; otrg_gtk_ui_buddy_prefs_load(data->buddy, &usedefault, &enabled, &automatic, &onlyprivate, &avoidloggingotr); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->defaultbox), usedefault); if (usedefault) { /* Load the global defaults */ load_otrsettings(&(data->os)); } else { /* We've got buddy-specific prefs */ gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON(data->os.enablebox), enabled); gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON(data->os.automaticbox), automatic); gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON(data->os.onlyprivatebox), onlyprivate); gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON(data->os.avoidloggingotrbox), avoidloggingotr); } default_clicked_cb(GTK_BUTTON(data->defaultbox), data); } static void config_buddy_destroy_cb(GtkWidget *w, struct cbdata *data) { free(data); } static void config_buddy_clicked_cb(GtkButton *button, struct cbdata *data) { gboolean enabled = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(data->os.enablebox)); /* Apply the changes */ otrg_gtk_ui_buddy_prefs_save(data->buddy, gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(data->defaultbox)), enabled, gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(data->os.automaticbox)), gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(data->os.onlyprivatebox)), gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(data->os.avoidloggingotrbox))); otrg_dialog_resensitize_all(); } static void config_buddy_response_cb(GtkDialog *dialog, gint resp, struct cbdata *data) { gtk_widget_destroy(data->dialog); } static void otrg_gtk_ui_config_buddy(PurpleBuddy *buddy) { GtkWidget *dialog; GtkWidget *label; char *label_text; char *label_markup; struct cbdata *data = malloc(sizeof(struct cbdata)); if (!data) return; dialog = gtk_dialog_new_with_buttons(_("OTR Settings"), NULL, 0, GTK_STOCK_OK, GTK_RESPONSE_OK, NULL); gtk_window_set_accept_focus(GTK_WINDOW(dialog), FALSE); gtk_window_set_role(GTK_WINDOW(dialog), "otr_settings"); gtk_container_set_border_width(GTK_CONTAINER(dialog), 6); gtk_window_set_resizable(GTK_WINDOW(dialog), FALSE); gtk_dialog_set_has_separator(GTK_DIALOG(dialog), FALSE); gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(dialog)->vbox), 0); gtk_container_set_border_width(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), 0); data->dialog = dialog; data->buddy = buddy; /* Set the title */ label_text = g_strdup_printf(_("OTR Settings for %s"), purple_buddy_get_contact_alias(buddy)); label_markup = g_strdup_printf("" "%s", label_text); label = gtk_label_new(NULL); gtk_label_set_markup(GTK_LABEL(label), label_markup); g_free(label_markup); g_free(label_text); gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); gtk_misc_set_alignment(GTK_MISC(label), 0, 0); gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), label, FALSE, FALSE, 5); /* Make the cascaded checkboxes */ data->defaultbox = gtk_check_button_new_with_label(_("Use default " "OTR settings for this buddy")); gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), data->defaultbox, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), gtk_hseparator_new(), FALSE, FALSE, 5); create_otrsettings_buttons(&(data->os), GTK_DIALOG(dialog)->vbox); g_signal_connect(G_OBJECT(data->defaultbox), "clicked", G_CALLBACK(default_clicked_cb), data); g_signal_connect(G_OBJECT(data->defaultbox), "clicked", G_CALLBACK(config_buddy_clicked_cb), data); g_signal_connect(G_OBJECT(data->os.enablebox), "clicked", G_CALLBACK(config_buddy_clicked_cb), data); g_signal_connect(G_OBJECT(data->os.automaticbox), "clicked", G_CALLBACK(config_buddy_clicked_cb), data); g_signal_connect(G_OBJECT(data->os.onlyprivatebox), "clicked", G_CALLBACK(config_buddy_clicked_cb), data); g_signal_connect(G_OBJECT(data->os.avoidloggingotrbox), "clicked", G_CALLBACK(config_buddy_clicked_cb), data); /* Set the inital states of the buttons */ load_buddyprefs(data); g_signal_connect(G_OBJECT(dialog), "destroy", G_CALLBACK(config_buddy_destroy_cb), data); g_signal_connect(G_OBJECT(dialog), "response", G_CALLBACK(config_buddy_response_cb), data); gtk_widget_show_all(dialog); } /* Load the preferences for a particular account / username */ static void otrg_gtk_ui_get_prefs(OtrgUiPrefs *prefsp, PurpleAccount *account, const char *name) { PurpleBuddy *buddy; gboolean otrenabled, otrautomatic, otronlyprivate, otravoidloggingotr; gboolean buddyusedefault, buddyenabled, buddyautomatic, buddyonlyprivate, buddyavoidloggingotr; prefsp->policy = OTRL_POLICY_DEFAULT; prefsp->avoid_logging_otr = FALSE; prefsp->show_otr_button = FALSE; /* Get the default policy */ otrg_gtk_ui_global_prefs_load(&otrenabled, &otrautomatic, &otronlyprivate, &otravoidloggingotr); otrg_gtk_ui_global_options_load(&(prefsp->show_otr_button)); if (otrenabled) { if (otrautomatic) { if (otronlyprivate) { prefsp->policy = OTRL_POLICY_ALWAYS; } else { prefsp->policy = OTRL_POLICY_OPPORTUNISTIC; } } else { prefsp->policy = OTRL_POLICY_MANUAL; } prefsp->avoid_logging_otr = otravoidloggingotr; } else { prefsp->policy = OTRL_POLICY_NEVER; } buddy = purple_find_buddy(account, name); if (!buddy) return; /* Get the buddy-specific policy, if present */ otrg_gtk_ui_buddy_prefs_load(buddy, &buddyusedefault, &buddyenabled, &buddyautomatic, &buddyonlyprivate, &buddyavoidloggingotr); if (buddyusedefault) return; if (buddyenabled) { if (buddyautomatic) { if (buddyonlyprivate) { prefsp->policy = OTRL_POLICY_ALWAYS; } else { prefsp->policy = OTRL_POLICY_OPPORTUNISTIC; } } else { prefsp->policy = OTRL_POLICY_MANUAL; } prefsp->avoid_logging_otr = buddyavoidloggingotr; } else { prefsp->policy = OTRL_POLICY_NEVER; } } /* Initialize the OTR UI subsystem */ static void otrg_gtk_ui_init(void) { /* Nothing to do */ } /* Deinitialize the OTR UI subsystem */ static void otrg_gtk_ui_cleanup(void) { /* Nothing to do */ } static const OtrgUiUiOps gtk_ui_ui_ops = { otrg_gtk_ui_init, otrg_gtk_ui_cleanup, otrg_gtk_ui_update_fingerprint, otrg_gtk_ui_update_keylist, otrg_gtk_ui_config_buddy, otrg_gtk_ui_get_prefs }; /* Get the GTK UI ops */ const OtrgUiUiOps *otrg_gtk_ui_get_ui_ops(void) { return >k_ui_ui_ops; } pidgin-otr-4.0.0/missing0000755000175000017500000002623311331674343012122 00000000000000#! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2009-04-28.21; # UTC # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, # 2008, 2009 Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' sed_minuso='s/.* -o \([^ ]*\).*/\1/p' # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi msg="missing on your system" case $1 in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 # Exit code 63 means version mismatch. This often happens # when the user try to use an ancient version of a tool on # a file that requires a minimum version. In this case we # we should proceed has if the program had been absent, or # if --run hadn't been passed. if test $? = 63; then run=: msg="probably too old" fi ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' autom4te touch the output file, or create a stub one automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch] Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and \`g' are ignored when checking the name. Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; esac # normalize program name to check for. program=`echo "$1" | sed ' s/^gnu-//; t s/^gnu//; t s/^g//; t'` # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). This is about non-GNU programs, so use $1 not # $program. case $1 in lex*|yacc*) # Not GNU programs, they don't have --version. ;; tar*) if test -n "$run"; then echo 1>&2 "ERROR: \`tar' requires --run" exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then exit 1 fi ;; *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then # Could not run --version or --help. This is probably someone # running `$TOOL --version' or `$TOOL --help' to check whether # $TOOL exists and not knowing $TOOL uses missing. exit 1 fi ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case $program in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case $f in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te*) echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison*|yacc*) echo 1>&2 "\ WARNING: \`$1' $msg. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if test $# -ne 1; then eval LASTARG="\${$#}" case $LASTARG in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.h fi ;; esac fi if test ! -f y.tab.h; then echo >y.tab.h fi if test ! -f y.tab.c; then echo 'main() { return 0; }' >y.tab.c fi ;; lex*|flex*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if test $# -ne 1; then eval LASTARG="\${$#}" case $LASTARG in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if test ! -f lex.yy.c; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit $? fi ;; makeinfo*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." # The file to touch is that specified with -o ... file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -z "$file"; then # ... or it is the one specified with @setfilename ... infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n ' /^@setfilename/{ s/.* \([^ ]*\) *$/\1/ p q }' $infile` # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi # If the file does not exist, the user really needs makeinfo; # let's fail without touching anything. test -f $file || exit 1 touch $file ;; tar*) shift # We have already tried tar in the generic part. # Look for gnutar/gtar before invocation to avoid ugly error # messages. if (gnutar --version > /dev/null 2>&1); then gnutar "$@" && exit 0 fi if (gtar --version > /dev/null 2>&1); then gtar "$@" && exit 0 fi firstarg="$1" if shift; then case $firstarg in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" "$@" && exit 0 ;; esac case $firstarg in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" "$@" && exit 0 ;; esac fi echo 1>&2 "\ WARNING: I can't seem to be able to run \`tar' with the given arguments. You may want to install GNU tar or Free paxutils, or check the command line arguments." exit 1 ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: pidgin-otr-4.0.0/install-sh0000755000175000017500000003253711321062331012516 00000000000000#!/bin/sh # install - install a program, script, or datafile scriptversion=2009-04-28.21; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. nl=' ' IFS=" "" $nl" # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit=${DOITPROG-} if test -z "$doit"; then doit_exec=exec else doit_exec=$doit fi # Put in absolute file names if you don't have them in your path; # or use environment vars. chgrpprog=${CHGRPPROG-chgrp} chmodprog=${CHMODPROG-chmod} chownprog=${CHOWNPROG-chown} cmpprog=${CMPPROG-cmp} cpprog=${CPPROG-cp} mkdirprog=${MKDIRPROG-mkdir} mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} posix_glob='?' initialize_posix_glob=' test "$posix_glob" != "?" || { if (set -f) 2>/dev/null; then posix_glob= else posix_glob=: fi } ' posix_mkdir= # Desired mode of installed file. mode=0755 chgrpcmd= chmodcmd=$chmodprog chowncmd= mvcmd=$mvprog rmcmd="$rmprog -f" stripcmd= src= dst= dir_arg= dst_arg= copy_on_change=false no_target_directory= usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: --help display this help and exit. --version display version info and exit. -c (ignored) -C install only if different (preserve the last data modification time) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test $# -ne 0; do case $1 in -c) ;; -C) copy_on_change=true;; -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 case $mode in *' '* | *' '* | *' '* | *'*'* | *'?'* | *'['*) echo "$0: invalid mode: $mode" >&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) dst_arg=$2 shift;; -T) no_target_directory=true;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dst_arg" shift # fnord fi shift # arg dst_arg=$arg done fi if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then trap '(exit $?); exit' 1 2 13 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names starting with `-'. case $src in -*) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dst_arg # Protect names starting with `-'. case $dst in -*) dst=./$dst;; esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else # Prefer dirname, but fall back on a substitute if dirname fails. dstdir=` (dirname "$dst") 2>/dev/null || expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$dst" : 'X\(//\)[^/]' \| \ X"$dst" : 'X\(//\)$' \| \ X"$dst" : 'X\(/\)' \| . 2>/dev/null || echo X"$dst" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q' ` test -d "$dstdir" dstdir_status=$? fi fi obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') # Create intermediate dirs using mode 755 as modified by the umask. # This is like FreeBSD 'install' as of 1997-10-28. umask=`umask` case $stripcmd.$umask in # Optimize common cases. *[2367][2367]) mkdir_umask=$umask;; .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; *[0-7]) mkdir_umask=`expr $umask + 22 \ - $umask % 100 % 40 + $umask % 20 \ - $umask % 10 % 4 + $umask % 2 `;; *) mkdir_umask=$umask,go-w;; esac # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then mkdir_mode=-m$mode else mkdir_mode= fi posix_mkdir=false case $umask in *[123567][0-7][0-7]) # POSIX mkdir -p sets u+wx bits regardless of umask, which # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 if (umask $mkdir_umask && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writeable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/d" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null fi trap '' 0;; esac;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # The umask is ridiculous, or mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; -*) prefix='./';; *) prefix='';; esac eval "$initialize_posix_glob" oIFS=$IFS IFS=/ $posix_glob set -f set fnord $dstdir shift $posix_glob set +f IFS=$oIFS prefixes= for d do test -z "$d" && continue prefix=$prefix$d if test -d "$prefix"; then prefixes= else if $posix_mkdir; then (umask=$mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 else case $prefix in *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; *) qprefix=$prefix;; esac prefixes="$prefixes '$qprefix'" fi fi prefix=$prefix/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && eval "$initialize_posix_glob" && $posix_glob set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && $posix_glob set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. { # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { test ! -f "$dst" || $doit $rmcmd -f "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 trap '' 0 fi done # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: pidgin-otr-4.0.0/dialogs.h0000644000175000017500000001540312020421667012306 00000000000000/* * Off-the-Record Messaging plugin for pidgin * Copyright (C) 2004-2012 Ian Goldberg, Rob Smits, * Chris Alexander, Willy Lew, * Nikita Borisov * * * This program is free software; you can redistribute it and/or modify * it under the terms of version 2 of the GNU General Public License as * published by the Free Software Foundation. * * 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 */ #ifndef __OTRG_DIALOGS_H__ #define __OTRG_DIALOGS_H__ /* pidgin headers */ #include "notify.h" /* libotr headers */ #include #include /* The various help URLs */ #define BASE_HELPURL "http://otr-help.cypherpunks.ca/" PIDGIN_OTR_VERSION "/" #define AUTHENTICATE_HELPURL BASE_HELPURL "authenticate.php" #define SESSIONID_HELPURL BASE_HELPURL "sessionid.php" #define UNVERIFIED_HELPURL BASE_HELPURL "unverified.php" #define LEVELS_HELPURL BASE_HELPURL "levels.php" #define SESSIONS_HELPURL BASE_HELPURL "sessions.php" typedef struct s_OtrgDialogWait *OtrgDialogWaitHandle; typedef struct { void (*init)(void); void (*cleanup)(void); void (*notify_message)(PurpleNotifyMsgType type, const char *accountname, const char *protocol, const char *username, const char *title, const char *primary, const char *secondary); int (*display_otr_message)(const char *accountname, const char *protocol, const char *username, const char *msg, int force_create); OtrgDialogWaitHandle (*private_key_wait_start)(const char *account, const char *protocol); void (*private_key_wait_done)(OtrgDialogWaitHandle handle); void (*unknown_fingerprint)(OtrlUserState us, const char *accountname, const char *protocol, const char *who, unsigned char fingerprint[20]); void (*verify_fingerprint)(Fingerprint *fprint); void (*socialist_millionaires)(ConnContext *context, char *question, gboolean responder); void (*update_smp)(ConnContext *context, OtrlSMPEvent smp_event, double progress_level); void (*connected)(ConnContext *context); void (*disconnected)(ConnContext *context); void (*stillconnected)(ConnContext *context); void (*finished)(const char *accountname, const char *protocol, const char *username); void (*resensitize_all)(void); void (*new_conv)(PurpleConversation *conv); void (*remove_conv)(PurpleConversation *conv); } OtrgDialogUiOps; /* Set the UI ops */ void otrg_dialog_set_ui_ops(const OtrgDialogUiOps *ops); /* Get the UI ops */ const OtrgDialogUiOps *otrg_dialog_get_ui_ops(void); /* Initialize the OTR dialog subsystem */ void otrg_dialog_init(void); /* Deinitialize the OTR dialog subsystem */ void otrg_dialog_cleanup(void); /* This is just like pidgin_notify_message, except: (a) it doesn't grab * keyboard focus, (b) the button is "OK" instead of "Close", and (c) * the labels aren't limited to 2K. */ void otrg_dialog_notify_message(PurpleNotifyMsgType type, const char *accountname, const char *protocol, const char *username, const char *title, const char *primary, const char *secondary); /* Put up the error version of otrg_dialog_notify_message */ void otrg_dialog_notify_error(const char *accountname, const char *protocol, const char *username, const char *title, const char *primary, const char *secondary); /* Put up the warning version of otrg_dialog_notify_message */ void otrg_dialog_notify_warning(const char *accountname, const char *protocol, const char *username, const char *title, const char *primary, const char *secondary); /* Put up the info version of otrg_dialog_notify_message */ void otrg_dialog_notify_info(const char *accountname, const char *protocol, const char *username, const char *title, const char *primary, const char *secondary); /* Display an OTR control message for the given accountname / protocol / * username conversation. Return 0 on success, non-0 on error (in which * case the message will be displayed inline as a received message). */ int otrg_dialog_display_otr_message(const char *accountname, const char *protocol, const char *username, const char *msg, int force_create); /* Put up a Please Wait dialog. This dialog can not be cancelled. * Return a handle that must eventually be passed to * otrg_dialog_private_key_wait_done. */ OtrgDialogWaitHandle otrg_dialog_private_key_wait_start(const char *account, const char *protocol); /* End a Please Wait dialog. */ void otrg_dialog_private_key_wait_done(OtrgDialogWaitHandle handle); /* Show a dialog informing the user that a correspondent (who) has sent * us a Key Exchange Message (kem) that contains an unknown fingerprint. */ void otrg_dialog_unknown_fingerprint(OtrlUserState us, const char *accountname, const char *protocol, const char *who, unsigned char fingerprint[20]); /* Show a dialog asking the user to verify the given fingerprint. */ void otrg_dialog_verify_fingerprint(Fingerprint *fprint); /* Show a dialog asking the user to give an SMP secret. */ void otrg_dialog_socialist_millionaires(ConnContext *context); /* Show a dialog asking the user to give an SMP secret, prompting with a * question. */ void otrg_dialog_socialist_millionaires_q(ConnContext *context, char *question); /* Update the status of an ongoing socialist millionaires protocol. */ void otrg_dialog_update_smp(ConnContext *context, OtrlSMPEvent smp_event, double progress_level); /* Call this when a context transitions to ENCRYPTED. */ void otrg_dialog_connected(ConnContext *context); /* Call this when a context transitions to PLAINTEXT. */ void otrg_dialog_disconnected(ConnContext *context); /* Call this when we receive a Key Exchange message that doesn't cause * our state to change (because it was just the keys we knew already). */ void otrg_dialog_stillconnected(ConnContext *context); /* Call this if the remote user terminates his end of an ENCRYPTED * connection, and lets us know. */ void otrg_dialog_finished(const char *accountname, const char *protocol, const char *username); /* Set all OTR buttons to "sensitive" or "insensitive" as appropriate. * Call this when accounts are logged in or out. */ void otrg_dialog_resensitize_all(void); /* Set up the per-conversation information display */ void otrg_dialog_new_conv(PurpleConversation *conv); /* Remove the per-conversation information display */ void otrg_dialog_remove_conv(PurpleConversation *conv); #endif pidgin-otr-4.0.0/depcomp0000755000175000017500000004426711331674343012107 00000000000000#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2009-04-28.21; # UTC # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free # Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by `PROGRAMS ARGS'. object Object file output by `PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputing dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi cygpath_u="cygpath -u -f -" if test "$depmode" = msvcmsys; then # This is just like msvisualcpp but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u="sed s,\\\\\\\\,/,g" depmode=msvisualcpp fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. ## Unfortunately, FreeBSD c89 acceptance of flags depends upon ## the command line argument order; so add the flags where they ## appear in depend2.am. Note that the slowdown incurred here ## affects only configure: in makefiles, %FASTDEP% shortcuts this. for arg do case $arg in -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; *) set fnord "$@" "$arg" ;; esac shift # fnord shift # $arg done "$@" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the `deleted header file' problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' ' ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as ## well. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like `#:fec' to the end of the # dependency line. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' ' ' ' >> "$depfile" echo >> "$depfile" # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts `$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1=$dir$base.u tmpdepfile2=$base.u tmpdepfile3=$dir.libs/$base.u "$@" -Wc,-M else tmpdepfile1=$dir$base.u tmpdepfile2=$dir$base.u tmpdepfile3=$dir$base.u "$@" -M fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; icc) # Intel's C compiler understands `-MD -MF file'. However on # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h # which is wrong. We want: # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using \ : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp2) # The "hp" stanza above does not work with aCC (C++) and HP's ia64 # compilers, which have integrated preprocessors. The correct option # to use with these is +Maked; it writes dependencies to a file named # 'foo.d', which lands next to the object file, wherever that # happens to be. # Much of this is similar to the tru64 case; see comments there. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1=$dir$base.d tmpdepfile2=$dir.libs/$base.d "$@" -Wc,+Maked else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d "$@" +Maked fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" # Add `dependent.h:' lines. sed -ne '2,${ s/^ *// s/ \\*$// s/$/:/ p }' "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" "$tmpdepfile2" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in `foo.d' instead, so we check for that too. # Subdirectories are respected. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then # With Tru64 cc, shared objects can also be used to make a # static library. This mechanism is used in libtool 1.4 series to # handle both shared and static libraries in a single compilation. # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. # # With libtool 1.5 this exception was removed, and libtool now # generates 2 separate objects for the 2 libraries. These two # compilations output dependencies in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 tmpdepfile2=$dir$base.o.d # libtool 1.5 tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.o.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d tmpdepfile4=$dir$base.d "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for `:' # in the target name. This is to cope with DOS-style filenames: # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. "$@" $dashmflag | sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' ' < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # X makedepend shift cleared=no eat=no for arg do case $cleared in no) set ""; shift cleared=yes ;; esac if test $eat = yes; then eat=no continue fi case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -arch) eat=yes ;; -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix=`echo "$object" | sed 's/^.*\././'` touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi IFS=" " for arg do case "$arg" in -o) shift ;; $object) shift ;; "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E 2>/dev/null | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; msvcmsys) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: pidgin-otr-4.0.0/configure.ac0000644000175000017500000001140512020421667012777 00000000000000dnl Process this file with autoconf to produce configure. AC_INIT(pidgin-otr, 4.0.0) AM_CONFIG_HEADER(config.h) AM_INIT_AUTOMAKE([-Wall -Werror]) AC_PROG_CC dnl We do not want to create a .a for the plugin, so disable by default. AM_DISABLE_STATIC AM_PROG_LIBTOOL AM_PATH_LIBGCRYPT(1:1.2.0,,AC_MSG_ERROR(libgcrypt 1.2.0 or newer is required.)) AM_PATH_LIBOTR(4.0.0,,AC_MSG_ERROR(libotr 4.x >= 4.0.0 is required.)) PKG_CHECK_MODULES([EXTRA], [glib-2.0 >= 2.6 gtk+-2.0 >= 2.6 pidgin >= 2.0 purple >= 2.0]) AC_PROG_INTLTOOL GETTEXT_PACKAGE=pidgin-otr AC_SUBST(GETTEXT_PACKAGE) AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, ["$GETTEXT_PACKAGE"], [Define the gettext package to be used]) ALL_LINGUAS="ar de el es fa fr hu it my_MM nl nn pl ru sk sv vi zh_CN" AM_GLIB_GNU_GETTEXT dnl 1:flags dnl Taken from Tor's autoconf magic repository AC_DEFUN([OTR_CHECK_CFLAGS], [ AS_VAR_PUSHDEF([VAR],[otr_cv_cflags_$1]) AC_CACHE_CHECK([whether the compiler accepts $1], VAR, [ otr_saved_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -pedantic -Werror $1" AC_TRY_COMPILE([], [return 0;], [AS_VAR_SET(VAR,yes)], [AS_VAR_SET(VAR,no)]) CFLAGS="$otr_saved_CFLAGS" ]) if test x$VAR = xyes; then CFLAGS="$CFLAGS $1" fi AS_VAR_POPDEF([VAR]) ]) dnl 1:flags dnl 2:extra ldflags dnl 3:extra libraries AC_DEFUN([OTR_CHECK_LDFLAGS], [ AS_VAR_PUSHDEF([VAR],[otr_cv_ldflags_$1]) AC_CACHE_CHECK([whether the linker accepts $1], VAR, [ otr_saved_CFLAGS="$CFLAGS" otr_saved_LDFLAGS="$LDFLAGS" otr_saved_LIBS="$LIBS" CFLAGS="$CFLAGS -pedantic -Werror" LDFLAGS="$LDFLAGS $2 $1" LIBS="$LIBS $3" AC_RUN_IFELSE([AC_LANG_PROGRAM([#include ], [fputs("", stdout)])], [AS_VAR_SET(VAR,yes)], [AS_VAR_SET(VAR,no)], [AC_TRY_LINK([], [return 0;], [AS_VAR_SET(VAR,yes)], [AS_VAR_SET(VAR,no)])]) CFLAGS="$otr_saved_CFLAGS" LDFLAGS="$otr_saved_LDFLAGS" LIBS="$otr_saved_LIBS" ]) if test x$VAR = xyes; then LDFLAGS="$LDFLAGS $1" fi AS_VAR_POPDEF([VAR]) ]) dnl If _WIN32 is defined and non-zero, we are building for win32 AC_MSG_CHECKING([for win32]) AC_RUN_IFELSE([AC_LANG_SOURCE([ int main(int c, char **v) { #ifdef _WIN32 #if _WIN32 return 0; #else return 1; #endif #else return 2; #endif }])], bwin32=true; AC_MSG_RESULT([yes]), bwin32=false; AC_MSG_RESULT([no]), bwin32=cross; AC_MSG_RESULT([cross]) ) if test "$bwin32" = cross; then AC_MSG_CHECKING([for win32 (cross)]) AC_COMPILE_IFELSE([AC_LANG_SOURCE([ #ifdef _WIN32 int main(int c, char **v) {return 0;} #else #error int main(int c, char **v) {return x(y);} #endif ])], bwin32=true; AC_MSG_RESULT([yes]), bwin32=false; AC_MSG_RESULT([no])) fi AM_CONDITIONAL(BUILD_NT_SERVICES, test x$bwin32 = xtrue) dnl Adam Shostack suggests the following for Windows: dnl -D_FORTIFY_SOURCE=2 -fstack-protector-all dnl Others suggest '/gs /safeseh /nxcompat /dynamicbase' for non-gcc on Windows dnl This requires that we use gcc and that we add -O2 to the CFLAGS. AC_ARG_ENABLE(gcc-hardening, AS_HELP_STRING(--disable-gcc-hardening, disable compiler security checks)) dnl Linker hardening options dnl Currently these options are ELF specific - you can't use this with MacOSX AC_ARG_ENABLE(linker-hardening, AS_HELP_STRING(--disable-linker-hardening, disable linker security fixups)) dnl --------------------------------------------------------------------- dnl Now that we know about our major libraries, we can check for compiler dnl and linker hardening options. We need to do this with the libraries known, dnl since sometimes the linker will like an option but not be willing to dnl use it with a build of a library. all_ldflags_for_check="$LDFLAGS" all_libs_for_check="$LIBGCRYPT_LIBS" AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [ #if !defined(__clang__) #error #endif ])], have_clang=yes, have_clang=no) if test x$enable_gcc_hardening != xno; then CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=2" if test x$have_clang = xyes; then OTR_CHECK_CFLAGS(-Qunused-arguments) fi OTR_CHECK_CFLAGS(-fstack-protector-all) OTR_CHECK_CFLAGS(-Wstack-protector) OTR_CHECK_CFLAGS(-fwrapv) OTR_CHECK_CFLAGS(--param ssp-buffer-size=1) dnl Ian added the next four: OTR_CHECK_CFLAGS(-fno-strict-overflow) OTR_CHECK_CFLAGS(-Wall) OTR_CHECK_CFLAGS(-Wextra -Wno-unused-parameter -Wno-missing-field-initializers) OTR_CHECK_CFLAGS(-Wformat-security) if test "$bwin32" = "false"; then OTR_CHECK_CFLAGS(-fPIE) OTR_CHECK_LDFLAGS(-pie, "$all_ldflags_for_check", "$all_libs_for_check") fi fi if test x$enable_linker_hardening != xno; then OTR_CHECK_LDFLAGS(-z relro -z now, "$all_ldflags_for_check", "$all_libs_for_check") fi AC_OUTPUT([Makefile po/Makefile.in]) pidgin-otr-4.0.0/ui.h0000644000175000017500000000465212020421670011277 00000000000000/* * Off-the-Record Messaging plugin for pidgin * Copyright (C) 2004-2012 Ian Goldberg, Rob Smits, * Chris Alexander, Willy Lew, * Nikita Borisov * * * This program is free software; you can redistribute it and/or modify * it under the terms of version 2 of the GNU General Public License as * published by the Free Software Foundation. * * 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 */ #ifndef __OTRG_UI_H__ #define __OTRG_UI_H__ #include /* Global and per-buddy preferences */ typedef struct { OtrlPolicy policy; gboolean avoid_logging_otr; gboolean show_otr_button; } OtrgUiPrefs; typedef struct { void (*init)(void); void (*cleanup)(void); void (*update_fingerprint)(void); void (*update_keylist)(void); void (*config_buddy)(PurpleBuddy *buddy); void (*get_prefs)(OtrgUiPrefs *prefsp, PurpleAccount *account, const char *name); } OtrgUiUiOps; /* Set the UI ops */ void otrg_ui_set_ui_ops(const OtrgUiUiOps *ops); /* Get the UI ops */ const OtrgUiUiOps *otrg_ui_get_ui_ops(void); /* Initialize the UI subsystem */ void otrg_ui_init(void); /* Deinitialize the UI subsystem */ void otrg_ui_cleanup(void); /* Call this function when the DSA key is updated; it will redraw the * UI. */ void otrg_ui_update_fingerprint(void); /* Update the keylist, if it's visible */ void otrg_ui_update_keylist(void); /* Send an OTR Query Message to attempt to start a connection */ void otrg_ui_connect_connection(ConnContext *context); /* Drop a context to PLAINTEXT state */ void otrg_ui_disconnect_connection(ConnContext *context); /* Forget a fingerprint */ void otrg_ui_forget_fingerprint(Fingerprint *fingerprint); /* Configure OTR for a particular buddy */ void otrg_ui_config_buddy(PurpleBuddy *buddy); /* Load the preferences for a particular account / username */ void otrg_ui_get_prefs(OtrgUiPrefs *prefsp, PurpleAccount *account, const char *name); #endif