tcpcrypt-0.5/0000755000175200017520000000000012742073030012262 5ustar sorbosorbotcpcrypt-0.5/unix/0000755000175200017520000000000012742073006013250 5ustar sorbosorbotcpcrypt-0.5/unix/linux/0000755000175200017520000000000012742073006014407 5ustar sorbosorbotcpcrypt-0.5/unix/linux/priv.c0000644000175200017520000000177312742073006015543 0ustar sorbosorbo#include #include #include #include #include #include "priv.h" void linux_drop_privs(uid_t uid) { cap_t caps = cap_init(); int num = 2; cap_value_t capList[] = { CAP_NET_ADMIN, CAP_SETUID }; cap_set_flag(caps, CAP_EFFECTIVE, num, capList, CAP_SET); cap_set_flag(caps, CAP_INHERITABLE, num, capList, CAP_SET); cap_set_flag(caps, CAP_PERMITTED, num, capList, CAP_SET); if (cap_set_proc(caps)) err(1, "cap_set_flag()"); if (prctl(PR_SET_KEEPCAPS, 1, 0, 0, 0)) err(1, "prctl()"); cap_free(caps); if (setuid(uid) < 0) err(1, "setuid(%ld)", (long) uid); caps = cap_init(); num = 1; cap_set_flag(caps, CAP_EFFECTIVE, num, capList, CAP_SET); cap_set_flag(caps, CAP_INHERITABLE, num, capList, CAP_SET); cap_set_flag(caps, CAP_PERMITTED, num, capList, CAP_SET); if (cap_set_proc(caps)) err(1, "cap_set_proc()"); cap_free(caps); /* XXX this really sucks. The guy can screw with our net =( */ } tcpcrypt-0.5/unix/priv.c0000644000175200017520000000157712742073006014406 0ustar sorbosorbo#include #include #include #include #include #include #include #include "priv.h" void drop_privs(const char *dir, const char *name) { struct passwd *pwd = NULL; uid_t uid = (uid_t)(-1); gid_t gid; if (name) { errno = 0; pwd = getpwnam(name); if (pwd == NULL) (errno ? err : errx)(1, "Can't find user '%s'", name); uid = pwd->pw_uid; gid = pwd->pw_gid; if (setgid(gid) < 0) err(1, "setgid(%ld)", (long) gid); if (initgroups(name, gid) < 0) err(1, "initgroups(\"%s\", %ld)", name, (long) gid); } if (dir) { if (chroot(dir) < 0) err(1, "Could not chroot to %s", dir); if (chdir("/") < 0) err(1, "Could not chdir to root of jail"); } if (name) { #if defined(__linux__) linux_drop_privs(uid); #else if (setuid(uid) != 0) err(1, "setuid(%ld)", (long) uid); #endif } } tcpcrypt-0.5/launchers/0000755000175200017520000000000012742073006014251 5ustar sorbosorbotcpcrypt-0.5/launchers/README0000644000175200017520000000027312742073006015133 0ustar sorbosorbo This directory contains utilities, provided by various contributors, that configure firewall rules and launch tcpcryptd. Consider them if launch_tcpcryptd.sh does not meet your needs. tcpcrypt-0.5/launchers/winlauncher/0000755000175200017520000000000012742073006016570 5ustar sorbosorbotcpcrypt-0.5/launchers/winlauncher/tcpcrypt.wxs0000644000175200017520000002340312742073006021205 0ustar sorbosorbo 666 cmd.exe DlgFont8 1 The [Wizard] is ready to begin the installation You are about to install tcpcrypt. {\DlgTitleFont}Ready to Install Please wait while the [Wizard] installs [ProductName]. This may take a minute. {\DlgTitleFont}[Progress1] [ProductName] 1 LAUNCHAPPONEXIT The install was successful. {\VerdanaBold13}Completing the [ProductName] [Wizard] Setup < &Back Br&owse Cancel &Exit &Finish &Ignore &Install &Next > &No OK &Remove &Repair &Reset &Resume &Retry &Return &Yes bannrbmp Setup Wizard info dlgbmp 1 tcpcrypt-0.5/launchers/winlauncher/signexe.bat0000644000175200017520000000034412742073006020723 0ustar sorbosorbosigntool sign /v /ac c:\certs\MSCV-VSClass3.cer /s my /n "Stanford University" /t http://timestamp.verisign.com/scripts/timestamp.dll tcpcrypt32.exe tcpcrypt64.exe ..\..\user\tcpcrypt\tcpcryptd.exe ..\..\user\util\tcnetstat.exe tcpcrypt-0.5/launchers/winlauncher/resource.h0000644000175200017520000000111112742073006020562 0ustar sorbosorbo#ifndef IDC_STATIC #define IDC_STATIC (-1) #endif #define IDD_DIALOG1 100 #define IDC_BUTTON2 1000 #define IDC_EDIT1 1002 #define IDC_BUTTON1 1003 #define IDC_EDIT2 1004 #define IDI_MAIN 1010 #define IDI_ON 1011 #define IDI_OFF 1012 #define MANIFEST_RESOURCE_ID 1 tcpcrypt-0.5/launchers/winlauncher/on.ico0000644000175200017520000000217612742073006017706 0ustar sorbosorbo h(  #Ж)Т'ТW,ЪЈ.Эз/Эр.ЬШ+Ц‰)У2#Й /ЪЗ#З*Ц{/Эх5лџ:фџ>чџ?шџ<цџ8сџ2еџ-ЪП'П=5з-ШД1гў;ыџ:№џ=ђџ>ђџ=ёџ>ђџ=ђў<яџ6уџ.Эё(СLЏ,Ч~0гџFщўЯЫСџ˜˜–џhf_џig_џig_џig_џsrlџДДБџ™ЅЪџ2хџ/Ьш(П(У.Яї5уџ?хџокЭџŸŸžџeeeџffeџffeџffeџsssџРПЛџЃЎбџ/чў2кџ,ШІ)Фy1иџ1рў ;оџмиЬџžžžџeeeџffeџffeџffeџsssџОНКџЂЋЯџ*рџ0оў0аџ.ЫЯ2зџ2кџ 7зџЊІšџ‘џ^^pџZZwџOOˆџWW|џzzpџƒƒ€џ“œРџ*лџ3лџ0вџ-Эј1еџ1еџ 8бџ™•Šџ‰џPPˆџAAџPP†џ,,ОџQQВџrqjџŽ˜Кџ*жџ1жџ1гџ.Яњ4еџ5дџ :бџžšџ••џ44˜џ??žџBBœџ??•џQQœџ{zsџ›Мџ-жџ3дџ4еџ,бд0иџ,зџ5жџгаФџЮЮЯџЫЫХџvvpџggbџ‡‡џййдџЦХТџЁЊЮџ$зџ/жџ0иџ)Э„/лџIfЫў[sЧџЎЌІџЈЈЈџЈЈЈџІІІџЅЅЅџЇЇЇџЈЈЈџЊЉЈџ—œЏџNjЫџBеў.оџ(Ь .й§y„Ўџ’–Ѕџ“ЂџЉЈЃџЈЇІџЅІІџЅЅЅџІІІџЊЈЄџ™›ЂџtЇџœЂў"Hжџ,дЕ­0л‹'QжџDlтўNфџвŽ-BЪёB>ЭџD3бџ„€ЈџЃ ЏџWLНџ@5аџ9CЫџFаЭ3ЬO&О(Ц/<вoSWУХnyЮѓy„б§emЫуDLЧЅ-ЬD $П2жџ$Жќ№РР€€€€Ррќtcpcrypt-0.5/launchers/winlauncher/main.ico0000644000175200017520000002267612742073006020225 0ustar sorbosorbo00 Ј%(0` #Й#АГF Гi"И‡"М $НЎ$НЎ"М "И‡ ГiГF#А#Й$ЖГ$Зi"Лю&Тџ.Юџ4зў3еџ4еџ3гџ3гџ4еџ3еџ4зў.Юџ&Тџ"Лю$ЗiГ$ЖГ#Е$"Йј+Чџ3жў6вџ1аџ-Юџ,Юџ1Юџ1Юџ0Ьџ0Ьџ1Юџ1Юџ,Юџ-Юџ1аџ6вџ3жў+Чџ"Йј#Е$ГЕ#Ић2бџ3гџ/бџ/Яџ0Ьџ+Ьџ,Юџ1иџ:хџ?ыџFэџFэџ?ыџ:хџ1иџ,Юџ+Ьџ0Ьџ/Яџ/бџ3гџ2бџ#ИћЕ#Й Д­.Щџ3гў-аџ0Эџ,Ъџ,зџ>шџ;ьџAюџCюџ=юџ=юџ=эџ=эџ=юџ=юџCюџAюџ;ьџ>шџ,зџ,Ъџ0Эџ-аџ3гў.Щџ Д­#Й$З$Йѓ1вџ2бџ2Яџ-Ъџ2оџ;ьџAяџ>юџ;юџ;юџ?юџDюџFюџFюџFюџFюџDюџ?юџ;юџ;юџ>юџAяџ;ьџ2оџ-Ъџ2Яџ2бџ1вџ$Йѓ$ЗЕ6*Оџ2еў/Яў.Ьџ/дџ;юџ=юџ<юџ>юџ@юџJяџKяџHяџGяџFяџFяџFяџFяџGяџHяџKяџJяџ@юџ>юџ<юџ=юџ;юџ0дџ.Ьџ/Яў2еў*ОџЕ6Е7'Пџ2вў.Юџ.Ьџ5рџFяџ<эџGяџGяџ>юџBяџAяџBяџBюџAюџAяџBяџBяџBюџBюџBяџAюџAяџBюџ>юџCюџEюџ=юџBяџ5рџ.Ьџ.Юџ2вў'ПџЕ7#Г'Оџ3вџ,Яџ-Ьџ:щџBшџAшџAщџ8шџ0шџ,шџ,цџ,чџ,чџ+чџ8чџ7чџ,чџ,чџ,чџ,чџ0чџ7чџ7чџ+чџ7шџ2шџ9шџAшџBшџ>щџ=щџ-Ьџ,Яџ3вџ'Оџ#Г&Мџ3еџ-Юџ,Ыџ<щџ=юџвЬХџХЦЩџХЦЩџХЦЩџХЦЩџЂЃІџ9::џeefџeefџeefџeefџeefџeefџeefџeefџeefџeefџeefџeefџpqrџ}~џФХШџХЦЩџХЦЩџХЦЩџвЭХџ7яџ<щџ,Ыџ-Юџ3еџ&Мџ$Ж!ЕС3гџ1Яў,Ьџ:шџ>ъџ8эџйвШџЬЬЬџЬЬЬџЬЬЬџЬЬЬџЇЇЇџ888џfffџfffџfffџfffџfffџfffџfffџfffџfffџfffџfffџfffџrrrџ€€€џЫЫЫџЬЬЬџЬЬЬџЬЬЬџйвШџ8эџ>ъџ:шџ,Ьџ1Яў3гџ!ЕС$ЖЕV/Ьџ0аџ1Ьџ6тџ@щџ@щџ6ьџйгШџЬЬЬџЬЬЬџЬЬЬџЬЬЬџЇЇЇџ888џfffџfffџfffџfffџfffџfffџfffџfffџfffџfffџfffџfffџrrrџ€€€џЫЫЫџЬЬЬџЬЬЬџЬЬЬџйгШџ4ьџ?щџ@щџ5тџ1Ьџ0аџ/ЬџЕVЗ'Пі2гў.Эџ-жџ8щџ7шџ6шџ0ъџйдЩџЬЬЬџЬЬЬџЬЬЬџЬЬЬџЇЇЇџ888џfffџfffџfffџfffџfffџfffџfffџfffџfffџfffџfffџfffџrrrџ€€€џЫЫЫџЬЬЬџЬЬЬџЬЬЬџйдЩџ4ъџ5шџ7шџ8щџ-жџ.Эџ2гў'ПіЗЖ|2дџ-Яў0Ьџ;щџ7цџ6чџ7цџ1шџйдЩџЬЬЬџЬЬЬџЬЬЬџЬЬЬџЇЇЇџ888џfffџfffџfffџfffџfffџfffџfffџfffџfffџfffџfffџfffџrrrџ€€€џЫЫЫџЬЬЬџЬЬЬџЬЬЬџйдЩџ1шџ7цџ8чџ6цџ<щџ0Ьџ-Яў2дџЖ|#Й"Б$Мџ2вў/Эџ,лџ4фџ<фџ2хџ,уџ"хџкеЩџЬЬЬџЬЬЬџЬЬЬџЬЬЬџЇЇЇџ888џfffџfffџfffџfffџfffџfffџfffџfffџfffџfffџfffџfffџrrrџ€€€џЫЫЫџЬЬЬџЬЬЬџЬЬЬџкеЩџ"хџ,уџ2хџ<фџ4фџ,лџ/Эџ2вў$Мџ"Б#Й!Ж02вў-Яџ0Эџ.фџ1тџ@тџ2тџ2тџ+уџкгЪџЬЬЬџЬЬЬџЬЬЬџЬЬЬџЇЇЇџ888џfffџfffџfffџfffџfffџfffџfffџfffџfffџfffџfffџfffџrrrџ€€€џЫЫЫџЬЬЬџЬЬЬџЬЬЬџкгЪџ+уџ2тџ2тџ:тџ4тџ.фџ0Эџ-Яџ2вў!Ж0 КЬ6гџ1Эџ2иџ-сџ0рџ/рџ/рџ/рџ%сџкдЪџЬЬЬџЬЬЬџЬЬЬџЬЬЬџЇЇЇџ888џfffџfffџfffџfffџfffџfffџfffџfffџfffџfffџfffџfffџrrrџ€€€џЫЫЫџЬЬЬџЬЬЬџЬЬЬџкдЪџ%сџ/рџ/рџ/рџ/рџ,сџ3иџ1Эџ6гџ КЬГ (Пџ2бџ.Ьџ/нџ3оџ0рџ2оџ2оџ2оџ*пџкдЪџЬЬЬџЬЬЬџЬЬЬџЫЫЫџЇЇЇџ888џfffџfffџfffџfffџfffџfffџfffџfffџfffџfffџfffџfffџrrrџ€€€џЫЫЫџЭЭЭџЬЬЬџЬЬЬџкдЪџ*пџ2оџ2оџ2оџ0рџ3оџ/нџ.Ьџ2бџ(ПџГ БI0аџ/аџ+Ьџ2оџ4мџ4кџ2лџ8лџ5лџ*мџмжЭџ˜˜˜џџ———џЯЯЯџЇЇЇџ888џfffџfffџfffџfffџfffџfffџfffџfffџfffџfffџfffџfffџrrrџ€€€џбббџ€€€џџАААџлеЬџ)мџ9лџ8лџ4лџ:кџ4мџ2оџ+Ьџ/аџ0аџБI!Жt5дў-Юџ2вџ5кџ7йџ(иџ*иџ)иџ*иџ"йџпйаџZZZџfffџXXXџгггџЇЇЇџ888џeefџggcџffdџeefџffeџffeџbbkџggcџeefџhhbџeefџfffџrrrџ€€€џиииџ%%%џeeeџџнзЭџ"йџ)иџ)иџ)иџ(иџ7йџ5кџ2вџ-Юџ5дў!Жt'ЛГ6гџ0Ьџ.зџ6йџ0жџ/йџ/иџ/иџ/иџ$иџпйаџZZZџfffџXXXџгггџЇЇЇџ888џffeџ щџEE—џffeџRR‚џџџўџ ЭџmmYџџџkk]џfffџrrrџ€€€џиииџ%%%џeeeџџнзЭџ$иџ/иџ/иџ/иџ.йџ3жџ4йџ3зџ0Ьџ6гџ'ЛГ'Рд6гў0Эџ.зџ2йџ2зџ2зџ2зџ2зџ2зџ(жџпйаџZZZџfffџXXXџгггџЇЇЇџ888џffeџхџFF•џggcџџџ^^oџddgџ ыџGG’џџџmmZџhhbџrrqџ€€€џиииџ%%%џeeeџџнзЮџ(жџ2зџ2зџ2зџ2зџ3зџ.йџ.зџ0Эџ6гў'Рд%Сь3дџ2Яџ2жџ6еџ2дџ0дџ0дџ/дџ0дџ(еџпйаџZZZџfffџXXXџгггџЇЇЇџ888џffeџхџFF•џVV|џїџhhbџeefџcciџjj_џџџџџўџ44Шџƒƒ|џиииџ%%%џeeeџџмжЮџ(еџ0дџ0дџ0дџ0дџ2дџ6еџ2жџ2Яџ3дџ%Сь%Ућ3дџ,Юџ5еџ/дџ0еџ-еџ0еџ2еџ0еџ(дџпйаџZZZџfffџXXXџгггџЇЇЇџ888џggdџхџGG”џ^^pџџџll\џggdџCC˜џ[[uџџџqqTџffdџџџ††џиииџ%%%џeeeџџнзЮџ'дџ0еџ0еџ0еџ0еџ0еџ/дџ5еџ,Юџ3дџ%Ућ'Ф§/еџ2бџ6еџ2дџ5гџ5гџ2дџ5гџ4гџ+дџпиаџZZZџfffџXXXџгггџЇЇЇџ11Bџ11Дџѕџ!!Эџ77Њџ##Шџсџ44Џџџџ^^oџџџ44Аџ&&Цџ ўџ……€џиииџ%%%џeeeџџнжЮџ,гџ5гџ5гџ5гџ3дџ5гџ2дџ6еџ2бџ/еџ'Ф§'Тђ1зџ6гџ9зџ3гџ4еџ7еџ7еџ8дџ6еџ.дџпибџZZZџfffџXXXџгггџЇЇЇџ"".џ((‚џ55џBB›џCC˜џjj_џEE•џ77Ћџcciџhhbџ??Ÿџ55Žџ++€џXXTџ€џиииџ%%%џeeeџџнеЯџ-дџ7еџ6еџ7еџ7еџ6дџ3гџ9зџ6гџ1зџ'Тђ%Тм/йџ.еџ8жџ0дџ3еџ2еџ3дџ2еџ2дџ)дџпйаџ]]]џeeeџfffџвввџЬЬЬџЭЭЭџЭЭЭџ;;;џfffџfffџfffџfffџfffџfffџeeeџgggџHHHџЫЫЫџЭЭЭџЫЫЫџиииџ(((џeeeџџмжЭџ)дџ2еџ3еџ3еџ2еџ3еџ1дџ8жџ.еџ/йџ%Тм&СН/кџ.жџ.зџ4дџ-еџ-еџ.еџ.еџ-еџ$еџлеЬџЫЫЫџСССџШШШџЫЫЫџЬЬЬџЬЬЬџЬЬЬџџWWWџeeeџfffџfffџfffџfffџfffџcccџCCCџЬЬЬџЬЬЬџЬЬЬџЫЫЫџШШШџСССџЫЫЫџлеЬџ#еџ.еџ.еџ.еџ.еџ-еџ3дџ.зџ.жџ/кџ&СН"Йƒ3рџ)иџ.иџ/жџ2жџ2жџ2жџ2жџ2жџ(жџлеЬџЬЬЬџЬЬЬџЬЬЬџЬЬЬџЬЬЬџЬЬЬџЫЫЫџЯЯЯџLLLџ___џfffџfffџfffџfffџiiiџ;;;џЪЪЪџЫЫЫџЬЬЬџЬЬЬџЬЬЬџЬЬЬџЬЬЬџЬЬЬџлеЬџ)жџ2жџ1жџ3жџ2жџ2жџ/жџ.иџ)иџ3рџ"ЙƒБT3кџ5лџ+иџ.иџ-жџ0зџ/зџ/зџ/зџ'зџлеЫџЬЬЬџЬЬЬџЬЬЬџЬЬЬџЬЬЬџЬЬЬџЬЬЬџЫЫЫџЯЯЯџџ999џ>>>џ>>>џ555џjjjџОООџЫЫЫџЬЬЬџЬЬЬџЬЬЬџЬЬЬџЬЬЬџЬЬЬџЬЬЬџлеЫџ'зџ/зџ/зџ/зџ/зџ.жџ.иџ+иџ5лџ3кџБTБ!'Ъџ0оџ6лџ2йџ0иџ.зџ.зџ.зџ.зџ$зџундџгггџгггџгггџгггџгггџгггџгггџгггџгггџдддџмммџжжжџеееџлллџзззџгггџгггџгггџгггџгггџгггџгггџгггџгггџундџ$зџ.зџ.зџ.зџ.зџ0иџ2йџ6лџ0оџ'ЪџБ!"Лј+тџ.оџ2нџ5мџAЭџ-Vйџ,Uиџ,Uиџ(Vрџnibџnnnџnnnџnnnџnnnџnnnџnnnџnnnџnnnџnnnџnnnџnnnџnnnџnnnџnnnџnnnџnnnџnnnџnnnџnnnџnnnџnnnџnnnџnnnџnnnџnibџ(Vрџ,Uиџ,Uиџ,Uзџ6жџ5лџ2нџ.оџ+тџ"Лј&ЖT(цџ-тџ7оџ*тџmvžџeeeџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџœœœџаЯЭџ 6Ъџ,оџ7оџ-тџ(цџ&ЖT#ЕВ'Щџ#фџ.сџ,хџowџZZZџžžžџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџаЯЭџ 5Ыџ.рџ.сџ#фџ'ЩџВ#Е ЖР?хџ5хџ'шџrz•џХФЛџЕЕЕџДДЕџТПЕџКЙЙџЕЕЕџЕЕЕџЕЕЕџЕЕЕџЕЕЕџЕЕЕџЕЕЕџЕЕЕџЕЕЕџЕЕЕџЕЕЕџЕЕЕџЕЕЕџЕЕЕџЕЕЕџЕЕЕџЕЕЕџЕЕЕџЕЕЕџЕЕЕџЕЕЕџЕЕЕџЕЕЕџЛЛЛџСОЕџПОИџДДДџЕЕДџмкЮџ7Ыџ)уџ5хџ?хџ ЖРИ OЁ(Яњ7шў?цџ7мџ 6ЭџФХЧџйдЪџ-зџ@ZЇџмиЭџгггџЫЫЫџЫЫЫџЫЫЫџЫЫЫџЫЫЫџЫЫЫџЫЫЫџЫЫЫџЫЫЫџЫЫЫџЫЫЫџЫЫЫџЫЫЫџЫЫЫџЫЫЫџЫЫЫџЫЫЫџЫЫЫџЫЫЫџгггџзгЩџ/KЋџ5дџ<ЋџедаџПРЬџ4вџ3фџ?цџ7шў(Яњ OЁИВЊ7фџ4шў:чџ:тџФХЧџидЩџ1щџ=шџ9еџ8KџœЁДџУРКџгбЬџааЯџЫЫЫџЬЬЬџЬЬЬџЬЬЬџЬЬЬџЬЬЬџЬЬЬџЬЬЬџЬЬЬџЬЬЬџЬЬЬџЫЫЫџгбЬџИЕАџ™ЁЛџ2F‘џ7мџ>хџ:чџBЙџедаџОРЬџ8шџ:чџ4шў7фџВЊЖ"РцCэў=ъџ=уџЩЧЦџндЦџ@ьџEыџEыџDыџCяџ@цџ MНџYgŒџЯЮЭџЬЬЬџЫЫЫџЬЬЬџЬЬЬџЬЬЬџЬЬЬџЬЬЬџЬЬЬџЬЬЬџЬЬЬџЛЙЖџGМџAыџEэџDыџEыџEыџEыџ#NЗџижаџТТЫџ;щџ=ъџCэў"РцЖ"И"Й-0Эџ8эў4ьџDыџ;яџ ?щџ:юџ:юџ:юџ:юџ:юџ:юџ Bшџ=XЄџЗИОџЦЦЦџЬЬЬџЬЬЬџЬЬЬџЫЫЫџЬЬЬџЬЬЬџХЦЦџЖЙСџGоџ:юџ:юџ:юџ:юџ:юџ:юџ:юџ8яџ7эџEъџ5ыџ8эў0Эџ"Й-"ИД`1гџEяў6юџE№џH№џLюџLэџLэџLэџLэџLэџLэџLюџPсџVъџ0bЫџ…џЏЏЏџЫЫЫџ^Нџ"Yкџ RшџLьџMэџLэџLэџLэџLэџLэџLэџLюџH№џ?яџBюџEяў1гџД` Жo7кў?ёџWлџQзџIрџFуџFуџFуџFуџFуџFуџFуџFуџFуџ Cщџ‚ƒ‰џЏЏЏџЫЫЫџ4sчџEтџFуџFуџFуџFуџFуџFуџFуџFуџFуџIрџ TеџPюџ?ёџ7кў Жo#Е"Дx ?аџVтў NыџMйџ$Wгџ$Wгџ$Vгџ$Wгџ$Wгџ$Wгџ$Wгџ$Wгџ TйџSпџ……ˆџЏЏЏџЫЫЫџ0gюџ!Uиџ!Uжџ$Wгџ$Wгџ$Wгџ$Wгџ$Wгџ$Vгџ$Wгџ$YгџMпџL№џXуў @аџ"Дx#Е#ЕБh2ЭџTуў#Oгў0EЧџ/@Шџ.CЦџ/JЧџ/IЧџ/IЧџ/IЧџ,GЫџ…„ƒџˆ†ƒџ’’“џЉЉЉџПППџ—”џŽ‹ˆџU`’џ/IЧџ/IЧџ/IЧџ/IЧџ.JЧџ1DХџ)9Яџ(BЯџPнўTсў1ЭџБh#ЕЗ#М!СэUдџ6TЦџ>9Хџ\0Ыџ:&бџF"жџG(аџD#еџBлџЄЅžџ  џ   џ›››џŸŸŸџџВВЎџ\PŽџD#еџD"еџF#дџ@$гџG+Эџ-,гџ8aОџ6QЧџUдџ!Сэ#МЗ#Е Г.вћb.ЭџG3вў+2Эџ.8Цџ:%дџ\хџb<Пџ28Шџ79Хџˆ‡„џЎЎЎџЫЫЫџїііџ02Лџ65Яџ\чџW+Юџ.5Щџ/CЧџ+0ЭџG2вўb.Эџ.вћ Г#ЕЖД ИЎ6ЪџЉЛ§ўdЮџWхџ\шџ\шџ\щџSшџцысџrupџ{yuџ^рџ\щџ[шџ\шџ\шџWхџdЮџЉЛ§ў6Ъџ ИЎД ЖБЕO#Оъ3OЯџ!Dеџєђыўёячџ№яхџыццџтЯѕџЯаѕџђьхџ№юхџёячџєђыў!Dеџ3OЯџ#ОъЕOБ#Џ­QИ€ЦЗЫи'Ъяjzвќjzвќ'ЪяЫиЦЗИ€­Q#Џџџјџџџџ€џџџќ?џџ№џџРџџ€џџџўќ?ј№№ррРР€€€€€€€РРРрр№јќ?ўџџџ€џџРџџрџџјџџџџџџџрџџtcpcrypt-0.5/launchers/winlauncher/sign.sh0000755000175200017520000000063212742073006020070 0ustar sorbosorbo#!/bin/bash sign() { echo Signing $1 osslsigncode sign \ -pkcs12 cert.p12 \ -askpass \ -h sha1 \ -n tcpcrypt \ -i http://tcpcrypt.org/ \ -t http://timestamp.verisign.com/scripts/timstamp.dll \ -in $1 -out $1-signed mv $1-signed $1 } BINS=(tcpcrypt.exe ../../src/.libs/tcpcryptd.exe ../../util/.libs/tcnetstat.exe) for i in ${BINS[@]} ; do sign $i done make tcpcrypt.msi sign tcpcrypt.msi tcpcrypt-0.5/launchers/winlauncher/res.rc0000644000175200017520000000232412742073006017710 0ustar sorbosorbo// Generated by ResEdit 1.5.4 // Copyright (C) 2006-2010 // http://www.resedit.net #include #include #include #include "resource.h" // // Dialog resources // LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL IDD_DIALOG1 DIALOG 0, 0, 495, 115 STYLE DS_3DLOOK | DS_CENTER | DS_MODALFRAME | DS_SHELLFONT | WS_CAPTION | WS_VISIBLE | WS_GROUP | WS_POPUP | WS_SYSMENU CAPTION "tcpcrypt" FONT 8, "Ms Shell Dlg" { PUSHBUTTON "Start", IDOK, 9, 7, 51, 15 PUSHBUTTON "Netstat", IDCANCEL, 65, 7, 54, 14 EDITTEXT IDC_EDIT1, 9, 37, 478, 76, ES_AUTOHSCROLL | ES_MULTILINE | ES_READONLY PUSHBUTTON "Exit", IDC_BUTTON1, 196, 7, 48, 15 EDITTEXT IDC_EDIT2, 9, 23, 123, 12, NOT WS_BORDER | ES_AUTOHSCROLL | ES_READONLY PUSHBUTTON "Enter hall of fame", IDC_BUTTON2, 124, 7, 67, 14 } // // Icon resources // LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL IDI_MAIN ICON "main.ico" LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL IDI_OFF ICON "off.ico" LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL IDI_ON ICON "on.ico" MANIFEST_RESOURCE_ID RT_MANIFEST "tcpcrypt.exe.manifest" tcpcrypt-0.5/launchers/winlauncher/tcpcrypt.c0000644000175200017520000001570412742073006020613 0ustar sorbosorbo#include #include #include #include "resource.h" #include "../../src/tcpcrypt_version.h" #define COBJMACROS #define WM_TERM (WM_APP + 1) static HANDLE _tcpcryptd = INVALID_HANDLE_VALUE; static HWND _hwnd; static HINSTANCE _hinstance; static NOTIFYICONDATA _nid[2]; static NOTIFYICONDATA *_nidcur = NULL; static WINAPI DWORD check_term(void *arg) { WaitForSingleObject(_tcpcryptd, INFINITE); _tcpcryptd = INVALID_HANDLE_VALUE; if (!PostMessage(_hwnd, WM_TERM, 0, 0)) MessageBox(_hwnd, "PostMessage()", "Error", MB_OK); return 0; } static void stop() { if (_tcpcryptd != INVALID_HANDLE_VALUE) { if (!TerminateProcess(_tcpcryptd, 0)) MessageBox(_hwnd, "TerminateProcess()", "Error", MB_OK); } _tcpcryptd = INVALID_HANDLE_VALUE; } static void die(int rc) { stop(); if (_nidcur) Shell_NotifyIcon(NIM_DELETE, _nidcur); exit(rc); } static void err(int rc, char *fmt, ...) { va_list ap; char buf[4096]; DWORD e; buf[0] = 0; e = GetLastError(); FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, e, 0, buf, sizeof(buf), NULL); printf("ERR %ld [%s]\n", e, buf); va_start(ap, fmt); vsnprintf(buf, sizeof(buf), fmt, ap); va_end(ap); MessageBox(_hwnd, buf, "Error", MB_OK); die(rc); } static void get_path(char *path) { char *p; if (!GetModuleFileName(NULL, path, _MAX_PATH)) err(1, "GetModuleFileName()"); p = strrchr(path, '\\'); if (p) p[1] = 0; } static void start() { char cmd[_MAX_PATH]; char arg[1024]; PROCESS_INFORMATION pi; STARTUPINFO si; get_path(cmd); snprintf(cmd + strlen(cmd), sizeof(cmd) - strlen(cmd), "tcpcryptd.exe"); snprintf(arg, sizeof(arg), "%s -u :65532 -e", "tcpcryptd.exe"); memset(&si, 0, sizeof(si)); si.cb = sizeof(si); si.wShowWindow = SW_HIDE; si.dwFlags |= STARTF_USESHOWWINDOW; if (!CreateProcess(cmd, arg, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi)) err(1, "CreateProcess()"); _tcpcryptd = pi.hProcess; if (!CreateThread(NULL, 0, check_term, NULL, 0, NULL)) err(1, "CreateThread()"); } static void netstat() { char cmd[_MAX_PATH]; PROCESS_INFORMATION pi; STARTUPINFO si; HANDLE out[2], e[2]; SECURITY_ATTRIBUTES sa; HWND edit; DWORD rd; int l; edit = GetDlgItem(_hwnd, IDC_EDIT1); get_path(cmd); snprintf(cmd + strlen(cmd), sizeof(cmd) - strlen(cmd), "tcnetstat.exe"); memset(&sa, 0, sizeof(sa)); sa.nLength = sizeof(sa); sa.bInheritHandle = TRUE; if (!CreatePipe(&out[0], &out[1], &sa, 0)) err(1, "CreatePipe()"); if (!SetHandleInformation(out[0], HANDLE_FLAG_INHERIT, 0)) err(1, "SetHandleInformation()"); if (!DuplicateHandle(GetCurrentProcess(), out[1], GetCurrentProcess(), &e[1], 0, TRUE,DUPLICATE_SAME_ACCESS)) err(1, "DuplicateHandle()"); memset(&si, 0, sizeof(si)); si.cb = sizeof(si); si.dwFlags |= STARTF_USESTDHANDLES | STARTF_USESHOWWINDOW; si.hStdInput = GetStdHandle(STD_INPUT_HANDLE); si.hStdOutput = out[1]; si.hStdError = e[1]; si.wShowWindow = SW_HIDE; if (!CreateProcess(cmd, "tcnetstat.exe -u :65532", NULL, NULL, TRUE, 0, NULL, NULL, &si, &pi)) err(1, "CreateProcess()"); CloseHandle(out[1]); CloseHandle(e[1]); SetWindowText(edit, ""); SetFocus(edit); l = 0; while (1) { int l; if (!ReadFile(out[0], cmd, sizeof(cmd) - 1, &rd, NULL)) break; cmd[rd] = 0; SendMessage(edit, EM_SETSEL, l, l); SendMessage(edit, EM_REPLACESEL, 0, (LPARAM) cmd); l += strlen(cmd); } CloseHandle(out[0]); } static void minimize(HWND hwnd) { ShowWindow(hwnd, SW_HIDE); } static void do_stop(HWND dlg) { HWND button = GetDlgItem(dlg, IDOK); SetWindowText(button, "Start"); SetWindowText(GetDlgItem(dlg, IDC_EDIT2), "tcpcrypt off"); _nidcur = &_nid[0]; Shell_NotifyIcon(NIM_MODIFY, _nidcur); SendMessage(_hwnd, WM_SETICON, ICON_SMALL, (LPARAM) _nidcur->hIcon); EnableWindow(GetDlgItem(dlg, IDC_BUTTON2), FALSE); } static void add_text(char *x) { } static void start_stop(HWND dlg) { HWND button = GetDlgItem(dlg, IDOK); if (!button) err(1, "GetDlgItem()"); if (_tcpcryptd == INVALID_HANDLE_VALUE) { start(); SetWindowText(button, "Stop"); SetWindowText(GetDlgItem(dlg, IDC_EDIT2), "tcpcrypt ON!"); _nidcur = &_nid[1]; Shell_NotifyIcon(NIM_MODIFY, _nidcur); SendMessage(_hwnd, WM_SETICON, ICON_SMALL, (LPARAM) _nidcur->hIcon); EnableWindow(GetDlgItem(dlg, IDC_BUTTON2), TRUE); } else { stop(); do_stop(dlg); } } static void setup_icons(void) { memset(&_nid[0], 0, sizeof(*_nid)); _nid[0].cbSize = sizeof(*_nid); _nid[0].hWnd = _hwnd; _nid[0].uID = 0; _nid[0].uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP; _nid[0].uCallbackMessage = WM_USER; _nid[0].hIcon = LoadIcon(_hinstance, MAKEINTRESOURCE(IDI_OFF)); if (!_nid[0].hIcon) err(1, "LoadIcon()"); strcpy(_nid[0].szTip, "tcpcrypt off"); memcpy(&_nid[1], &_nid[0], sizeof(*_nid)); _nid[1].hIcon = LoadIcon(_hinstance, MAKEINTRESOURCE(IDI_ON)); if (!_nid[1].hIcon) err(1, "LoadIcon()"); strcpy(_nid[1].szTip, "tcpcrypt ON"); _nidcur = &_nid[0]; Shell_NotifyIcon(NIM_ADD, _nidcur); SendMessage(_hwnd, WM_SETICON, ICON_SMALL, (LPARAM) _nidcur->hIcon); } static void do_init(void) { char title[1024]; setup_icons(); snprintf(title, sizeof(title), "tcpcrypt v%s", TCPCRYPT_VERSION); SetWindowText(_hwnd, title); } static void hof(void) { if (((long long) ShellExecute(NULL, (LPCTSTR) "open", "http://tcpcrypt.org/fame.php", NULL, ".\\", SW_SHOWNORMAL)) < 33) err(1, "ShellExecute()"); } LRESULT CALLBACK DlgProc(HWND hWndDlg, UINT Msg, WPARAM wParam, LPARAM lParam) { switch (Msg) { case WM_USER: switch (lParam) { case WM_LBUTTONDBLCLK: ShowWindow(hWndDlg, SW_SHOW); return TRUE; } break; case WM_TERM: do_stop(hWndDlg); break; case WM_INITDIALOG: _hwnd = hWndDlg; do_init(); do_stop(_hwnd); start_stop(hWndDlg); /* didn't we say on by default? ;D */ break; case WM_SYSCOMMAND: if ((wParam & 0xfff0) == SC_MINIMIZE) { minimize(hWndDlg); return TRUE; } break; case WM_CLOSE: minimize(hWndDlg); return TRUE; case WM_COMMAND: switch(wParam) { case IDOK: start_stop(hWndDlg); return TRUE; case IDCANCEL: netstat(); return TRUE; case IDC_BUTTON1: EndDialog(hWndDlg, 0); return TRUE; case IDC_BUTTON2: hof(); return TRUE; } break; } return FALSE; } int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR szCmdLine, int iCmdShow) { _hinstance = hInstance; if (DialogBox(hInstance, MAKEINTRESOURCE(IDD_DIALOG1), NULL, (DLGPROC) DlgProc) == -1) err(1, "DialogBox()"); die(0); } tcpcrypt-0.5/launchers/winlauncher/off.ico0000644000175200017520000000217612742073006020044 0ustar sorbosorbo h(  †ўtœџ‹šџˆWЉџ˜ЈЎџžзЎџŸрЌџœШЃў’‰œў‹2Šџx Ќ§š…џs‡ўuЂў‘{ЏџŸхЪџПџйџбџрџйџтџлџоџжџдџЫџМџЏџЉџ˜П—§„=Ф§ДЇў•ДЙџЊўчџрџюџщџ№џыџ№џыџ№џыџ№џыџяџъўяџъџзџЮџЎўё›§ŠLrўbЄџ‘~Лџ­џфќоўЯЯЯџЃЅЂџnpnџoqnџoqnџoqnџz|zџОРНџдидџиџЮџЎўш—ў…œџŠБџЂїжџЭџлћдџЭЪЮџžžžџdddџeeeџeeeџeeeџrrrџЛКЛџЮеЭџнџеўЦџКџІџ”ІŸџyРџГџЯџЦўЯћЦџЭЩЮџžžžџeeeџffeџffeџffeџsssџКЙКџЬеЪџаџЦџЬџТўГџЃџЊџšЯПџБџФџЗџТљЖџœ—џ‘џ^^pџZZwџOOˆџWW|џzzpџ€€џЛЧЙџФџЗџЧџКџЗџЇџ­џјМџ­џНџЎџЛј­џ‹†џ‰џPPˆџ@@џPP†џ++ОџQQВџonkџЕТВџНџ­џНџЏџИџЈџБџЂњНџ­џМџЋџКљЋџ‘‹“џ••џ44˜џ>>žџBB›џ>>•џQQœџxwtџЗФДџМџЋџМџЌџМџЌџЕўЇдРўВџОџЏџПўБџХРЧџЮЮЯџЫЫХџvvpџggbџ‡‡џййдџУСУџЩжЦџНџ­џНџЏџУўЖџЎџ „ЭџФџПтИўНйЖџЇЄЇџЈЈЈџЈЈЈџІІІџЅЅЅџЇЇЇџЈЈЈџЈЇЈџ­ВЋџСтЙџШїНўЪџПџЉџ› ЮџФ§ГМВџЅЈЅџЇЋІџЅЄЅџЅЅЅџЅЅЅџЅЅЅџЅЅЅџЅЄЅџІЈІџЉБЇџЉЊЉўгђЬџЛџЏЕvќdХџЙ‹оіиџпялўцњрџтђоџдйгџЬЫЬџЭЬЭџЭЮЮџнщкџхїпџчџсџкфзџжџЭђЋў%ўаџШХѓџяџѓўяџѓўяўѓџяџпшнџЯгЯџѓџяџѓџяўѓўяџѓўяџщџфїЗ§Ћ\’џіЬ§ТŽш§хёї§їџљ§њџЭЮЮџСРСџэ№юџњўћџ№§юџс§мЭБ§ЃO“ў‚ЖўЋУўЛoй§дХоћйѓољй§о§йубўЫЅРўЖD ўџўџ…ўrќ№РР€€€€Ррќtcpcrypt-0.5/launchers/winlauncher/Makefile0000644000175200017520000000124612742073006020233 0ustar sorbosorboCC = $(PREFIX)gcc CXX = $(PREFIX)g++ WIX ?= wine $(HOME)/.wine/drive_c/Program\ Files\ \(x86\)/Windows\ Installer\ XML\ v3/bin/ CANDLE = $(WIX)candle LIGHT = $(WIX)light NAME = tcpcrypt.exe CFLAGS = -Wall -g -I. -MD CXXFLAGS = $(CFLAGS) LDFLAGS = -lgdi32 -lsetupapi -lws2_32 -lole32 -luuid \ -Wl,-subsystem,windows OBJS = tcpcrypt.o res.o all: $(NAME) res.o: res.rc resource.h tcpcrypt.exe.manifest $(PREFIX)windres $(<) $(@) $(NAME): $(OBJS) $(CC) $(CFLAGS) -o $(@) $(OBJS) $(LDFLAGS) tcpcrypt.wixobj: tcpcrypt.wxs tcpcrypt.exe $(CANDLE) tcpcrypt.wxs tcpcrypt.msi: tcpcrypt.wixobj $(LIGHT) -sval tcpcrypt.wixobj clean: rm -f *.o $(NAME) *.d -include *.d tcpcrypt-0.5/launchers/winlauncher/signmsi.bat0000644000175200017520000000022312742073006020726 0ustar sorbosorbosigntool sign /v /ac c:\certs\MSCV-VSClass3.cer /s my /n "Stanford University" /t http://timestamp.verisign.com/scripts/timestamp.dll tcpcrypt.msi tcpcrypt-0.5/launchers/winlauncher/tcpcrypt.exe.manifest0000644000175200017520000000107512742073006022753 0ustar sorbosorbo tcpcrypt tcpcrypt-0.5/launchers/winlauncher/Bitmaps/0000755000175200017520000000000012742073006020167 5ustar sorbosorbotcpcrypt-0.5/launchers/winlauncher/Bitmaps/bannrbmp.bmp0000755000175200017520000007222612742073006022502 0ustar sorbosorboBM–t6(э:`pФФ€€€€€€€€€РРРРмР№ЪІ @ ` €   Р р@@ @@@`@€@ @Р@р`` `@```€` `Р`р€€ €@€`€€€ €Р€р    @ ` €   Р рРР Р@Р`ЈРРРРррр р@р`р€р рРрр@@ @@@`@€@ @Р@р@ @ @ @@ `@ €@  @ Р@ р@@@@ @@@@@`@@€@@ @@Р@@р@`@` @`@@``@`€@` @`Р@`р@€@€ @€@@€`@€€@€ @€Р@€р@ @  @ @@ `@ €@  @ Р@ р@Р@Р @Р@@Р`@Р€@Р @РР@Рр@р@р @р@@р`@р€@р @рР@рр€€ €@€`€€€ €Р€р€ € € @€ `€ €€  € Р€ р€@€@ €@@€@`€@€€@ €@Р€@р€`€` €`@€``€`€€` €`Р€`р€€€€ €€@€€`€€€€€ €€Р€€р€ €  € @€ `€ €€  € Р€ р€Р€Р €Р@€Р`€Р€€Р €РР€Рр€р€р €р@€р`€р€€р €рР€ррРР Р@Р`ЈРРРРрР Р Р @Р `Р €Р  Р РР рР@Р@ Р@@Р@`Р@€Р@ Р@РР@рР`Р` Р`@Р``Р`€Р` Р`РР`рЈЈ Р€@Р€`Р€€Р€ Р€РР€рР Р  Р @Р `Р €Р  Р РР рРРРР РР@РР`РР€РР №ћџЄ  €€€џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ^]]]e][[[[[[[[[[[[[[[Re]]]]^џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЇ›[›››››››››››››ЇџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЇ›[›››››››››››››ЇџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЇ›[›››››››››››››ЇџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЇ›[›››››››››››››ЇџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЇ›[›››››››››››››ЇџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЇ›[›››››››››››››ЇџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЇ›[›››››››››››››ЇџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЇ›[›››››››››››››ЇџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЇ›[›››››››››››››ЇџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЇЄЄї›[›››››››››››››ЄЄЄЇџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЇ››ї›[››››››\››››››Є››ЇџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЇ››ї›[›љ[›Uљљ›љ\››Є››ЇџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџІ››ї›[›љ[›љ››Uљ\››Є››ІџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЇ››ї›[›љ[Tљ››››љљљЄ››ЇџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџІ››ї›[›љ›\љ››UTљ[›љ Є››ІџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџІ››ї›TUљVUUљ\љNVљЄ››ІџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџІ››ї›SMUUU›UN\›UUM\Є››ІџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџІ››їI››››››››Rї›››ІџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџІїї›››››››››IїїІџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџІR››››››RїІџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЇR[[[[RїЇџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЇЇџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџUЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄЄUџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџUїџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџUЌїїїїїїїїїїїїїїїїїїїїїїїїїїїїїїїїїїїџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџUї[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[Rїџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ^Ѕf]^^ЅІVџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЅ_^­ѕЎЅ_џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЅ_Tю]Є_џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЄ_UЄЄ_џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ]ЄЄ^џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЅїgџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЅїgџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџW^^^^^^^^^^^­їg^^^^^^^^^^Vџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ_OVVVVVVVїїїїїїїœVVVVVVVVџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџWVVNOOOOOїœOOOONVVVWџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџOŸNVNOVNNЄяNOOONVNŸOџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџіOOOGœœOOOіџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЇџџџіііџџџџЇџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ^^џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџtcpcrypt-0.5/launchers/winlauncher/Bitmaps/dlgbmp.bmp0000755000175200017520000061766612742073006022165 0ustar sorbosorboBMЖ6(Є8 €ФФ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ€€€џ€€€џ€€€џРРРџРРРџРРРџРРРџРРРџРРРџРРРџРРРџ€€€џ€€€џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€€€џ€€€џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџРРРџ€€€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ€€€џџџџџџџџџџџџџџџџџРРРџРРРџ€€€џџџџџџџџџџ€€€џ€€€џРРРџџџџџџџџџџџџџџџџџ€€€џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџРРРџџџџџџџџџџџџџРРРџ€€€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€€€џџџџџџџџџџџџџџџџџРРРџџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџџџџџџџџџџ€€€џџџџџџџџџџџџџ€€€џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ€€€џџџџџџџџџџџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џРРРџџџџџџџџџРРРџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџРРРџџџџџџџџџџџџџџџџџ€€€џ€€€џџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџРРРџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ€€€џџџџРРРџџџџџџџџџ€€€џџџџџџџџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џ€џ€џ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџџџџџџџџРРРџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џРРРџџџџџџџџџџџџџ€€€џ€џџ€џџ€џ€€€џџџџџџџџџ€€€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ€€€џџџџџџџџџџџџџџџџџџџџџџџџ€€€џџџџџџџџџџџџџ€€€џџџџџџџџ€€€џџџџџџџџџ€€€џџџџџџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџ€џџ€џџ€џРРРџџџџџ€€€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџ€€€џ€џџ€џџ€џџ€џџ€џ€€€џџџџџџџџџ€џџ€џџ€џџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџџџџ€€€џџџџџРРРџџџџџџџџџџџџџџџџџџџџџџџџџРРРџџџџџџџџџ€€€џџџџџџџџџџџџРРРџџџџџРРРџџџџџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџ€џџ€џџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€€€џџџџџџџџџ€€€џ€џџ€џџ€џџ€џџ€џџРРРџџџџџџџџџџџџџџџџџ€€€џ€џџ€џџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџџџ€€€џџџџџ€€€џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ€€€џџџџџџџџџ€€€џРРРџџџџџџџџџџџџџџџџџџџџџџџџџРРРџџџџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџ€џџ€џџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€€€џ€€€џ€€€џ€€€џРРРџџџџџ€€€џ€џџ€џџ€џџ€€€џРРРџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ€џџ€џџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџџџџџџџРРРџџџџџџџџџџџџџџџџџџџРРРџџџџџџџџџџџџџџџџџџџџџџџџџРРРџџџџџ€€€џРРРџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ€€€џџџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџ€џџ€€€џџџџџ€€€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€€€џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџРРРџ€џ€€€џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџРРРџџ€џџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџџ€€€џџџџџ€€€џџџџџџџџџџџџџџџџџРРРџџџџџџџџџџџџџРРРџ€€€џ€€€џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџРРРџџџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџ€џџРРРџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџ€џџ€€€џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ€џџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџџРРРџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ€€€џџџџџџџџџџџџџРРРџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџ€џџ€€€џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџРРРџџџџџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџРРРџџ€џџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџџ€€€џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџРРРџ€€€џџРРРџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ€€€џџџџџџџџџџџџџџџџџ€€€џџџџџ€€€џџџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџ€џџ€џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ€€€џ€џџ€џџ€€€џџџџџРРРџџџџџџџџџџџџџџџџџ€€€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџРРРџџџџџ€€€џџ€џџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџџџРРРџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџРРРџ€€€џџџџџџ€€€џџџџџРРРџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџ€џџ€џ€€€џџџџџџџџџџџџџџџџџџџџџџџџџџџџџРРРџ€€€џџ€џџ€џџ€џџ€€€џџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€€€џџџџџ€€€џ€џџ€џџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџџџџРРРџџџџџџџџџџџџџРРРџ€€€џџџџџџџџџџ€€€џџџџџџџџџ€€€џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџ€џџ€џџ€€€џџџџџџџџџ€€€џ€џџ€џџ€џџ€џџ€џџ€€€џџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџРРРџџџџџ€€€џџ€џџ€џџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџџџџџ€€€џџџџџџџџџџџџџџџџџџ€€€џџџџџџџџџџџџџ€€€џџџџџџџџџџџџџџџџџџџџџџџџРРРџџџџџРРРџџџџџџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџ€џџ€џџ€џџРРРџџџџџџџџџџ€џџ€џџ€џџ€€€џџџџџџџџџџџџџРРРџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџРРРџџџџџџџџџџ€џџ€џџ€џџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџџџџџџџРРРџџџџџџџџџ€€€џџџџџ€€€џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџРРРџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџРРРџџџџџџџџџ€€€џ€џџ€€€џџџџџџџџџџџџџџџџџ€€€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€€€џџџџџџџџџРРРџџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџџџџџџџџџ€€€џџџџџџџџџџџџџ€€€џџџџџџџџџџџџџџџџџРРРџџџџџџџџџџџџџџџџџџџџџ€€€џРРРџџџџџџџџџ€€€џџџџџџџџџџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џРРРџџџџџџџџџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€€€џџџџџџџџџџџџџРРРџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџРРРџџџџџџџџџџџџџџџџџ€€€џџџџџџџџџџџџџџџџ€€€џРРРџџџџџџџџџџџџџРРРџ€€€џџџџџџџџџџџџџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€€€џџџџџџџџџџџџџџџџџџџџџРРРџРРРџ€€€џ€€€џ€€€џ€€€џ€€€џ€€€џ€€€џРРРџРРРџџџџџџџџџџџџџџџџџџџџџРРРџ€€€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ€€€џ€€€џРРРџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџРРРџ€€€џ€€€џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€€€џ€€€џ€€€џ€€€џ€€€џ€€€џ€€€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џџ€џtcpcrypt-0.5/launchers/TcpcryptLauncher/0000755000175200017520000000000012742073006017543 5ustar sorbosorbotcpcrypt-0.5/launchers/TcpcryptLauncher/TcpcryptLauncher_Prefix.pch0000644000175200017520000000024412742073006025046 0ustar sorbosorbo// // Prefix header for all source files of the 'TcpcryptLauncher' target in the 'TcpcryptLauncher' project // #ifdef __OBJC__ #import #endif tcpcrypt-0.5/launchers/TcpcryptLauncher/Classes/0000755000175200017520000000000012742073006021140 5ustar sorbosorbotcpcrypt-0.5/launchers/TcpcryptLauncher/Classes/TcpcryptLauncherAppDelegate.m0000644000175200017520000000115512742073006026706 0ustar sorbosorbo// // TcpcryptLauncherAppDelegate.m // TcpcryptLauncher // // Created by Samuel Quinn Slack on 8/17/10. // Copyright (c) 2010 __MyCompanyName__. All rights reserved. // #import "TcpcryptLauncherAppDelegate.h" #include "../../../src/tcpcrypt_version.h" @implementation TcpcryptLauncherAppDelegate @synthesize window; - (void)applicationDidFinishLaunching:(NSNotification *)aNotification { NSString* title = [NSString stringWithFormat:@"tcpcrypt v%s" , TCPCRYPT_VERSION]; [title autorelease]; [[self window] setTitle:title]; // Insert code here to initialize your application } @end tcpcrypt-0.5/launchers/TcpcryptLauncher/Classes/TCTcpcryptController.m0000644000175200017520000000721512742073006025426 0ustar sorbosorbo#import "TCTcpcryptController.h" #include #include #include @interface TCTcpcryptController () - (BOOL)daemonIsRunning; - (NSString *)daemonStatus; - (void)refreshDaemonStatus; - (void)checkPermissions; @end @implementation TCTcpcryptController //////////////////////////////////////////////////////////////////////////////////////// #pragma mark NSObject - (id)init { if ((self = [super init])) { _wrapperPath = [[[NSBundle mainBundle] pathForResource:@"tcpcryptd_wrapper" ofType:@""] retain]; _tcpcryptdPath = [[[NSBundle mainBundle] pathForResource:@"tcpcryptd" ofType:@""] retain]; } return self; } - (void)dealloc { [self stopDaemon:nil]; [_wrapperPath release]; [_tcpcryptdPath release]; [super dealloc]; } #pragma mark NSWindowDelegate - (void)windowWillClose:(NSNotification *)notification { [self stopDaemon:nil]; [[NSApplication sharedApplication] terminate:nil]; } #pragma mark - - (void)fixPermissionsForFile:(NSString *)path_ setUIDRoot:(BOOL)setUIDRoot { int fd, ret; mode_t mode; struct stat st; const char *path = [path_ cStringUsingEncoding:NSUTF8StringEncoding]; AuthorizationRef authRef; OSStatus status; fd = open(path, O_NOFOLLOW); NSAssert(fd != -1, @"open(%s)", path); ret = fstat(fd, &st); NSAssert(ret != -1, @"fstat(%s)", path); // chmod mode = 0755 | S_IFREG; if (setUIDRoot) mode = mode | S_ISUID; if (st.st_mode != mode) { NSLog(@"%@ is 0%o, will set to 0%o", path_, st.st_mode, mode); if (st.st_uid == 0) { NSLog(@"lost perms but kept root ownership of %@", path_); } ret = fchmod(fd, mode); NSAssert(ret != -1, @"fchmod()"); } // chown root if (st.st_uid != 0) { const char *args[] = {"root", path, NULL}; status = AuthorizationCreate(NULL, kAuthorizationEmptyEnvironment, kAuthorizationFlagDefaults, &authRef); status = AuthorizationExecuteWithPrivileges(authRef, "/usr/sbin/chown", kAuthorizationFlagDefaults, (char *const *)args, NULL); NSAssert(status != -1, @"chown"); } close(fd); } - (void)checkPermissions { [self fixPermissionsForFile:_wrapperPath setUIDRoot:YES]; [self fixPermissionsForFile:_tcpcryptdPath setUIDRoot:NO]; } - (IBAction)startDaemon:(id)sender { NSLog(@"starting tcpcryptd..."); NSAssert(![self daemonIsRunning], @"tcpcryptd already started"); [self checkPermissions]; usleep(50000); /* file perms weren't getting set? */ _daemon = [[NSTask launchedTaskWithLaunchPath:_wrapperPath arguments:[NSArray arrayWithObject:@"start"]] retain]; NSLog(@"started tcpcryptd, pid %u", [_daemon processIdentifier]); NSAssert([self daemonIsRunning], @"failed to start tcpcryptd"); [self refreshDaemonStatus]; } - (IBAction)stopDaemon:(id)sender { NSLog(@"stopping tcpcryptd..."); NSTask *stopper = [NSTask launchedTaskWithLaunchPath:_wrapperPath arguments:[NSArray arrayWithObject:@"stop"]]; [stopper waitUntilExit]; NSLog(@"stopped tcpcryptd"); NSAssert(![self daemonIsRunning], @"failed to stop tcpcryptd"); if (_daemon) { [_daemon release]; _daemon = nil; } [self refreshDaemonStatus]; } - (BOOL)daemonIsRunning { return _daemon && [_daemon isRunning]; } - (NSString *)daemonStatus { return [self daemonIsRunning] ? @"Tcpcrypt is running on ports 80 (http) and 7777." : @"Tcpcrypt is off."; } - (void)refreshDaemonStatus { [_startButton setHidden:[self daemonIsRunning]]; [_stopButton setHidden:![self daemonIsRunning]]; [_testButton setHidden:![self daemonIsRunning]]; [_statusLabel setStringValue:[self daemonStatus]]; } - (IBAction)openTestPage:(id)sender { [[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:@"http://tcpcrypt.org/fame.php"]]; } @end tcpcrypt-0.5/launchers/TcpcryptLauncher/Classes/TcpcryptLauncherAppDelegate.h0000644000175200017520000000051212742073006026675 0ustar sorbosorbo// // TcpcryptLauncherAppDelegate.h // TcpcryptLauncher // // Created by Samuel Quinn Slack on 8/17/10. // Copyright (c) 2010 __MyCompanyName__. All rights reserved. // @interface TcpcryptLauncherAppDelegate : NSObject { NSWindow *window; } @property (assign) IBOutlet NSWindow *window; @end tcpcrypt-0.5/launchers/TcpcryptLauncher/Classes/TCTcpcryptController.h0000644000175200017520000000066012742073006025416 0ustar sorbosorbo#import @interface TCTcpcryptController : NSObject { NSString* _wrapperPath; NSString* _tcpcryptdPath; NSTask* _daemon; NSPipe* _pipe; IBOutlet NSButton* _startButton; IBOutlet NSButton* _stopButton; IBOutlet NSTextField* _statusLabel; IBOutlet NSButton* _testButton; } - (IBAction)startDaemon:(id)sender; - (IBAction)stopDaemon:(id)sender; - (IBAction)openTestPage:(id)sender; @end tcpcrypt-0.5/launchers/TcpcryptLauncher/TcpcryptLauncher.xcodeproj/0000755000175200017520000000000012742073006025031 5ustar sorbosorbotcpcrypt-0.5/launchers/TcpcryptLauncher/TcpcryptLauncher.xcodeproj/project.xcworkspace/0000755000175200017520000000000012742073006031027 5ustar sorbosorbotcpcrypt-0.5/launchers/TcpcryptLauncher/TcpcryptLauncher.xcodeproj/project.xcworkspace/xcuserdata/0000755000175200017520000000000012742073006033172 5ustar sorbosorbo././@LongLink0000644000000000000000000000016300000000000011603 Lustar rootroottcpcrypt-0.5/launchers/TcpcryptLauncher/TcpcryptLauncher.xcodeproj/project.xcworkspace/xcuserdata/sqs.xcuserdatad/tcpcrypt-0.5/launchers/TcpcryptLauncher/TcpcryptLauncher.xcodeproj/project.xcworkspace/xcuserdata/sq0000755000175200017520000000000012742073006033536 5ustar sorbosorbo././@LongLink0000644000000000000000000000021500000000000011601 Lustar rootroottcpcrypt-0.5/launchers/TcpcryptLauncher/TcpcryptLauncher.xcodeproj/project.xcworkspace/xcuserdata/sqs.xcuserdatad/WorkspaceState.xcuserstatetcpcrypt-0.5/launchers/TcpcryptLauncher/TcpcryptLauncher.xcodeproj/project.xcworkspace/xcuserdata/sq0000644000175200017520000014600712742073006033550 0ustar sorbosorbo $archiver NSKeyedArchiver $objects $null $class CF$UID 106 NS.keys CF$UID 2 CF$UID 3 NS.objects CF$UID 4 CF$UID 136 IDEWorkspaceDocument IDEWorkspaceWindowController_0 $class CF$UID 30 NS.keys CF$UID 5 CF$UID 6 CF$UID 7 CF$UID 8 CF$UID 9 CF$UID 10 CF$UID 11 CF$UID 12 NS.objects CF$UID 13 CF$UID 14 CF$UID 109 CF$UID 112 CF$UID 117 CF$UID 118 CF$UID 13 CF$UID 13 BreakpointsActivated DefaultEditorStatesForURLs ActiveScheme ActiveRunDestination DocumentWindows RecentEditorDocumentURLs AppFocusInMiniDebugging DebuggingWindowsLayerMode $class CF$UID 30 NS.keys CF$UID 15 CF$UID 16 CF$UID 17 NS.objects CF$UID 18 CF$UID 35 CF$UID 69 Xcode.IDEKit.CocoaIntegration.EditorDocument.Cocoa Xcode.IDEKit.EditorDocument.SourceCode Xcode.Xcode3ProjectSupport.EditorDocument.Xcode3Project $class CF$UID 30 NS.keys CF$UID 19 CF$UID 23 NS.objects CF$UID 25 CF$UID 31 $class CF$UID 22 NS.base CF$UID 0 NS.relative CF$UID 20 $class CF$UID 21 NS.string file://localhost/home/sqs/src/tcpcrypt/contrib/TcpcryptLauncher/en.lproj/MainMenu.xib $classes NSMutableString NSString NSObject $classname NSMutableString $classes NSURL NSObject $classname NSURL $class CF$UID 22 NS.base CF$UID 0 NS.relative CF$UID 24 $class CF$UID 21 NS.string file://localhost/home/sqs/src/tcpcrypt/contrib/TcpcryptLauncher/TCStatusWindow.xib $class CF$UID 30 NS.keys CF$UID 26 NS.objects CF$UID 27 ObjectIDs $class CF$UID 29 NS.objects CF$UID 28 29 $classes NSMutableArray NSArray NSObject $classname NSMutableArray $classes NSMutableDictionary NSDictionary NSObject $classname NSMutableDictionary $class CF$UID 30 NS.keys CF$UID 32 NS.objects CF$UID 33 ObjectIDs $class CF$UID 29 NS.objects CF$UID 34 1 $class CF$UID 30 NS.keys CF$UID 36 CF$UID 38 CF$UID 40 CF$UID 42 CF$UID 44 NS.objects CF$UID 46 CF$UID 53 CF$UID 57 CF$UID 61 CF$UID 65 $class CF$UID 22 NS.base CF$UID 0 NS.relative CF$UID 37 $class CF$UID 21 NS.string file://localhost/home/sqs/src/tcpcrypt/contrib/TcpcryptLauncher/en.lproj/InfoPlist.strings $class CF$UID 22 NS.base CF$UID 0 NS.relative CF$UID 39 $class CF$UID 21 NS.string file://localhost/home/sqs/src/tcpcrypt/contrib/TcpcryptLauncher/Classes/TCStatusWindowController.h $class CF$UID 22 NS.base CF$UID 0 NS.relative CF$UID 41 $class CF$UID 21 NS.string file://localhost/home/sqs/src/tcpcrypt/contrib/TcpcryptLauncher/Classes/TCStatusWindowController.m $class CF$UID 22 NS.base CF$UID 0 NS.relative CF$UID 43 $class CF$UID 21 NS.string file://localhost/home/sqs/src/tcpcrypt/contrib/TcpcryptLauncher/Classes/TcpcryptLauncherAppDelegate.h $class CF$UID 22 NS.base CF$UID 0 NS.relative CF$UID 45 $class CF$UID 21 NS.string file://localhost/home/sqs/src/tcpcrypt/contrib/TcpcryptLauncher/Classes/TcpcryptLauncherAppDelegate.m $class CF$UID 30 NS.keys CF$UID 47 CF$UID 48 CF$UID 49 NS.objects CF$UID 50 CF$UID 51 CF$UID 52 PrimaryDocumentSelectedCharacterRange PrimaryDocumentTimestamp PrimaryDocumentVisibleCharacterRange {0, 0} 303774410.35456699 {0, 101} $class CF$UID 30 NS.keys CF$UID 47 CF$UID 48 CF$UID 49 NS.objects CF$UID 54 CF$UID 55 CF$UID 56 {169, 0} 303774417.264189 {0, 278} $class CF$UID 30 NS.keys CF$UID 47 CF$UID 48 CF$UID 49 NS.objects CF$UID 58 CF$UID 59 CF$UID 60 {456, 0} 303774417.02209902 {0, 681} $class CF$UID 30 NS.keys CF$UID 47 CF$UID 48 CF$UID 49 NS.objects CF$UID 62 CF$UID 63 CF$UID 64 {251, 0} 303774417.18541902 {0, 330} $class CF$UID 30 NS.keys CF$UID 47 CF$UID 48 CF$UID 49 NS.objects CF$UID 66 CF$UID 67 CF$UID 68 {380, 0} 303774416.90455198 {0, 419} $class CF$UID 30 NS.keys CF$UID 70 NS.objects CF$UID 72 $class CF$UID 22 NS.base CF$UID 0 NS.relative CF$UID 71 $class CF$UID 21 NS.string file://localhost/home/sqs/src/tcpcrypt/contrib/TcpcryptLauncher/TcpcryptLauncher.xcodeproj/ $class CF$UID 30 NS.keys CF$UID 73 CF$UID 74 NS.objects CF$UID 75 CF$UID 98 SelectedDocumentLocations Xcode3ProjectEditor.sourceList.splitview $class CF$UID 96 NS.objects CF$UID 76 $class CF$UID 97 documentURL CF$UID 77 selection CF$UID 79 timestamp CF$UID 78 file://localhost/home/sqs/src/tcpcrypt/contrib/TcpcryptLauncher/TcpcryptLauncher.xcodeproj/ 303772387.46914601 $class CF$UID 30 NS.keys CF$UID 80 CF$UID 81 CF$UID 82 NS.objects CF$UID 83 CF$UID 84 CF$UID 85 Editor Target Xcode3BuildSettingsEditorLocations Xcode3BuildSettingsEditor TcpcryptLauncher $class CF$UID 96 NS.objects CF$UID 86 $class CF$UID 30 NS.keys CF$UID 87 CF$UID 88 CF$UID 89 CF$UID 90 CF$UID 91 CF$UID 92 NS.objects CF$UID 34 CF$UID 93 CF$UID 94 CF$UID 94 CF$UID 95 CF$UID 34 Xcode3BuildPropertyNameDisplayMode Selected Build Properties Xcode3BuildSettingsEditorDisplayMode Xcode3BuildPropertyValueDisplayMode Collapsed Build Property Categories Xcode3BuildSettingsEditorMode $class CF$UID 29 NS.objects 0 $class CF$UID 29 NS.objects $classes NSArray NSObject $classname NSArray $classes Xcode3ProjectDocumentLocation DVTDocumentLocation NSObject $classname Xcode3ProjectDocumentLocation $class CF$UID 30 NS.keys CF$UID 99 NS.objects CF$UID 100 DVTSplitViewItems $class CF$UID 29 NS.objects CF$UID 101 CF$UID 107 $class CF$UID 106 NS.keys CF$UID 102 CF$UID 103 NS.objects CF$UID 104 CF$UID 105 DVTIdentifier DVTViewMagnitude 162 $classes NSDictionary NSObject $classname NSDictionary $class CF$UID 106 NS.keys CF$UID 102 CF$UID 103 NS.objects CF$UID 104 CF$UID 108 1018 $class CF$UID 30 NS.keys CF$UID 110 NS.objects CF$UID 111 IDENameString TcpcryptLauncher $class CF$UID 30 NS.keys CF$UID 113 CF$UID 114 NS.objects CF$UID 115 CF$UID 116 IDEDeviceLocation IDEDeviceArchitecture dvtdevice-local-computer:localhost i386 $class CF$UID 29 NS.objects $class CF$UID 29 NS.objects CF$UID 119 CF$UID 121 CF$UID 123 CF$UID 125 CF$UID 127 CF$UID 129 CF$UID 131 CF$UID 133 CF$UID 135 $class CF$UID 22 NS.base CF$UID 0 NS.relative CF$UID 120 file://localhost/home/sqs/src/tcpcrypt/contrib/TcpcryptLauncher/en.lproj/MainMenu.xib $class CF$UID 22 NS.base CF$UID 0 NS.relative CF$UID 122 file://localhost/home/sqs/src/tcpcrypt/contrib/TcpcryptLauncher/TCStatusWindow.xib $class CF$UID 22 NS.base CF$UID 0 NS.relative CF$UID 124 file://localhost/home/sqs/src/tcpcrypt/contrib/TcpcryptLauncher/Classes/TCStatusWindowController.h $class CF$UID 22 NS.base CF$UID 0 NS.relative CF$UID 126 file://localhost/home/sqs/src/tcpcrypt/contrib/TcpcryptLauncher/Classes/TcpcryptLauncherAppDelegate.h $class CF$UID 22 NS.base CF$UID 0 NS.relative CF$UID 128 file://localhost/home/sqs/src/tcpcrypt/contrib/TcpcryptLauncher/Classes/TCStatusWindowController.m $class CF$UID 22 NS.base CF$UID 0 NS.relative CF$UID 130 file://localhost/home/sqs/src/tcpcrypt/contrib/TcpcryptLauncher/Classes/TcpcryptLauncherAppDelegate.m $class CF$UID 22 NS.base CF$UID 0 NS.relative CF$UID 132 file://localhost/home/sqs/src/tcpcrypt/contrib/TcpcryptLauncher/en.lproj/InfoPlist.strings $class CF$UID 22 NS.base CF$UID 0 NS.relative CF$UID 134 file://localhost/Xcode4/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/AppKit.framework/Versions/C/Headers/NSApplication.h $class CF$UID 22 NS.base CF$UID 0 NS.relative CF$UID 77 $class CF$UID 30 NS.keys CF$UID 137 CF$UID 138 CF$UID 139 CF$UID 140 CF$UID 141 NS.objects CF$UID 142 CF$UID 13 CF$UID 141 CF$UID 143 CF$UID 144 IDEOrderedWorkspaceTabControllers IDEUserWantsMiniDebuggingConsole IDEActiveWorkspaceTabController IDEWindowFrame IDEWorkspaceTabController_0 $class CF$UID 96 NS.objects CF$UID 141 {{4, 0}, {1436, 878}} $class CF$UID 30 NS.keys CF$UID 145 CF$UID 146 CF$UID 147 CF$UID 148 CF$UID 149 CF$UID 150 CF$UID 151 NS.objects CF$UID 152 CF$UID 153 CF$UID 154 CF$UID 164 CF$UID 192 CF$UID 153 CF$UID 201 IDETabLabel IDEShowNavigator IDEWorkspaceTabControllerUtilityAreaSplitView IDENavigatorArea IDEWorkspaceTabControllerDesignAreaSplitView IDEShowUtilities IDEEditorArea MainMenu.xib $class CF$UID 30 NS.keys CF$UID 155 NS.objects CF$UID 156 DVTSplitViewItems $class CF$UID 29 NS.objects CF$UID 157 CF$UID 162 $class CF$UID 106 NS.keys CF$UID 158 CF$UID 159 NS.objects CF$UID 160 CF$UID 161 DVTIdentifier DVTViewMagnitude 360 $class CF$UID 106 NS.keys CF$UID 158 CF$UID 159 NS.objects CF$UID 160 CF$UID 163 445 $class CF$UID 30 NS.keys CF$UID 165 CF$UID 166 NS.objects CF$UID 166 CF$UID 167 SelectedNavigator Xcode.IDEKit.Navigator.Structure $class CF$UID 30 NS.keys CF$UID 168 CF$UID 169 CF$UID 170 CF$UID 171 CF$UID 172 CF$UID 173 NS.objects CF$UID 13 CF$UID 174 CF$UID 189 CF$UID 13 CF$UID 191 CF$UID 13 IDEUnsavedDocumentFilteringEnabled IDEExpandedItems IDESelectedObjects IDESCMStatusFilteringEnabled IDEVisibleRect IDERecentDocumentFilteringEnabled $class CF$UID 29 NS.objects CF$UID 175 CF$UID 179 CF$UID 180 CF$UID 182 CF$UID 184 CF$UID 186 CF$UID 188 $class CF$UID 29 NS.objects CF$UID 176 CF$UID 177 CF$UID 178 TcpcryptLauncher Resources MainMenu.xib $class CF$UID 29 NS.objects CF$UID 176 $class CF$UID 29 NS.objects CF$UID 176 CF$UID 177 CF$UID 181 InfoPlist.strings $class CF$UID 29 NS.objects CF$UID 176 CF$UID 183 Frameworks $class CF$UID 29 NS.objects CF$UID 176 CF$UID 185 Other Sources $class CF$UID 29 NS.objects CF$UID 176 CF$UID 187 Classes $class CF$UID 29 NS.objects CF$UID 176 CF$UID 177 $class CF$UID 29 NS.objects CF$UID 190 $class CF$UID 29 NS.objects CF$UID 176 CF$UID 177 CF$UID 178 {{0, 0}, {259, 761}} $class CF$UID 30 NS.keys CF$UID 155 NS.objects CF$UID 193 $class CF$UID 29 NS.objects CF$UID 194 CF$UID 196 CF$UID 198 $class CF$UID 106 NS.keys CF$UID 158 CF$UID 159 NS.objects CF$UID 148 CF$UID 195 260 $class CF$UID 106 NS.keys CF$UID 158 CF$UID 159 NS.objects CF$UID 151 CF$UID 197 916 $class CF$UID 106 NS.keys CF$UID 158 CF$UID 159 NS.objects CF$UID 199 CF$UID 200 IDEUtilitiesArea 260 $class CF$UID 30 NS.keys CF$UID 202 CF$UID 203 CF$UID 204 CF$UID 205 CF$UID 206 CF$UID 207 CF$UID 208 NS.objects CF$UID 209 CF$UID 235 CF$UID 94 CF$UID 245 CF$UID 247 CF$UID 254 CF$UID 13 IDEEditorMode_Standard IDEEDitorArea_DebugArea EditorMode IDEEditorMode_Version IDEEditorArea_DebuggerSplitView IDEEditorMode_Genius ShowDebuggerArea $class CF$UID 30 NS.keys CF$UID 210 NS.objects CF$UID 211 EditorStates $class CF$UID 106 NS.keys CF$UID 210 CF$UID 212 NS.objects CF$UID 213 CF$UID 94 SelectedEditorState $class CF$UID 29 NS.objects CF$UID 214 $class CF$UID 30 NS.keys CF$UID 215 CF$UID 216 CF$UID 217 CF$UID 218 CF$UID 219 CF$UID 220 NS.objects CF$UID 221 CF$UID 224 CF$UID 230 CF$UID 232 CF$UID 233 CF$UID 234 EditorState ArchivableRepresentation DocumentURL FileDataType DocumentExtensionIdentifier HistoryMenuDescription $class CF$UID 106 NS.keys CF$UID 32 NS.objects CF$UID 222 $class CF$UID 29 NS.objects CF$UID 223 29 $class CF$UID 229 DocumentLocation CF$UID 228 DomainIdentifier CF$UID 225 IdentifierPath CF$UID 226 Xcode.IDENavigableItemDomain.WorkspaceStructure $class CF$UID 96 NS.objects CF$UID 178 CF$UID 177 CF$UID 227 TcpcryptLauncher $null $classes IDENavigableItemArchivableRepresentation NSObject $classname IDENavigableItemArchivableRepresentation $class CF$UID 22 NS.base CF$UID 0 NS.relative CF$UID 231 file://localhost/home/sqs/src/tcpcrypt/contrib/TcpcryptLauncher/en.lproj/MainMenu.xib com.apple.InterfaceBuilder3.Cocoa.XIB Xcode.IDEKit.CocoaIntegration.EditorDocument.Cocoa Main Menu $class CF$UID 30 NS.keys CF$UID 236 CF$UID 237 CF$UID 238 CF$UID 239 NS.objects CF$UID 34 CF$UID 240 CF$UID 34 CF$UID 242 LayoutFocusMode console LayoutMode variables $class CF$UID 30 NS.keys CF$UID 241 NS.objects CF$UID 94 ConsoleFilterMode $class CF$UID 30 NS.keys CF$UID 243 NS.objects CF$UID 244 DBGVariablesViewFilterMode 2 $class CF$UID 30 NS.keys CF$UID 246 NS.objects CF$UID 94 VersionsEditorSubmode $class CF$UID 30 NS.keys CF$UID 155 NS.objects CF$UID 248 $class CF$UID 29 NS.objects CF$UID 249 CF$UID 251 $class CF$UID 106 NS.keys CF$UID 158 CF$UID 159 NS.objects CF$UID 160 CF$UID 250 805 $class CF$UID 106 NS.keys CF$UID 158 CF$UID 159 NS.objects CF$UID 252 CF$UID 253 IDEDebuggerArea 148 $class CF$UID 30 NS.keys CF$UID 255 CF$UID 256 NS.objects CF$UID 13 CF$UID 257 ManualMode GeniusLayout $class CF$UID 30 NS.keys CF$UID 258 CF$UID 259 CF$UID 260 NS.objects CF$UID 261 CF$UID 13 CF$UID 262 GeniusCategory SplitsVertical SplitPosition Xcode.InterfaceBuilderKit.GeniusCategory.TopLevelObjects 0.5 $top State CF$UID 1 $version 100000 ././@LongLink0000644000000000000000000000016000000000000011600 Lustar rootroottcpcrypt-0.5/launchers/TcpcryptLauncher/TcpcryptLauncher.xcodeproj/project.xcworkspace/contents.xcworkspacedatatcpcrypt-0.5/launchers/TcpcryptLauncher/TcpcryptLauncher.xcodeproj/project.xcworkspace/contents.xcwo0000644000175200017520000000021612742073006033565 0ustar sorbosorbo tcpcrypt-0.5/launchers/TcpcryptLauncher/TcpcryptLauncher.xcodeproj/.gitignore0000644000175200017520000000002612742073006027017 0ustar sorbosorbo*.pbxuser xcuserdata tcpcrypt-0.5/launchers/TcpcryptLauncher/TcpcryptLauncher.xcodeproj/project.pbxproj0000644000175200017520000004612612742073006030116 0ustar sorbosorbo// !$*UTF8*$! { archiveVersion = 1; classes = { }; objectVersion = 46; objects = { /* Begin PBXBuildFile section */ 58456381134841F600704BF3 /* tcpcryptd in Resources */ = {isa = PBXBuildFile; fileRef = 58456380134841F600704BF3 /* tcpcryptd */; }; 58B394F8121B3C5300EE7796 /* TCTcpcryptController.m in Sources */ = {isa = PBXBuildFile; fileRef = 58B394F7121B3C5300EE7796 /* TCTcpcryptController.m */; }; 58B39615121B538200EE7796 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 58B39614121B538200EE7796 /* Security.framework */; }; 58B396A3121B7BA400EE7796 /* tcpcryptd_wrapper.c in Sources */ = {isa = PBXBuildFile; fileRef = 58B396A2121B7BA400EE7796 /* tcpcryptd_wrapper.c */; }; 58C9293F121B3242002FE941 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 58C9293E121B3242002FE941 /* Cocoa.framework */; }; 58C92944121B3242002FE941 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 58C92942121B3242002FE941 /* InfoPlist.strings */; }; 58C92946121B3242002FE941 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 58C92945121B3242002FE941 /* main.m */; }; 58C92949121B3242002FE941 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 58C92947121B3242002FE941 /* MainMenu.xib */; }; 58C9294C121B3242002FE941 /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = 58C9294A121B3242002FE941 /* Credits.rtf */; }; 58C9294F121B3242002FE941 /* TcpcryptLauncherAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 58C9294E121B3242002FE941 /* TcpcryptLauncherAppDelegate.m */; }; 58EDEADC1220A1A100AA7A7F /* tcpcryptd_wrapper in Resources */ = {isa = PBXBuildFile; fileRef = 58EDEA3912208C3900AA7A7F /* tcpcryptd_wrapper */; }; 58EDEBB31220B2A900AA7A7F /* TcpcryptLauncher.icns in Resources */ = {isa = PBXBuildFile; fileRef = 58EDEBB21220B2A900AA7A7F /* TcpcryptLauncher.icns */; }; CD1986CF1BE1E08E007F236D /* pf.conf in Resources */ = {isa = PBXBuildFile; fileRef = CD1986CE1BE1E08E007F236D /* pf.conf */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ 58DCC39B121C65E600E65AEC /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 58C9292E121B3241002FE941 /* Project object */; proxyType = 1; remoteGlobalIDString = 58B3969A121B7B8600EE7796; remoteInfo = launch_tcpcryptd; }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ 58456380134841F600704BF3 /* tcpcryptd */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.executable"; name = tcpcryptd; path = ../../src/tcpcryptd; sourceTree = ""; }; 58B394F6121B3C5300EE7796 /* TCTcpcryptController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TCTcpcryptController.h; sourceTree = ""; }; 58B394F7121B3C5300EE7796 /* TCTcpcryptController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TCTcpcryptController.m; sourceTree = ""; }; 58B39614121B538200EE7796 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; }; 58B396A2121B7BA400EE7796 /* tcpcryptd_wrapper.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tcpcryptd_wrapper.c; sourceTree = ""; }; 58C9293B121B3242002FE941 /* TcpcryptLauncher.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = TcpcryptLauncher.app; sourceTree = BUILT_PRODUCTS_DIR; }; 58C9293E121B3242002FE941 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; 58C92940121B3242002FE941 /* TcpcryptLauncher-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "TcpcryptLauncher-Info.plist"; sourceTree = ""; }; 58C92941121B3242002FE941 /* TcpcryptLauncher_Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TcpcryptLauncher_Prefix.pch; sourceTree = ""; }; 58C92943121B3242002FE941 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; 58C92945121B3242002FE941 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 58C92948121B3242002FE941 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/MainMenu.xib; sourceTree = ""; }; 58C9294B121B3242002FE941 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = en; path = en.lproj/Credits.rtf; sourceTree = ""; }; 58C9294D121B3242002FE941 /* TcpcryptLauncherAppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TcpcryptLauncherAppDelegate.h; sourceTree = ""; }; 58C9294E121B3242002FE941 /* TcpcryptLauncherAppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TcpcryptLauncherAppDelegate.m; sourceTree = ""; }; 58EDEA3912208C3900AA7A7F /* tcpcryptd_wrapper */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = tcpcryptd_wrapper; sourceTree = BUILT_PRODUCTS_DIR; }; 58EDEBB21220B2A900AA7A7F /* TcpcryptLauncher.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = TcpcryptLauncher.icns; sourceTree = ""; }; CD1986CE1BE1E08E007F236D /* pf.conf */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = pf.conf; path = ../../src/pf.conf; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ 58B39699121B7B8600EE7796 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; 58C92938121B3242002FE941 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( 58C9293F121B3242002FE941 /* Cocoa.framework in Frameworks */, 58B39615121B538200EE7796 /* Security.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ 58B394FB121B3EF700EE7796 /* External Products */ = { isa = PBXGroup; children = ( 58456380134841F600704BF3 /* tcpcryptd */, ); name = "External Products"; sourceTree = ""; }; 58B3969F121B7B9100EE7796 /* tcpcryptd_wrapper */ = { isa = PBXGroup; children = ( 58B396A2121B7BA400EE7796 /* tcpcryptd_wrapper.c */, ); name = tcpcryptd_wrapper; sourceTree = ""; }; 58C9292C121B3241002FE941 = { isa = PBXGroup; children = ( 58B3969F121B7B9100EE7796 /* tcpcryptd_wrapper */, 58B394FB121B3EF700EE7796 /* External Products */, 58C92933121B3241002FE941 /* Classes */, 58C92934121B3242002FE941 /* Other Sources */, 58C92935121B3242002FE941 /* Resources */, 58C92936121B3242002FE941 /* Frameworks */, 58C9293C121B3242002FE941 /* Products */, ); sourceTree = ""; }; 58C92933121B3241002FE941 /* Classes */ = { isa = PBXGroup; children = ( 58C9294D121B3242002FE941 /* TcpcryptLauncherAppDelegate.h */, 58C9294E121B3242002FE941 /* TcpcryptLauncherAppDelegate.m */, 58B394F6121B3C5300EE7796 /* TCTcpcryptController.h */, 58B394F7121B3C5300EE7796 /* TCTcpcryptController.m */, ); path = Classes; sourceTree = ""; }; 58C92934121B3242002FE941 /* Other Sources */ = { isa = PBXGroup; children = ( 58C92941121B3242002FE941 /* TcpcryptLauncher_Prefix.pch */, 58C92945121B3242002FE941 /* main.m */, ); name = "Other Sources"; sourceTree = ""; }; 58C92935121B3242002FE941 /* Resources */ = { isa = PBXGroup; children = ( CD1986CE1BE1E08E007F236D /* pf.conf */, 58EDEBB21220B2A900AA7A7F /* TcpcryptLauncher.icns */, 58C92940121B3242002FE941 /* TcpcryptLauncher-Info.plist */, 58C92942121B3242002FE941 /* InfoPlist.strings */, 58C92947121B3242002FE941 /* MainMenu.xib */, 58C9294A121B3242002FE941 /* Credits.rtf */, ); name = Resources; sourceTree = ""; }; 58C92936121B3242002FE941 /* Frameworks */ = { isa = PBXGroup; children = ( 58B39614121B538200EE7796 /* Security.framework */, 58C9293E121B3242002FE941 /* Cocoa.framework */, ); name = Frameworks; sourceTree = ""; }; 58C9293C121B3242002FE941 /* Products */ = { isa = PBXGroup; children = ( 58C9293B121B3242002FE941 /* TcpcryptLauncher.app */, 58EDEA3912208C3900AA7A7F /* tcpcryptd_wrapper */, ); name = Products; sourceTree = ""; }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ 58B3969A121B7B8600EE7796 /* tcpcryptd_wrapper */ = { isa = PBXNativeTarget; buildConfigurationList = 58B396A0121B7B9100EE7796 /* Build configuration list for PBXNativeTarget "tcpcryptd_wrapper" */; buildPhases = ( 58B39698121B7B8600EE7796 /* Sources */, 58B39699121B7B8600EE7796 /* Frameworks */, ); buildRules = ( ); dependencies = ( ); name = tcpcryptd_wrapper; productName = launch_tcpcryptd; productReference = 58EDEA3912208C3900AA7A7F /* tcpcryptd_wrapper */; productType = "com.apple.product-type.tool"; }; 58C9293A121B3242002FE941 /* TcpcryptLauncher */ = { isa = PBXNativeTarget; buildConfigurationList = 58C92952121B3242002FE941 /* Build configuration list for PBXNativeTarget "TcpcryptLauncher" */; buildPhases = ( 58B394FD121B3F2800EE7796 /* make tcpcryptd */, 58C92937121B3242002FE941 /* Sources */, 58C92938121B3242002FE941 /* Frameworks */, 58C92939121B3242002FE941 /* Resources */, ); buildRules = ( ); dependencies = ( 58DCC39C121C65E600E65AEC /* PBXTargetDependency */, ); name = TcpcryptLauncher; productName = TcpcryptLauncher; productReference = 58C9293B121B3242002FE941 /* TcpcryptLauncher.app */; productType = "com.apple.product-type.application"; }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ 58C9292E121B3241002FE941 /* Project object */ = { isa = PBXProject; attributes = { LastUpgradeCheck = 0640; TargetAttributes = { 58C9293A121B3242002FE941 = { DevelopmentTeam = QSMLJPBADY; }; }; }; buildConfigurationList = 58C92931121B3241002FE941 /* Build configuration list for PBXProject "TcpcryptLauncher" */; compatibilityVersion = "Xcode 3.2"; developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( en, ); mainGroup = 58C9292C121B3241002FE941; productRefGroup = 58C9293C121B3242002FE941 /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( 58C9293A121B3242002FE941 /* TcpcryptLauncher */, 58B3969A121B7B8600EE7796 /* tcpcryptd_wrapper */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ 58C92939121B3242002FE941 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( 58C92944121B3242002FE941 /* InfoPlist.strings in Resources */, 58C92949121B3242002FE941 /* MainMenu.xib in Resources */, 58C9294C121B3242002FE941 /* Credits.rtf in Resources */, 58EDEADC1220A1A100AA7A7F /* tcpcryptd_wrapper in Resources */, 58EDEBB31220B2A900AA7A7F /* TcpcryptLauncher.icns in Resources */, 58456381134841F600704BF3 /* tcpcryptd in Resources */, CD1986CF1BE1E08E007F236D /* pf.conf in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ 58B394FD121B3F2800EE7796 /* make tcpcryptd */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); name = "make tcpcryptd"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; shellScript = "cd ../../\nmake STATIC=1"; }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ 58B39698121B7B8600EE7796 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 58B396A3121B7BA400EE7796 /* tcpcryptd_wrapper.c in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; 58C92937121B3242002FE941 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 58C92946121B3242002FE941 /* main.m in Sources */, 58C9294F121B3242002FE941 /* TcpcryptLauncherAppDelegate.m in Sources */, 58B394F8121B3C5300EE7796 /* TCTcpcryptController.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ 58DCC39C121C65E600E65AEC /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = 58B3969A121B7B8600EE7796 /* tcpcryptd_wrapper */; targetProxy = 58DCC39B121C65E600E65AEC /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin PBXVariantGroup section */ 58C92942121B3242002FE941 /* InfoPlist.strings */ = { isa = PBXVariantGroup; children = ( 58C92943121B3242002FE941 /* en */, ); name = InfoPlist.strings; sourceTree = ""; }; 58C92947121B3242002FE941 /* MainMenu.xib */ = { isa = PBXVariantGroup; children = ( 58C92948121B3242002FE941 /* en */, ); name = MainMenu.xib; sourceTree = ""; }; 58C9294A121B3242002FE941 /* Credits.rtf */ = { isa = PBXVariantGroup; children = ( 58C9294B121B3242002FE941 /* en */, ); name = Credits.rtf; sourceTree = ""; }; /* End PBXVariantGroup section */ /* Begin XCBuildConfiguration section */ 58B3969D121B7B8600EE7796 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CODE_SIGN_IDENTITY = "Developer ID Application"; COPY_PHASE_STRIP = NO; GCC_DYNAMIC_NO_PIC = NO; GCC_ENABLE_FIX_AND_CONTINUE = YES; GCC_MODEL_TUNING = G5; GCC_OPTIMIZATION_LEVEL = 0; INSTALL_PATH = /usr/local/bin; MACOSX_DEPLOYMENT_TARGET = 10.5; OTHER_CFLAGS = "-mmacosx-version-min=10.5"; PREBINDING = NO; PRODUCT_NAME = tcpcryptd_wrapper; SKIP_INSTALL = YES; }; name = Debug; }; 58B3969E121B7B8600EE7796 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CODE_SIGN_IDENTITY = "Developer ID Application"; COPY_PHASE_STRIP = YES; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; GCC_ENABLE_FIX_AND_CONTINUE = NO; GCC_MODEL_TUNING = G5; INSTALL_PATH = /usr/local/bin; MACOSX_DEPLOYMENT_TARGET = 10.5; OTHER_CFLAGS = "-mmacosx-version-min=10.5"; PREBINDING = NO; PRODUCT_NAME = tcpcryptd_wrapper; SKIP_INSTALL = YES; ZERO_LINK = NO; }; name = Release; }; 58C92950121B3242002FE941 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CODE_SIGN_IDENTITY = "Developer ID Application"; ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_NO_COMMON_BLOCKS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = DEBUG; GCC_VERSION = com.apple.compilers.llvm.clang.1_0; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNDECLARED_SELECTOR = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; MACOSX_DEPLOYMENT_TARGET = 10.5; ONLY_ACTIVE_ARCH = YES; PREBINDING = NO; SDKROOT = macosx; }; name = Debug; }; 58C92951121B3242002FE941 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CODE_SIGN_IDENTITY = "Developer ID Application"; ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_NO_COMMON_BLOCKS = YES; GCC_VERSION = com.apple.compilers.llvm.clang.1_0; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNDECLARED_SELECTOR = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; MACOSX_DEPLOYMENT_TARGET = 10.5; PREBINDING = NO; SDKROOT = macosx; }; name = Release; }; 58C92953121B3242002FE941 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CODE_SIGN_IDENTITY = "Developer ID Application"; COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; GCC_DYNAMIC_NO_PIC = NO; GCC_ENABLE_OBJC_EXCEPTIONS = YES; GCC_MODEL_TUNING = G5; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = TcpcryptLauncher_Prefix.pch; INFOPLIST_FILE = "TcpcryptLauncher-Info.plist"; INSTALL_PATH = "$(HOME)/Applications"; PRODUCT_NAME = TcpcryptLauncher; WRAPPER_EXTENSION = app; }; name = Debug; }; 58C92954121B3242002FE941 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CODE_SIGN_IDENTITY = "Developer ID Application"; COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = YES; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; GCC_ENABLE_OBJC_EXCEPTIONS = YES; GCC_MODEL_TUNING = G5; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = TcpcryptLauncher_Prefix.pch; INFOPLIST_FILE = "TcpcryptLauncher-Info.plist"; INSTALL_PATH = "$(HOME)/Applications"; PRODUCT_NAME = TcpcryptLauncher; WRAPPER_EXTENSION = app; }; name = Release; }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ 58B396A0121B7B9100EE7796 /* Build configuration list for PBXNativeTarget "tcpcryptd_wrapper" */ = { isa = XCConfigurationList; buildConfigurations = ( 58B3969D121B7B8600EE7796 /* Debug */, 58B3969E121B7B8600EE7796 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 58C92931121B3241002FE941 /* Build configuration list for PBXProject "TcpcryptLauncher" */ = { isa = XCConfigurationList; buildConfigurations = ( 58C92950121B3242002FE941 /* Debug */, 58C92951121B3242002FE941 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 58C92952121B3242002FE941 /* Build configuration list for PBXNativeTarget "TcpcryptLauncher" */ = { isa = XCConfigurationList; buildConfigurations = ( 58C92953121B3242002FE941 /* Debug */, 58C92954121B3242002FE941 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; /* End XCConfigurationList section */ }; rootObject = 58C9292E121B3241002FE941 /* Project object */; } tcpcrypt-0.5/launchers/TcpcryptLauncher/main.m0000644000175200017520000000042412742073006020645 0ustar sorbosorbo// // main.m // TcpcryptLauncher // // Created by Samuel Quinn Slack on 8/17/10. // Copyright (c) 2010 __MyCompanyName__. All rights reserved. // #import int main(int argc, char *argv[]) { return NSApplicationMain(argc, (const char **) argv); } tcpcrypt-0.5/launchers/TcpcryptLauncher/TcpcryptLauncher-Info.plist0000644000175200017520000000176712742073006025016 0ustar sorbosorbo CFBundleIdentifier org.tcpcrypt.${PRODUCT_NAME:rfc1034identifier} CFBundleDevelopmentRegion English CFBundleExecutable ${EXECUTABLE_NAME} CFBundleIconFile TcpcryptLauncher CFBundleInfoDictionaryVersion 6.0 CFBundleName ${PRODUCT_NAME} CFBundlePackageType APPL CFBundleSignature ???? CFBundleShortVersionString 1.0 LSMinimumSystemVersion ${MACOSX_DEPLOYMENT_TARGET} CFBundleVersion 1 NSMainNibFile MainMenu NSPrincipalClass NSApplication tcpcrypt-0.5/launchers/TcpcryptLauncher/TcpcryptLauncher.icns0000644000175200017520000014776212742073006023734 0ustar sorbosorboicnsЯђis32 €UЄД›D  TдџьйѕўФ?‚}§јѕбБтѕћ№iƒ„nђъсщнзръпяы0qtЧЯНЭОЛКЛСЯКо’œtPиІ™”˜ЁІ –”™НДбšxЩАХЭЬrЃаЭРЕЏнС–Г­ІЌЇtatЂЉЋАЃлПГАž{ВЇЕЇ|ІД кЛ‹ЗЗŸ…„‡˜“‚ЊЛЃж`ЭНТВoXmUpЖУФЌбw0ЩЬжЧxar_ЭгдšИz˜жзНiRgPoУзй`‹ƒAЎлкМАЗАПкйЅw?Љйэіїѕые›5ƒ p ГЖБœd€n€ Œјџъv  €ѓџфЮяџъeƒ„ІџїџйЙыќїџ€˜џіџїпжхњ§њџWqm:јкЭдОНКНТоЭыТИw|џВ˜“–ŸЃž”’™вљїИЗџџуЦвЄyЈгШчџћ€џt§џФІšZLašЄбџћџў§§џК‚V&J'?Юџћџ§ќќџК…tGDFn„ЬџљџЉЊџњнЊq[l\vЏфџ§џumџѕыТy`t_~Ыэўщыr тњпНhPdOpФтџЄЂ…xџђоЬСШСЮоѕћ€€_ў"њјџ§ќќўўџЮГяџў§ќўўџіџШ)~Dс§ђџў€џљтдЬЪбк№€џ6ўўќ№џА„†ЎџябфџїэтЮФШЩЪЩХЧмяљџњгпџџ†…tњќѕкюђдаЮвдвггЯажяџмхўџкswЫџѕИž—˜››š™š€›š™››˜–Ÿ•Ѕшћџvxk@ќџђЉž˜›™˜˜š—–—•—š˜˜›™›•ЂцћџІІ{uџњќѓїцБІ­ЋЌЉАВЎГЏЉЌЉЌЃУѕѓљћџкй›џѕџ§џєбШЯЪШгЊvq{ЕгЩЬЭЧоўџџ§џѕѕѓѓџўџќџѓвЫЮЫоЃPUbQ XГмЩбШл§ўўџџ§§‚џўџўЙuЋЬЉsdunwaxЙШˆ…сџў‚џ§§€џўўџЈNЉ˜>=*@F1Ѓueсџў€џўў‚џўўџЋZЅЁG321JB.-&šƒgтџў‚џћћ€џўўџЊXЅЁH>9;g[#AЃziрџў€џўў‚џўўџЊVЅŸK=Q;08UgЁyjрџў‚џееџћџўџўЎ]ЋšQijfagn_[Ѓpрџ€ўџћћ‹‹џіџ§џєЮРж‘RhedicgeXЄеМо€ў<§џяюsgџљ§§џєбШйShgefeieWЅоУоў§ўјџЬЪp(чџјўџєаЧйSifeheheWЅлСо€ўpјџ•џј§џєаЧиŽRhecfdgdVЄмТо§џњ§ќ?kˆLфџљџѓбШй’VlihjhkhZІмУпќџѕџГ}ƒџіџђЭХзŒMc`_a_b_P кРл§їўчOˆГџѕўѓяѕсвзжззгчѕэљћњџv‚€ Зџє§Œџјјџ| Еџіїџџ§ќќћќўџќѕћџy €€wѓџњј§„џћѕљџиD4Тџўўџў-џџўџёŽ€7†бяјџўџѕьТk"8‰ЃЄЊЁЁp€lЖшїќ€џљђлO lи§џќїјаОщљїќџіКB€#Љ§њѓяќьИІЇ­н§єёєўюu€9ТџѓѓјјїђяЦГсѓєјјї№її” €€ 0Ыџьѓђ№№ђєљЪДы[љёђ№ёєёюџ• ЋєтююьяяъмвЫЩЯзуяяэь№чцэu ƒ|ѓлЩйхплжЫЦЩЪЪЩЧЧгнпфсЯЮэкL…„DЩчзжкнгбавгвггбадмпезиыЅ{}”чвЎ’™˜š™š€›š™€š˜›’ЃЪлр?utРкЪЈ” ™š™˜˜š—–—•—š˜˜š˜œ™ЇЬЫфr‹vAмЫФШЬХЌЉЋЋЌЉАВЎГЏЉЋЊЌЈДЫШЦТнБ†gнНРПНСЫЬЭЫШгЊvq{ЕгЩЭЫЭШННТНЭБЬК—ЬНООНПЬаЫЬоЃPUbQXГмЪЯЯЧОНОМХДжЦЂЦЛЛМЗЦГyЈЭЉsdunwaxИШ†ŒЫЛКМЛРДлХЁХКННЙЪЃRЇ™>=*@F1ЄskЫМЛОМПГмШ РКНМЗШІ^ЃЂG321JB.-&š€oЬЛКММНАлУšПМРОЙЩЄ\ЂЂG>9;g[#AЃxpЬНМ€ОЌйШšКОСРЛЫЄZЃ K=Q;08UgЁwoЫРНРСПЈжЊ}РПШУСЯЈaЊ›Qijfagn_ZЃ}vЭХУЦЧТЁЯRЧМаЬЬЭЩУд‘RhedicgeWЄгТЭЫЫЯЪУ–Тt/ЛМЭвЮЯЬЫзSigefeieWЄлШЮЯЮеФХ~ЅxПЦнддЭЩжSifeheheWЅйХбдзйОФQƒaКНмткЮШзQhedfdgdVЄкФдлхаН­t„'˜ЛХънЯЩз’VlihjhkhZІкЦдууКМv€€KЖГещЩШиŒLca`b`d`QЂмСеьСЙ(„mНБжьпугФЩ€ШЧШШФзутэФЕБ@€€ qСЎЯіѓ№€ѓ€ѕѓђѓёѕюНЕЕC kОБЙн№ёяэ€ыgэ№ёьбАЙЏ@€€?ЇНБЛарщю№эцлЩДГП‰ pЌКЗЖКММЛИЖЙЙžONƒœЅЊЉЊЂ–t8 €l8mk0zШєќъЏ_€жќџџџџџўџєКV |ьџўћј§џџўћљ§ўџдK-Чџљіћџџџџџџџџўљјўџ‘ DтџѕќџџўўўџџџўўўџџљіџГBсџѕџўўўџџџџџџџџўўўџ§ѕџБ(Чџѕџ§ўџџџџџџџџџџџџџўўџіџ‘˜џіџўўџџџџџџџџџџџџџџџўўћўј]S№џњџўџџџџџџџџџџџџџџџџџўџїџКЂџјџўџџџџџџџџџџџџџџџџџџўўћњџjDсџїџўџџџџџџџџџџџџџџџџџџџўџјџЌyџњ§џџџџџџџџџџџџџџџџџџџџџўџїџрC Їџїџўџџџџџџџџџџџџџџџџџџџџўџќћџi6гџљџўџџџџџџџџџџџџџџџџџџџџџџўњџxeџ§§џџџџџџџџџџџџџџџџџџџџџџџџўљџ|yџљўџџџџџџџџџџџџџџџџџџџџџџџџџљџџљџџџџџџџџџџџџџџџџџџџџџџџџџџљџpџќўџџџџџџџџџџџџџџџџџџџџџџџџџљџ~PэџћџўџџџџџџџџџџџџџџџџџџџџџџўљџzЛџїџўџџџџџџџџџџџџџџџџџџџџџџ§њџsџњџџџџџџџџџџџџџџџџџџџџџџўџљўѓV\љ§њџўџџџџџџџџџџџџџџџџџџџўџїџЦ($СџїџўџџџџџџџџџџџџџџџџџџўўўљџŒ}џљ§џџџџџџџџџџџџџџџџџџџўџљџуF#Тџїџўџџџџџџџџџџџџџџџџџўџїџ\ј§њџўџџџџџџџџџџџџџџџ§џѕџЦ'џјћџўўџџџџџџџџџџџўўџѕ§чH —џїљџџўўўџџџџўўўўџџїќѓZˆџћіќџџџџџџџџџџџњїџфMVтџќљїћ§§ў§§њіћџџЙ)‚цџўџџџџџџџџўЮYW з№ђєёъШ‰=it32@8џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџщџљџš :€prpnnmk mnnprp€:šџљЁџљџ—:€lp~”ЕЭкъїўџџўїъкЭЕ”~pl€:—џљЁџљџ” :lzЃЮ№џўќ‰ћ ќўџ№ЮЃzl:”џљЁџљџ‘ :€mwЅрќўћ†ќўўќћ„ќ ћўќрЅwm€:‘џљЁџљџ :m‡Хїџћ…ќћўјоЪаэўћ†ќ ћџїХ‡m:џљЁџљџ :€m‹жџ§ћњїƒѕ їјјљнШЯЬЮыќїї„ѕ їњћ§џж‹m€:џљЁџљџŒ;}Ь§љљјіѕѕіљћ€ќ ў§џѕйИАЯуџ§ў€ќћљі€ѕ іјљљ§Ь};ŒџљЁџљџŠ*;pАѓјєѕѕїјњ§ћћќћўђвШЬЫЯХšБзЪЫШвђўћќћћ§њїѕєјѓАp;ŠџљЁџљџ‰ ;|‡йћђєѕљћњƒљјњђЩ“–•–™—”–“Щђњјƒљ њљіѕєєђћй‡|;‰џљЁџљџˆ :zЅ№єёєіі†ѕєіюЭЏЊЋЌЈ™ЁЎЋЊЏЭюіє†ѕ іієђёє№Ѕz:ˆџљЁџљџ‡7ƒНіюёє€ѕєє…ѕіяпйлзбУšАвбнипяі†ѕ єєѕѕєё№яіНƒ7‡џљЁџљџ… ;}|ЬјьёѕŽє ѓіьжТšБЮоњѓŽє ѕђюьјЬ|};…џљЁџљџ„ <|ејыёєѓѓŽђ єъжТšБЮнјёŽђ ѓѓёэыје|<„џљЁџљџƒ ;|ƒеїщюё‘№ ђшеТšБЯмія№ ёюъъіеƒ|;ƒџљЁџљџƒ5Юѕшы“ю ячеТšБЯлѓэ‘ю эъщшѕЮ5ƒџљЁџљџ‚7‰Чѕцшъ€эŽы ьыщргҘАбзьъьы ьющцшцѕЧ‰7‚џљЁџљџ 9ЙђфцуцьŽъщреЬЩЫЬЬЯЮЫЬЪЪЯлхщъ ыцпфцфђЙ9џљЁџљџ€ ЂЮьфутнаЬШиъх„цхфсйЮЫ‘ЬЫйхх†цчсбЬЩжфсуфьЮЂ>џљЁџљџC‘ЛэрсрсмаЬЩжфр‚смгЬЪЫЫ“ЬЫЫЪЬгм…смаЬЩеупрсрэЛ‘CџљЁџљџ:ЖоспрппкЯЬЩгрпррмбЫЫЬЫЫбмройЯЬЩдсоррпсоЖ:џљЁџљџA›УшопнмниЮЬЪгмкиЯЪЃЬЪЯйлклзЯЬЪгнммнпошУ›AџљЁџљџ EŒЈфоммйгбаЭЬЫЮвЯЫЫЅЬЫЫЯббаЭЬЫЮвбдйммофЈŒE џљЁџљџ ?ŸЧфкидбЬЬЗЭЮЬЬвгдикфЧŸ? џљЁџљџEŒЈсидгдЮиЃЖ^bM”оЬвггдисЈŒEџљЁџљџAšПнагваЪоqЈšГœž•ГгЬЯавганПšAџљЁџљџ:ДввгбЯЮЪоoЄ—Г™›ВдЬЮЮЯбгввД:џљЁџљџƒI”ГмаЯЮЮЬШл˜{ЉГŸЁ˜ЕгЪЫЬЮЮЯамГ”IƒџљЁџљџƒCЉЦгЭЮЭЫЫЪЫƒЬЫЬЋЭЬЫ‚ЬЫЩЩЫЫЭЮЭгЦЉCƒџљЁџ љџƒ@ДбЮЭЬЪЩЩЧƒЦТж’NcЇ_cN’жТƒЦ ЧЩЩЪЬЭЮбД@ƒџљЁџ љџq'šБзЬЬЪШЧФТ„УСЪгаЇбагЪС„У ТФЧШЪЬЬзБš'qџљЁџ љџr#ЈНаЪЩУТФС…РПЦЭЬ ЫЫЬШУПОСХЪЬЭЦП…Р СФТУЩЪаНЈ#rџљЁџ љџrГЧЫШФТС‡РПЦЭŒЬЫЮЛj/2665*C›ЭЫЫ‹ЬЭЦП‡Р СТФШЫЧГrџљЁџљџrНЮШХСРРПРРПРРППРРНЦЭŠЬЫЫЮ}.D`heffgU-LАгЩŠЬЭХО€ПРППРП€Р ССХШЮНrџљЁџќџУvГвУшЇПНХЮ‰ЬЫЬЭn1`heƒfiH?ЁзЩ‰ЬЮХН‡П€РСУвГvУџќЁџќџТ|ЗЫ€ПРРНМННМНММНМКФЮ‰ЬШйƒ8ahe„fdlDUЙбЪˆЬЮФЛНМНММНМНМОРР€ПЫЗ|ТџќЁџ ќџНˆРФППОПРМ…Л МИУЯЬЫШЧЪЫЫЬЪвДTJme‡fg8~мЩЬ ЫЫЪЧШЫЬЯУИМ…ЛМОО€ПФРˆНџќЁџ ќџМŒФТПНОО€МЛЛМЛ МКФЭгžd^~ПЯЫ€ЬШоŽ@bg‡feoDbФЮЫЬЬЫЯП~^džгЭУЙМЛММ€Л ММЛМООНПТФŒМџќЁџ ќџЛŽХСОЛПОЛ†МНКСл’Ymg]ŸкЩЫЧЦСоw3ne‡fekPVЊЬХХЩЧчx1t]€ПбТКН†М ЛОПЛОСХŽЛџќЁџ ќџЛ‘ЧОНЛОПЛМЛЛ€МНМЛНЛСк“ZmiV˜йбЄ(Sje‡fejSmфсy2s`zИвТЙММЛЛМ ЛЛМПОЛНОЧ‘ЛџќЁџ ќџК“ЪНЛМПОЛММ…НЛСк“ZmiV˜йгŸ@6;345SkO.&1TgjL/544ЃГЙГЌКгздƒгдЯЫƒЬЩж ;ImefczaэХƒЬЫЯдƒгдзгКЌГЙГЃ>џљЁџљџC“ЅСДБЎЩпйклкзжжзаЪƒЬЩж ;ImefczaэХƒЬЪазжжзклкйпЩЎБДСЅ“CџљЁџљџ >ІЗЙГЌИзр€млклнгЪЭ‚ЬЩж ;ImefczaэХ‚ЬЭЪгнлкл€мрзИЌГЙЗІ> џљЁџљџ C“ЅСГВЋЦтнонсдЩЭ‚ЬЩж ;ImefczaэХ‚ЬЭЩдсн‚оуЦЋВГСЅ“C џљЁџљџ>ЅЖЙГЎГгфрссрпуеШЭ‚ЬЩж ;ImefczaэХ‚ЬЭШеупрссрфгГЎГЙЖЅ>џљЁџљџD’ŸОЕВЋПор€поуеШЭ‚ЬЩж ;ImefczaэХ‚ЬЭШеупроПЋВЕОŸ’DџљЁџљџ@œ­ОДВЋЧцтуутцжШЭ‚ЬЩж ;ImefczaэХ‚ЬЭШжхтцШЋВДО­œ@џљЁџљџD™НЗГЏЏгытфушзШЭ‚ЬЩж ;ImefczaэХ‚ЬЭШзшухфыгЏЏГЗН™DџљЁџљџB”ЂПЗГЌДищффщиШЭ‚ЬЩж ;ImefczaэХ‚ЬЭШищффщиДЌГЗПЂ”BџљЁџљџ€AšЌПДВЌИощуъиШЭ‚ЬЩж ;ImefczaэХ‚ЬЭШищущнИЌВДПЌšA€џљЁџљџ€D‘‘ЗНДВЋНтщькЧЭ‚ЬЩж ;ImefczaэХ‚ЬЭЧкьщтНЋВДНЗ‘‘D€џљЁџљџ D˜МЙДБЊМуюхƒрсрудЙНЧ‘ХФЫЎРып„р хюфМЊБДЙ̘DџљЁџљџ‚ D’œНИДБ­Ирёы‚ьŸъ‚ь ыёрИ­БДИНœ’D‚џљЁџљџƒC’НИДБ­Гкёьэььэьь‚э€ьƒэ€ь€эьэ€ь‚э ьёкГ­БДИН’CƒџљЁџљџ„ C“ŸНЙЕБЎ­аёƒюšэюээю ёа­ЎБЕЙНŸ“C„џљЁџљџ…C’žПЙДББЋНчђэяээ›юээяэђчНЋББДЙПž’C…џљЁџљџ†C”КМЕГВ­ЎЯяяюя€э•ю€эяюяяЯЎ­ВГЕМК”C†џљЁџљџ‡D“ŽДПЗДББ­Жй№яюяююээюээююяюя№йЖ­ББДЗПДŽ“D‡џљЁџљџˆD“†ЈОЙЖДБЏ­Зжю№юяююэ‡юэююяю№южЗ­ЏБДЖЙОЈ†“DˆџљЁџљџŠC’•ЙНЙЕВБЏ­БШчёяю€я‰ю€яюяёчШБ­ЏБВЕЙНЙ•’CŠџљЁџљџ‹C”…ІОМИДВБАЎ­ДЪрюђ‹яђюрЪД­ЎАБВДИМОІ…”C‹џљЁџљџ1C“Œ­ОМИЕГВБЏЎЌЏИФвмуы№ѓѓ№ыумвФИЏЌЎЏБВГЕИМО­Œ“CџљЁџљџŽ C”‘­НМКИД€ВААЏ­­ЌЌЋЊЊЋЌЌ­­ЏАА€В ДИКМН­‘”CŽџљЁџљџC”‹ЁИОЛКЗЕЕВББВВБАБВВББВЕЕЗКЛОИЁ‹”CџљЁџљџ’C•€…“ЅЗОММКЙИЖЖƒЕЖЖИЙКММОЗЅ“…€•C’џљЁџљџ• C•€…™ЈГМРН€МЛЛ€М НРМГЈ™…€•C•џљЁџљџ˜B”‚…ƒ†Œ”˜  ˜”Œ†ƒ…‚”B˜џљЁџљџB”‚…ƒ†…‚”Bџљџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџщџt8mk@QƒІРищіўўіщиРІƒQjИьџўџџџџџџџџџџџџџџўџьИjsпџќўџџџџџџџџџџџџџџџџџџџџўќџпs9ШџќўџџџџџџџџџџџџџџџџџџџџџџџџџџўќџШ9[уџ§џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ§џу[DоџќџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџќџоD!НџћџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџћџН!mјџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџјmЕџњџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџњџЕBоџ§џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ§џоB^њџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџњ^џњџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџњџƒџљџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџљџƒџљџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџљџwџњџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџњџw\їџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџї\>кџќџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџќџк>ЙџћџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџћџЙ†џљџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџљџ†XєџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџєX!НџћџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџћџН!~џљџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџљџ~;зџќџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџќџз;‡џљџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџљџ‡Eрџ§џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ§џрEџљџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџљџ*ЦџќџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџќџЦ*tџћџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџћџtŸџњџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџњџŸIфџ§џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ§џфIxџњџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџњџxџњџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџњџ<иџќџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџќџи<^њџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџњ^џљџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџљџšџњџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџњџšЗџћџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџћџЗ=йџќџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџќџй=Nъџ§џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ§џъN^њџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџњ^kџ§ўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџў§џkuџћџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџћџu|џњџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџњџ|џљџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџљџ~џљџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџљџ~yџњџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџњџypџќўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўќџpeџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџeWђџ§џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ§џђWEсџ§џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ§џсE3ЮџќџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџќџЮ3 ЈџњџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџњџЈ ŒџљџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџљџŒqџќўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўќџqMщџ§џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ§џщMЕџћџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџћџЕ‰џљџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџљџ‰^њџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџњ^$РџћџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџћџР$†џљџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџљџ†Rюџ§џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ§џюRŸџњџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџњџŸnџ§ўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџў§џnЕџћџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџћџЕpџќўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўќџpžџњџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџњџžRэџ§џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ§џэR†џљџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџљџ†#ПџћџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџћџП#Tяџ§џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ§џяT~џљџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџљџ~џљџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџљџЄџњџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџњџЄ/ЫџќџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџќџЫ/5бџќџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџќџб54аџќџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџќџа4ЕџњџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџњџЕžџљџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџљџž„џћџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџћџ„AнџќџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџќџнAšџћџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџћџš,ШџћџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџћџШ,WуџќџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџќџуWOзџќџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџќџзO,ЅёџўџџџџџџџџџџџџџџџџџџџџџџџџўџёЅ,EЃыџ§ўџџџџџџџџџџџџџџџџў§џыЃEkЌуџўџџџџўўџџџџўџуЌk:Sft||tfS:ic08;‘ jP ‡ ftypjp2 jp2 Ojp2hihdrcolr"cdefjp2cџOџQ2џR џ\ PXX`XX`XX`XXXPPXџdKakadu-v5.2.1џ :Єџ“ЯРьJ+ёр“§Ќ†7ѓDІ‘п:•Й?"иє.4 _/`“Ёѕ…М‹˜*§Ў*ПяЉJfњг9œЧк.TъДi7Х%ё`ЯYУ$Њ^ъ>ŸЊкŒжЂЧк2JЬпVЫфЯЌ–29OD.С­•н!Шv‡ЯРЬOўБПMе~j`\§П6 52нЯŒpдGwйIсНђДКжg.щv0НД џPђŒ5Уэ‡к9к8#ћЧs#т‰&p  ƒТУpŸk+t>лч8Zџ.RŽ­"­єђрCzv"ЕKЂyмЬƒЋF­iT"Ї‡ЫЇАS/іBLщЙI­Чš(ш<ЮЩЈСѕ РљЪРњ…€FIG:ешV§НVlю‡яV™>kP$zр]ŒˆS|мХт/ьБ,LRхkP“˜?9Г#,‹%zбЮФyн<м†Сѕ Сѕ @њ…@FHњћмVNќ~!№t5ЪЙ qЋ§z9)љ,I„ЗО‡L vO9Aе;ќŒ,)6fq'рx ЉNЋbIRm„І 8Чр=€єhаExLoЬФ{x О5$eяяœэ •,IhЮдd(Aь[[љЉХу‰HmС§L8зY&€‹м9жаРы”o8ІЮ#њъ‘%№ђз-&U3хЏ;FqђЯЭ ~hаќРI†ДAвˆиR'ІKH}эgo_ЮШŒq[ёkю‡ЧзМЫXЦiЭBJзМЫ$•;MрmWЙr›Ќ$п%OWЏ–Ню§n­мхп˜.EDю…N?9эˆтCъаqˆГАB CC™ИьОŸdBCзEј+бa/OЫЯ‰ієЪJLbЎc єЪњ“њыЮ’klœ™ŸцБIГpЬ]@бP9•яХzьюЖW ‚вуC†AМNБiHѕЌQf@оrо~soСѕCэ4ƒэ0кo›[€-.eкь”t ЈЄђ vSКMлђЗ™рЂ|іnmWЗЕГX€љлфј)йˆШиСz|‚јŒŠУє (ЗацY€о  јOT< XfфЄEЋКИЊШї™ЩЌЪ7^4‘|ЂmBz™КЧрyь?а‘ЬŒЌљ" 5f‚/9~:‰LfGˆР"ХиХИЈvэЖѓRuэч9иbУzsзcœЃ(d>‹F+> ƒЁht—TpЄџ2XpQьЎЃd `†АШѕWxФŠе\гž.л„BV$юэ\RPЯ lSА‹9Џzc єЪљa(…Яв‚#ђKтT’ќƒУšЌЄrƒмЩ$WCŒ"Оо)Z]o›ЕƒщЌGќ|PЪpk@тЧсQЧсUC№ЈРЦш.жNXЦKЉ&Жђ/ƒВ"–ЁЎю›kдхя†4™pmˆ~3Пюъ^?ђŽЧбšpZњШО1. 1 єhъГќˆѕ*€с1зyєЉ)ё*Ою1SyА€tT™rсJVЎШ•ђc1]Іш&rВƒr;LтшЉUгv<цЅ)xйЗГ?'rАCзCƒЅђŒв’/њвшu”Is 9#c­№НИБL‰ЯўяџЭыџ Аph‘0рў\ЩЬм0Мsс6SђR™јNќ ˜хдњœSK`0š‘MAи}– ТkЯЗХъЕлЖtЂЩАЪIDНЄbyї;–rkЁў#o*Ъ<д”ИЭЊэЎлдRтМ™<йиœџŽO"mIŽž+ѓЪqГЛєяjнЩуЕ­єQ:ЇсВ0s‘eИЕ\<9ЮъЉ2BЌUеЦm‚7<ЛeŸЊчAТчЅEў’0ћ’c Џ›ОСFЫс…ЪОШ.—>BˆМŒч№Ÿь/ЗcпS4;C]ЊР”N6ќЕXпŸщ3ЅВ‹lNz•pM›•у:˜џ0ep˜в§‡ъ &b“™ЁuДЏЬА№=:цSTw9йЭня•OEниF €^Љa%ЈО:ƒЅˆS€хЈ‡[Э+dbŽбнЯТ6ьqэЃСѕ7УэnƒэoЦщхgўER-В:}MIюhљrЮЏ^йLЖJ­ZKЋјЌю:ЭnЅ;i ФеŒняE5 ўwkЊœmkеѓšШ†m‹У3ђUБв]™‘~ї$““ђ4Ўvз3+# Щ–ОШ*њыGђќікбe6GЯЋ­h9/m•yњ ПцЛДИ=… ї ŠєќfNXўŽ6 Ж,€9 ЭИka™wTŽt§A\жQgEp”ЄуJ/юSнЋ9т ГЛvнг2і€УчЕо+`u'я +‚М‹KщRвRYr?mЏЃз 'щџV/jЌ)%яќ@!!ЯСђЯ+!&( fŠL#•ѓФ9\DъyЕЋCџјy/чА*$}E—&ЉUfмGжX2\џQŸ?ГЏR~зxIі[Л>|SФ –ЦУэЁЁіаP}ДЩ`КШf}ХЫЇ˜bН+‘К™ЗЮY@s`kѓдЙZЭžKzЏШЛЖiаU]”уЩК_ Gцђ~žC–?оѕі‰Џ\мž0…щ`ЅПAТІ6Б`‡ЊMЪ;{рhд‹ѕцuUЉP 6№я5іc…M;‡кЛЁџ()ДяЯ1ФЮОШ№c:~ ~PАœз;Оф–Z_юЮ{С‹™н§:ДІх+W|кšu+УТiљн$›Ћ6Я1[ pZrS{u€hw­КQ"мЅи$§О<Š@ГЁКнwІŠЏBc#§Е–Zˆуrmb•5Žв€ЪЁ‚б‡Ь“мм3œˆМ‹Kу ФЮљ1$ЧqўФфЂBЗГK СЪх>LuЦЭ“J{в<,*ІЬŽќуsс:dйЮM0:ЄbNDа QЩэ”;xрMпеѓŽРOыЌ–g&—В*[Ъ‡ŽЄќсп=­ќ?еRb‡&‹œЕсХЅdR!LЙмыљЧрзƒl?€Цш/z,pO#єз ЉŠЕQ;" ƒ… Жз*‘3єСU xg6m@ѕЩнНrŽƒ‹0мвŠ“KН“с˜рх|њЇ ЩЅЃiЙvu^@‹*і „КЫs,й'‹йЩЂH6D-Ыф’KЏ•(ыНИБCNЯ^yюMлЇ’–šХKpДі8Ў?[Нц=g*УјЕЖЊhoM„š\_Д.[кХ…ˆ}—Ij1œuVЏ§й:ЩšэœіоHќЦлГ—џ\[k ЁњњK2“V!Т9Xх )ˆb§п‘ВПЛeŸЊч6Дз$јŠj“їпмZNњ ќ№ж _TиBVМSгПb4^‚/юЌl—а?ёЯє/є~vN$RJче…ЊƒЏЃТEi!yЋkьъ~Ѕіaг§hКIч”ЇnэjuГ ЋЧсДгѓкHќ5„ъ…оDŠ3ј?seф:пUъЄuГь?kЫ RШ-B`ъФЌСN…AЮЊЁвbоIмкѓУ&AўUїёГт\>Ѓn‘С$іq"xE Љњ*пЦИ™Ё#Л•В_+Ё]JјіД6]ƒлиЛч :Go‡ –;кiIšMž,: 2,5˜яS№’їЕТчАиэ‰и]ПNRЎйП‰e§к8Jцl#™смcХєЕ$џр@Г7ЇЕoЌwЄКgЪќ!tФDj§Ќ’P№ЁеGœ—Ю– ˆcp ДЙуЉ#ь˜й  ДBТg7ЎЇc‰ъ…7d—ѕTлЗl{i(уl 4&ЦdБA šя ПX AКЯZek˜Ћ^Ё‘ЋyЬАЦьfWE„њР”VЇі)ЏЏ—ЬнРЌAТЃ иеf['ЯЁWžL™tZ*…†pyЙ† >aГеxMuœ,mЭїюFФ}Bc§В6ЧYŽˆZ•MŠ ”5Yysмаё”WyZЧзЏ*Ž{[м€кѓќвЮбН…љbGў8жшоuХ‡8#3—’U•hЅДŠудƒgтV;Ьоƒ<_ќЈ@я!J3гЃƒ ˆЦТ‰QP: OћHs@њeКžшRце0WЏJв”VA:M&‹šбрСŸі7ЮЕB`bšТс{—X/Оє4›&ˆ&ѕНgО‚xђ(†JIбрљ˜~Хжл}%бAѓI]БНЭG*;Ќn_{А”КЋI0žŽ™§Ы›вСC{ иЯзLJХl[HЇЌ!1b ДM"ТЏ3ko мz2ћ$JrІѓЏzjžI„‚uh;ВŸ/і—АNф‘/WЗБдjG{ЅПDCŸ,РжOЙCЌ[ђ7]‰:@4ќЌгЅх‹Јэk &kЎъ ћ ЂпрW,i№ѓpLea›0N'sВб2ЖюМ:уеFŠO=WвЦРA'вІвL§ Й'ћј^КkюDdђ…gFŒЏ#ЕlXYБьт\Wљd2–Вѓе”˜ЮЎЛ9ЈЈйыTЫBЮRэЌh№›Mу1™|Г@ќП†o№m‚5v•sѓ ›AyŽП^˜t‡wCН$qяШЌ5H‡.a=ї/л=œЈ“hЮZП њюYиъ$t™.Хь GћЃkЙaеeє’С,йЮ$дф{ ЇѓŸ/ЋЭsэb™п„ЈQ~‡VїШ•ЧLxDмХmСљUF bUhТg Кќ бпЙрн7“ŽФЪёW•UЃДёmАšС;Щ+Ђфёm1˜1ЌІ˜э ЉєФKЃІ­ЖXd 8%йљ+ цˆ›мРНрTахmЉRЦЯ–J6ћ&іцЭ[ББ#h‹Дn$зЌЭ‡TЌбL ЬQkˆT*#WЬkы ' жсv^ЊФбъMїwЖWЈAБ`Ь\C's1:OkYRа‰™иЂ^і /єХЩ"АфS[СР~,cЭ6KкCAS {*ПліžxН†ќL‹юіЩ—™жЈћюrў`G•DТЂГ_jУэбИ}К3†‚эeŠБŸYXтПŠ Џ‘я‡)ІрСЈS"VЈЯхGŒl}sПEj•Юw/T'jeбжПЭЖoЇZ:Slък *kFOѓўснFХhїzЃмšrў4&њдtЩŸ“@хѓ1K]7uЉб‚8ђЖsІљ_Тжї2!џ0uIэџ=ъ'ќ GK tфВ­й "WєНѕeЏ&і)g„)>ч/ЦЭНtжљ ЩPЬщ‹%@№­;Ў^ь9ƒ"?зЖq­Бa§)\œж јytрЛkу9еа€иsљшt<ёёфŒA?9fl~!Т'еЈЫ{Е"' ,ўх*UИ ќіЅZЌihЕ§зaЬуэ0IdхPѕœЃщ‚C™ы9ЊЯДШМš~ЗNИЦ^"LЃѓЌ+ŠŽ@v5EђtЖQВ:eWЕГM]„„б є˜dэ{rЭ‡9ы`ЫqШЁ еиN~ЁМњL`|§э8ф<<"НЏ 3ІO, ѕѕїьX5г\uЙLqВгБМђРЬ0ЯxЭF<ŠuУђђФ!уЏбњЅsњyC‘rMЬЮљ?tе"Эъ,ŒТ9чr№XgьxƒзЎ†єъН™ЃЗйЇя—о›оЦ•Ет0ќњGщ˜№ПЅГс И•рыХАзЊюCъ}LJšwвZ^ГЄщ}ё%д8*73A‘0Зі•YMlЊ ?Jщ= ™оЌ|Y0rХ ЛыОЧПrкЭDЈЯпЮKъ2veТNG/X–nD‰C"™\‘‰hj.^3h$25aК6‚DОc“ЇCЬгЧ yeЊе^šƒЪц}†ИRЩл9NЌ флŠЃ~јё 7Ь'гH(˜5Я™}uб~ѓЎЖ,Х—ю§| ?WaТVBG&;Ÿ}œ.ё …ЫˆЪьс/Ќ7™оxъчоЯыn,$кz‡АЛ’O3Т`ш(Рu3[В*J ^ˆ)’‡eЩЮЯšЖ„ш&%ё4SШ, X>›X2pЯ;?.­П\"дъЉмиљ'‡ 7’№шГХYі]™Тb­шЖ"ШАnЇsРLњБ”ˆфБ‹N@НєЯoиЧсЊSѓдИќ4мёЖЗДЃрІiъ#qh#x/cУъU^ŒљЊg‚>й…$є.…џpЦUјМ{МО‹лў'g鸘м‹#г73ѕЋЂПJг[@[:m|EДіЏnM TgœќŒ/$NSѓяЂ_PєуXZ{~S&Ž'Pџ-ГВxч]=ёЊ шѓгSJЁ …$ЖˆџCЃЋРGA,uН{Е­WЖнš,:ѕУš?k9E—шhИКН^рyvЋрэ­’U=]ЎёLVтu‘ё2=C@эЮЪІ.‘U?Y'„iлы ЏйŠvМдJHNŸ™{ )СЕЗчЯD%ƒЛЅž$ЫМLza| XгўеЃ9}XЬ_qчбО§‹нДжр~OИпЮ@MчFЬЈ†Њwz}‘(LikГЯmЦъж WƒnГ­ћg"EЈ‡уYСЂЄзЇb6аg=эL<? 0ŸФРz/€5Ф~8bЄoџ]ы=.L эNќнhFюvYьњЉ§тB3…PБ| zеJRрkŠтѓ‡KЕzэШЫ'ШмЪ(…lr2‰ъ2`ТЉ”ѓЧkмt4бwЌл‚uёœпђ­Мѕ/Cž эKэ\„Ўо59ћмNДЇкЋмРрўУˆ%ЩSьI{sm-т6qg!Шум—*;ЫЊ•œ ŸЮ•њл>Тщ,ŽщWБEт8Ÿˆл1їуŸш7УСмЊ|хjŽSPoнЙв/рЧЯПасsШвй”Sz­gмб:П†&їдЮПЙ"›˜,ќ!§ѕјy&ШТ‡‘ЇцšЦ\ъ…nfРЏЬ| ЅПК"ŸxиТšv\w=Ўю ] РФ№Єо3qЄœтй™e„V."а,х)MЫЁўжшTў@ї7бSьY˜z_эж§uЧ;A”‡ Pp§œ(;y#8№q+Т‘фхШџOЇуіш_эЛПnˆўлл?†‰ ўw№ЕА§ЖзэДmUћk@є6џ„|l0ЌА]Ъу§’LŽs]шIй}2лW–7Щ%zкeЧШШLƒАУ“|›spЋ™sЂDqY.§еIFoчКЄ*+ЂUoG•6Б\Я­еJ8Ь_ю§jЮFюM„p=єЊО~йP*В;Z–z7_§Щ—W;ИМдznO) чдMаœЇŸђEnAїЪЫуш,žЗщЋт!qЉъ@SзwU0&№ЦmљfоээVЉCЏїQrфЯ OЗуaRBФO4,&.( )йˆ—*jzšXч‡EDЩ’˜Ф`ЉЖџIЉЉ:Ў’ЪxbDьи’ ЯŽiЬ@з9м‰Я1Їј8я~0А–­мј}Щ’ їw 4й`—†-)Ёї0єћXО{V$юв6њK.WШSдћQКRMчъїЊѓРїъЁлgyу сLbCлЙe.њЊ ‡ВЭ€?Ў/№;eБKƒWнЭwиПпцБK„жDж@Јџ…j/SьЧіЬ/yюoњМљЪlœ)фўщIiQ*гїђј Ц~В 3дН„Uя˜ъ†НlЃАmХP‹”ЂЯЏЂ4­wТWЯЫЫUдhжŽ†Šћ 1`pА tˆњ’VПСžЙ?ЉkКъаОŽV@ЩUЦє_mШž-С|—NИйМЭDП8ћeуЊ`ЄWLљNЭu№Эо№ќ ЧСр†ђq8”RУKФpŒ—0wo{шМшˆыъд PўdOИGнoГEю†IqƒТп Ёј№йqфj ‚–g0IїŽ.HѕщГЖ@Ъ™&‰йі‚кжфТЬ6ј~ЏCs/ЕЅ0сЛЌe~žйTљэA‚ ›“o Ћdлi˜JЅa€D›’vЩ7ѓЪ?„В‡дH‚v4џ. ТГQ ^ ЕИŠЅw<ю­›њŠэoл”нO„м,уЄ<И?рVЄђя™9žІшŠuы] Ї?#тaѕEГ“Ў"Ж3­Ž†€Ъen^ршxъПН]œќžѕрџ^у•к{с}пвMЩХ§#Jрœ,н yј•Х—g/тљGЧ=хЮ!ш=}>С` РЇЬТЪž&zэяvІЎЬ_жLs*Ф‡•kц2’cЂ:tЮшэ1DЅa‡ЗVќрNД|ЁVЫЛ‘ФАљпЙpЉу О"ЮаЫоЄ&@ЙИ‡ц—м“XxБU|K,/:чgѕЇ„'[Uœ2hжuѕ11UAzŒ= ягSъ‰—БЊ!ЛХFFьк ДГgЊ1 EЇQ ж"Є’L>EЃі/›šѓ.§зyэŽЉЊy Йэ6$UІ€A-/•Д_’Ьщ" xww5ЌHЉн4!’ jgі”ŽЯзю%ч™Бй™СЄ-@fкJсBžЦwN„Ј“џ‹ёhпЭіJ6 qХ аŸЈk^п+?`вg3жщjZЕ§•Џж=›шЅВzІQ Щоњ#Lcн[Т`K‚фяЙАЖшг‚C;\: >SyJvа@ДŽЬкByщю§žвѕ@Ъ<Уё+U2юЅуЛA7Ђ X j‡8…ЋЌЦšѓ/˜Э'8Чц=&ЃˆКУФ$$ПАЅH†њДˆј“AD‘#mЪёзЩКˆ?/"OGКvD@ц#_4Щ&я]mЛœ9­­ёaоMШˆрр~6  Šџc@LсЈ>Њ…•Ью2Ќf8AA>Gz:В\ B)НHж’ЖžчЮЕьлNЊДіq‹Ћ›Mд3LQ4ѕ†ЙыЦDшы­CКкЦч­Y1aСЊЪNЮЕ!Щ–‡l/­І в„kƒžuёАѕљ…љмПoщˆ] ЉŸіn”ŸКЋ‘зqt$ŸfœЏИЉ‰ŽАŸ!/Š&!шA4y~ŽŒ‘dJЛLтйOћQXF\+uЁmGциОГŠ~!ќŸNL;зFЯ$.О‘юƒx ]Ќе8BР:fˆBˆЫхК‘иM@уш€Iіž-а41Ў€офПЛЉ#уў‘ыЭ‚АKњw Ш}"7вƒŠвe#Ќ/$ Њi9№?Уїљ;$З šЌzBšНГ7тб‹у™І4Hў[)šбщВљ џ|§Њ;рŠLъЌјv{ЖіяL‡rЭн‚`уБX >›іW2Б8k…A7мЃ˜ЉзzПЦхŸCMЩМ“ю”IЮˆз_1“Вхцед Ь~,о%їjЂЈk—Е"XmpІ љч00џћe †мjќ”hъhXJУˆlЭтIFкЧšШ7MUэц~Х/оlыs~‚J№Œ 3Ч ,8ћgihз_NdДŒ[/ч YЦW ь_-kЈЧЄKSвЋwJ Жqeb~™№* œQ]І[ ŠЮч†/szЯ…‡i-JCєVђщ}ЯНзcЇ|y>O 1xфZ4BЭљ№'g0)>? :ъІ 0^‹u  ЖЕЋU}qw‚‚ рЯ„б Ф=6 ђяFcxu КyGA:ѓКрA<•ѕ=UM3cЫfž@б[“KХ џ@Бђv€3ЇУйАЗЈFJ(œЏ14@Дl%њHцЗ7Б‡уДЁа–ŽКaЄв_Ё‡km Дmn›Њ&YQˆZA€C$П]Т“Й ЋUЂIR–вHqуіж—еXпUq}Uf?miћl/лX~клъЉ?UGњЉЏеMј€|эЯ Q:`YЙ†XHР+4ч \{Ћf^wХGЎнj•P/CeWйЩ1\[ )W}žСж!$УЖC\‚пlжКŽ~ёZN/b^ГQзФ7Aїж+ќ“ ь:UП‰рЛокЗŒAШ=C/ƒћ5– GО|%њр)0р хДxз@ыM˜_ияцŽџ+3“эё ид#iOKнŽy_ˆ‡Ѓу‹1jЕZ*щвЇЕГ‹у”Ќєл ЯЩЎЕ3Ж5$FYљp > ѕJБ—#&ћѓДj&{ю=bуgќ7ЬГ‚93C­oЖd_AЎœVCйт0v–d:I;Ÿљ+Ћю`МQ”Їbc)Ўa<оSІ- Œ7%ž>ni[^Щu^­є‚s ЩxХ”…_U втЊЯ Š++Р]ˆЮKоеЖž[ЗТСp˜f%О 8ž'UўLŽWы‚сƒ§Х”Й:H5– ЩЕIЏe~Ж№5<оЎ“{IŸEЈР…FІwї˜v§†е8Љx9Щ~P 2†`‰ †гљЊœхЧББЬќжИœ˜•ы$9jOНMЌ ЗR=;зХцП=•<K{tRQёЯи-FšI †#dл…€"`OэЛjd[-Ѓ&;џSђйЮЏf2"Ю1›MМKݘ—М= с^ЃD7і 9деw†ѓ9еК6С“S;ЉIRny0урньЕлnlgА#э(!\UAП†1ДЩВw01з | >uЭЯ&žhЂ‡Бч' в3:пˆ Ќ9 ‚Лф kRщ/˜жVLЙ!"ЋШЛк669…ьп hе1­§ћТЊЙНc,‚ХібЏ4ЙT,Љ|іР(6дU|ЭzxCˆ љЖиЖ”ŽБL bd>Кs<6ї/РUV*ЌеЦ?)JдИŸoу/є{*ЩюСќпСш \ЂЁ+;Wzѓњ]БЧЄсЄЇтєФ54p]сˆ&sэъjЗхя„ёrќ№ejћњ‚ИŸ3гœьˆ_-Ицd”>gNћсCў­ЖЪЉœнїЃЛ€{MХAЈttАаXrФUGmгрЦc†ѓLZ˜пѕБ мš­‰є$'ЉŸ<П™JўЉ4 qє-ъъгёJРЅл,y№K([BO+FбяОЃŠŽв’ќќДѓyОпŸ(œ.ќ]O…ЮCфN]ъљ0Л<сЖЃ…ЙАЊшDœXЛK Лљ@r-ШUђ‹Gн Х lЮ!ŠІt(TучGРчх9—о=]ЁІ2нВ)q^М№>OxЧ;хАжzѕШь^…]Ю|}yrh3ѓАšz>уХMmpU4’Т„аkОЁг-еoЩ"ЃNHтщЫ0cпи':9‹ “Ь"fљn3ЙЈЩœМЫТ?‡HMrЗ8иœэ„чІГKcРЧЂ”eёыХXEМЌQ№ЮХщ J•Ќ.љЋo+Aќфъ4‡ ЪџŸ™[FlБћoбЊkЉЁ…Ѓ:ђ‚т†<‰˜IšяШЇЙ#? 6YR“Bh]‹ЋщџCИBh?ђЬLљIЌ]5ЕZOЊ6њ WГmшŠ(C7k/w˜zЬMјщXѕMi>ž‹фѕЊАjAyr8pkв„1І›nƒ<­П ]їєf7С Ф‹бIPоjG‰ L-чО“Зк/ос4іYЬ4ŸShV•ъдахЫЎ4iУщ3Z_;o Ї1^/ˆЧ’^‹ЫЧcŽJ-№™­= С'эЦˆУ>Хe?sGДL12щ‹‚W]OYœћd6(yE‚ъiђГоzЁрщ;h ŒbЅГJйŒќдШЙj*GfOzБєP:fСк= є=R+О\}LВв7ˆWfЄf'ъжfљУЊ§ы[хˆѕщjK€T е_…vAƒяsFСHіvьК&ђП†w=@ЈmЪЇХ`ˆЛ\ыўяїР{9ЦНBƒРѓv1С№ц€‰ЊmQ?ѓTЌ€ПњЮК№№їL}э+d5Сиэ4zbЇ-€‡yN1vA#aGHOz:LьN”ЊычƒЧЇKќОг Й}eцѓ4ееO<ЖFi’kSTТ[^ЄsЛQ09е)ѓ˜X:JŽ]Щ15лџM Ј-ЗfЖ­œ“†іЦ­,ЈЅы|ˆNXШJЙ2ПюAБDbзokёЇщгQ•ЩAШяTъ­qnї­?у-Ш=”ПUCƒЅњ8|qЈH[bw2‚žБ‹{%ЮЛщa ŠЧяž•БN{IQЉњSы?огТЦLXnРXЛeмРцЌ‰п$З HТžC+в•'нZЮˆšЅsvъn9"ци„ ыЅX’Ѓв‘&07(4ЭHЖО}„FYсњФ)ѓ‡ ДљіGйreщiНVЫXЪІ  Їжфš›*XЄЋOe@uf‚k%‰=K-“ч-1Я”3kЌ9єbФ|$Ч ЁрK'‰^ЋЪ€Еn!В”Иж7тЖв„)oЗUљЃ a?jAюыЇjЗё.тCЗЉ—‘рs›3>ћкA иўТvрКdRєеЊ‘ƒд%ЌЂУšёђ'‰9 Ž'(mрPRІЈ$.ŸСпМЪШўЋФrПD=3.]л,Х(‚ЧМ іfC;ˆЪw8.M.;U{tР6-IrBJђв+ FЏЅцЈе‰EdŽЄ!‚ьA;тВ5GXПЗЃР™Bе ‡ЇU@§МхійsъВ…Чќ-|Олћm?сc _ъЌџ*И§Uoъ­@ј€zДБат\/d§Эк)П8GM˜^mљ‹p}3ќDM2y8gЖтV†0‚™WяФэŸЉ4rЇjЅgdUѓџ(˜Г%…§u !˜ CbkЙ4e‘Щ…жФ№/ЕŒ†ј‹ў)O}zљtЗ xЎ™I'цм™жђŒS[ЈBXНтє%dJ…єзЋœ”“*Š<_О*јМ1—І%3ЈЦЈ"b,HТ0)јюЖuOLpИ%ОhМцърг ђЌхйoк Бел VЧђGиAї›,:Сам§ИЮњ|<у‰ ЈM{ЃЧ9“]Y—›ЩlEџ2ІCj§uЁ–мž5Єю" ЦLШ>ыџvсXˆї  zЃШŠЛ4pюРДБkc‰e УEўХ`кОeWœеб/Ф# ‰ž§”Œ^=mJDБю„Ы. ‚ ц6vюmЌb%Эg‹+n9а\е"ЃБ$'ДояСО–ЕтЁўшьнїЃџ0—ЉШ;dѓщ•Ћo™б…;Ž ћІ F@pПЈ †4`‡ŽžГа|дv%7пц†QбRNЋ0Ѕ<№ЙЌоцL УgŸЧќ>мЃi;ИиGФsи%–d?(њаМnkОшАnЯР•ѕJRMwфПEўŽeWОP\TЛѓэSd>^>КKJЌЙlф!UўˆŸHeєw„Зв6ƒaЅщМnх@Хцќ`Zз&~јGtъq7/‡§}…жŒzbЪѓг~9оЄЄ`§Рr5З~9щОейž^NX(ЎќTї/ѓyО0В vЇжTg#?,p“kWЬžžw„иЉј№‘/РкlMBjАŸ9k`‹J€R_Н–јАиvB.U`žŸvV\bкэРvЛбˆƒуЦI? л. д@AЁиgg šџаНyА6—Z@1ƒ˜нйж(NЁ}ЉЃOZѓЦкЫб%ћzЮNфЌ„–RtЂ’vJ$zЋн`5FїИёUBВTёщZЙк"nЅАУЮˆРЏчB$…А3nгЪ?оРgЋwлЖЉТ(O?lЫ lЃў_fqЊb „Y“цЯЊђ6Ўр4єБў“х(ŒBё:7ЦЃ‘ѕaЎt;‹[ž6ѕ ЃРМ&•Йоt2<8д‹œрКѓ—‚1љ3№AхЉR€и]пЪ;!ЧUЃq5Ю<ё6PЇвKЕЗfѓ$8лvІЎlЩ%ЅМ~цщс ЕзAпАžXЬŒž чŠЭ…™БСaaSuŽїgAuНg4л‡aљŸAЌ• У!3M‘ё #’З˜ёW]%VФl•gk'Јhu|ъ›пў:Ÿ…f$z5ЊЅКGGЗg/šH^Q\Шo‰ЁH(‘6—EЁЁЬAыhƒѕрС{&й€Fs†ю8oив3Zi§ў›ћvlWу:QІl^І !ф Љ$Ж|1pЄЦZмE>nЋя\ЩоюЊDNFЙб?МЬѕŠYw*jФЄ‚іpUyFHIлЌD2ˆ˜ѕщjK‚zћŒЊЕWiџ%{ї[žЅЮєђbвZЫH$ИЏrЗDrLЩ4зђ—e”ЈЩfd’“c*зiš rЕJ9ƒс#@DЋFŒлѓжИвЂфZUы`#wѓЭMBэcx{чwa)€8 wexьЃІБЧQъLqИyо6I2Xџ?Ё№~gќИ&ЌкjгPaRЕ$УZвœiаyЂЗ+ЗœЌЫ:ДVћЊщКT ѓ˜X:JƒЧrЁЮ<’.аО-bнFoxж8|bѕМщ_ЖЬf—o2~žЫ№&&пХЮ`ЫѓБТЭђд-Y“Q…2Ўotп їЊ`@B\з"nЃкЦу›-иLѕ0sswRUЦЧ j ešŽЦ`УN|­хТ]ZDм+Bн -цVЂNŸАаљW-ътг >НœєŽёЫ‘šЬИЕпIЙж“9K#Pўнb_]Љ›№{*Пi8sциD)YЌ1ѓ*Їt ŒцIащGtEЩ’8ЃwњTж(І)гШЄ”Fkф~‰Eш*O`'О5ДVжIкѓ7ЕOђЛ ФŒЯ]НI€Т‚sТ ‘-A$OЖч„Ћb‹2#!TWM9™ЮЃИїыЪ#Nыћ5гi\9ЋЗr_ИИR$ŸŽ•јyКe eFŠулmу4Л ЏЊ” љ\9ЏuZЪгбE#и*q’/ ;Њд[*U—rЎ !WЃEкї—эŠўyцjtЩ\у8ЈВыbсŽ?ЃIу›Ж*k‰.;#,xIЬЦFўЋЎЧoˆ№ФгŠ Ÿ.\щ(9Ќљ0RoКXкYцЧ„’vДВNRъ)џL OаkхЉЁ‚C'­+ЗрјoД^œѕљП}:Э9ОЛЏšэGыђŽ]УBcФЦ^ъ“Є;šU˜~‚дFƒ€ Ч0bй:KуіГўж_кећZsј/џ іЌ_jцЕsіЎўж?кМіщУл‚ЄЁ†№ƒ 3CEЖёв<t”1ЌbЊiЄШ"ПŸЃф&œn U~Ngcб?@NвЏkб;qьчEŽ0R;ZтЩNщc}Д0њ$Or#\ЁЏ­G %4ў4џxHnA™k\мЉї8cЕ@#kЦ3ІЪџA%‹зu†ц ‡‘n(иб§$(wrЃ"$ Ю7™Rfёц]†%1аЕ~8tђn  Хыа­щK–ЌAE"‰‰|rМБ™,6јђЬ MпфŠУIС™c*Ј•№е;вП4 йџ4>хА‘рэ€…oМЂьCсЇГГзеhtDXkЦЖVt\sѓ%ЂeˆіmшфGџ@Ѕ %цwfEБ“Vt9ђьž‘b§p”>’бŸП8ёTŽžqв§ь\2RRšРє0ЊvЄCѓ˜ђŽuГVkЇXš@ пSФGЌhzуca“h -šщi|ї^“€c:ZЬљyьYNќJоЅЧѕzvкЉVѕ>Љ}cЅЄф[Ÿ›ЬћOdЬЇ“і‘ˆуп–хBє{”Ÿ`‘–8ЇWFRКn:ЇЂ_pб*qy~0e v %mщОZ{а{>Ќ‘\Їз €B2nЂ5nTЩ€ublC|ЅDfФ7цпоˆjgЂкX%\Gјh.Ÿ?oК ѓyb ЋУиZпн5 NnF7|Ўв.МАy;Ѕ`н(јЦХ юѕLз,ЋЗЊsЧqB]UхЧh#}џ"%ѓdažьт"KммїHF ‘лёE?@х1hѕOЮeaцјA6ІГУ­<`} Э5P"!yЙХZЗUИН^3њ rBИ–ЯbpЦŽќv 1Ё љ4г-=№єAЬ?щnдBкОщšŽ.DЗˆ>•эFДЋH[Хф&cŠи:œWмlѓЂ9ц"хК~Ј=pзˆe оУzŽєX|жМЎК’ЊЧ)ЌšМЊ#јAЊ:В?šє|Ёп;р=kяеƒUЭ}MR6UйкЃjййјxUЋЌTѕz–[‰)z.h,‰8eэokІ.1jњl$ЅEГ,{›с‹ |Д~љвА'з’ёњO““РЮSM_ >jж@Ј†МV|фвиoє‡^Э%Ш~ƒзАЩeєар0ЗЮ/•‘+хэЪ0Ъ Pм ф7Zѕ0E~њљРVі[Эq‘ч6LЭ,"дfŒ$Ъ§ыьЋtqq­Ÿ'Š2…ЅЗШfyл Їb’9xаŸбdS>1˜$+­§rКpтkSu žѓГаo6О­^k~IєЦЕ2qЪѕ†nЄU)8­_я3­1И%,бів›џТ%!ыЋЪ–хžnТ€Ъ`лS>Ю ЇœBАž—пKˆИИSЗ€№й}Cђџ,=рb>џ‚OЋ!ћ с_paMиЯc˜+rВ‘sOŒ|7ЫћЩ\iIƒя­І’ЃЩЋџ9ЎЅцЙ“ ѓ ]+Ё†3YЕmb˜№Шr,‰ѕєžŒН‰%в огЬЦўf3џйicnV Bўtcpcrypt-0.5/launchers/TcpcryptLauncher/tcpcryptd_wrapper.c0000644000175200017520000000711412742073006023466 0ustar sorbosorbo#include #include #include #include #include #include #include #include #include #include void setup_ipfw_rules(); void run_tcpcryptd(char *); void stop_tcpcryptd(); void teardown_ipfw_rules(); static const char *pidfile = "/private/tmp/tcpcrypt.pid"; static char work_dir[4096]; void setup_ipfw_rules() { char pf[4096]; char *ipfw_cmds[] = { "mkdir -p /var/run/tcpcryptd", "dscl . create /Users/tcpcryptd UniqueID 666", "dscl . create /Users/tcpcryptd PrimaryGroupID 666", pf, NULL }; int i; snprintf(pf, sizeof(pf), "pfctl -Fa -e -f %s/pf.conf", work_dir); printf("Setting up ipfw rules...\n"); for (i = 0; ipfw_cmds[i] != NULL; ++i) { if (system(ipfw_cmds[i])) err(1, "%s", ipfw_cmds[i]); } } void run_tcpcryptd(char *my_argv0) { int fd; FILE *file; struct stat st; char tcpcryptd[4096]; /* stop tcpcryptd if it's running */ stop_tcpcryptd(); /* save pid */ fd = open(pidfile, O_CREAT | O_TRUNC | O_WRONLY | O_NOFOLLOW, 0600); if (fd == -1) err(1, "open()"); if (fstat(fd, &st) == -1) err(1, "fstat()"); if (!(st.st_mode & S_IFREG)) errx(1, "pidfile not regular file"); if (fchmod(fd, 0600) == -1) err(1, "fchmod()"); if (fchown(fd, 0, 0) == -1) err(1, "fchown()"); if (!(file = fdopen(fd, "w"))) err(1, "fdopen()"); if (fprintf(file, "%d", getpid()) < 1) err(1, "fprintf()"); if (fclose(file)) err(1, "fclose()"); snprintf(tcpcryptd, sizeof(tcpcryptd), "%s/tcpcryptd", work_dir); printf("Starting tcpcryptd...\n"); if (execl(tcpcryptd, "tcpcryptd", "-e", "-u", ":65531", NULL) == -1) err(1, "execve()"); } void stop_tcpcryptd() { struct stat st; int fd; FILE *file; pid_t tcpcryptd_pid; fd = open(pidfile, O_RDONLY | O_NOFOLLOW); if (fd == -1) { if (errno == ENOENT) { return; } else { err(1, "open()"); } } if (fstat(fd, &st) == -1) err(1, "fstat()"); /* check pidfile perms/attrs are safe */ int regfile = st.st_mode & S_IFREG; int rootowned = st.st_uid == 0 && st.st_gid == 0; int othernorw = (st.st_mode & (S_IRWXG | S_IRWXO)) == 0; if (!regfile || !rootowned || !othernorw) errx(1, "bad perms/attrs on pidfile"); /* unlink pidfile */ if (fchmod(fd, 0600) == -1) err(1, "fchmod()"); if (fchown(fd, 0, 0) == -1) err(1, "fchown()"); if (unlink(pidfile) == -1) err(1, "unlink()"); if (!(file = fdopen(fd, "r"))) err(1, "fdopen()"); if (fscanf(file, "%d", &tcpcryptd_pid) != 1) errx(1, "fscanf: no pid"); if (tcpcryptd_pid <= 0) errx(1, "invalid pid %d", tcpcryptd_pid); if (kill(tcpcryptd_pid, SIGTERM) == -1) err(1, "kill(%d)", tcpcryptd_pid); if (fclose(file) != 0) err(1, "fclose()"); } void teardown_ipfw_rules() { static char *cmd = "pfctl -d"; printf("Restoring ipfw to previous configuration..."); if (system(cmd)) warn("ipfw warning: %s", cmd); printf("OK\n"); } int main(int argc, char **argv) { static char *start = "start", *stop = "stop"; char *action = argv[1]; char *p; snprintf(work_dir, sizeof(work_dir), "%s", argv[0]); p = strrchr(work_dir, '/'); if (p) *p = 0; printf("Work dir: [%s]\n", work_dir); if (setuid(0) != 0) { printf("must be root\n"); exit(1); } if (strncmp(action, start, strlen(start)) == 0) { setup_ipfw_rules(); run_tcpcryptd(argv[0]); } else if (strncmp(action, stop, strlen(stop)) == 0) { teardown_ipfw_rules(); stop_tcpcryptd(); } else { printf("usage: %s start|stop\n", argv[0]); exit(1); } return 0; } tcpcrypt-0.5/launchers/TcpcryptLauncher/en.lproj/0000755000175200017520000000000012742073006021272 5ustar sorbosorbotcpcrypt-0.5/launchers/TcpcryptLauncher/en.lproj/Credits.rtf0000644000175200017520000000053512742073006023407 0ustar sorbosorbo{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf320 {\fonttbl\f0\fswiss\fcharset0 Helvetica;} {\colortbl;\red255\green255\blue255;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural \f0\b\fs24 \cf0 Tcpcrypt\ {\field{\*\fldinst{HYPERLINK "http://tcpcrypt.org"}}{\fldrslt \b0 http://tcpcrypt.org}}}tcpcrypt-0.5/launchers/TcpcryptLauncher/en.lproj/InfoPlist.strings0000644000175200017520000000014612742073006024615 0ustar sorbosorbo/* Localized versions of Info.plist keys */ NSHumanReadableCopyright = "ТЉ __MyCompanyName__, 2010"; tcpcrypt-0.5/launchers/TcpcryptLauncher/en.lproj/MainMenu.xib0000644000175200017520000002243012742073006023510 0ustar sorbosorbo tcpcrypt-0.5/launchers/TcpcryptLauncher/makepkg.sh0000755000175200017520000000062512742073006021524 0ustar sorbosorbo#!/bin/bash DIR=$1 VER=$(awk -F , '/AC_INIT/ {print $2}' ../../configure.ac | tr -d '[] ') echo Version $VER pkgbuild --root $DIR --identifier org.tcpcrypt.TcpcryptLauncher \ --version $VER --install-location /Applications tcpcrypt.pkg productsign --sign 'Developer ID Installer' tcpcrypt.pkg tcpcrypt-signed.pkg spctl --asses --type install tcpcrypt-signed.pkg mv tcpcrypt-signed.pkg tcpcrypt.pkg tcpcrypt-0.5/launchers/freebsd/0000755000175200017520000000000012742073006015663 5ustar sorbosorbotcpcrypt-0.5/launchers/freebsd/tcpcryptd0000644000175200017520000000240012742073006017616 0ustar sorbosorbo#!/bin/sh # $FreeBSD$ # # PROVIDE: tcpcryptd # REQUIRE: ipfw networking # KEYWORD: shutdown # # Add the following lines to /etc/rc.conf.local or /etc/rc.conf # to enable this service: # # tcpcryptd_enable (bool): Set to NO by default. # Set it to YES to enable tcpcryptd. # . /etc/rc.subr name="tcpcryptd" rcvar=`set_rcvar` DIVERT_PORT=666 PORT=80 PORT2=7777 command="/usr/local/bin/${name}" command_args="-p $DIVERT_PORT" pidfile="/var/run/${name}.pid" : ${tcpcryptd_enable="NO"} required_files="" sig_reload="USR1" start_precmd="${name}_prestart" start_cmd="${name}_start" stop_postcmd="${name}_poststop" extra_commands="" tcpcryptd_prestart() { echo Tcpcrypting port 80 and local traffic on port 7777... ipfw 02 add divert $DIVERT_PORT tcp from any to any $PORT ipfw 03 add divert $DIVERT_PORT tcp from any $PORT to any ipfw 04 add divert $DIVERT_PORT tcp from any to any $PORT2 via lo0 ipfw 05 add divert $DIVERT_PORT tcp from any $PORT2 to any via lo0 return 0 } tcpcryptd_start() { LD_LIBRARY_PATH=lib/ $command $command_args & echo $! > $pidfile return 0 } tcpcryptd_poststop() { echo Removing ipfw rules and quitting tcpcryptd... ipfw delete 02 03 04 05 return 0 } load_rc_config $name run_rc_command "$1" tcpcrypt-0.5/launchers/freebsd/README0000644000175200017520000000033512742073006016544 0ustar sorbosorboFreeBSD rc start script Provided by Richard Carback Instructions: * Install the included "tcpcryptd" file to /usr/local/etc/rc.d/tcpcryptd * Add the following to /etc/rc.conf to enable the script: tcpcryptd_enable="YES" tcpcrypt-0.5/Makefile.am0000644000175200017520000001071312742073006014323 0ustar sorbosorboACLOCAL_AMFLAGS = -I m4 bin_PROGRAMS = src/tcpcryptd util/tcnetstat if !OS_MINGW bin_PROGRAMS += util/tcs endif dist_man8_MANS = src/tcpcryptd.man util/tcnetstat.man lib_LTLIBRARIES = lib/libtcpcrypt.la TESTSUITE = tests/testsuite TESTSUITEFLAGS = --directory tests EXTRA_DIST = \ launch_tcpcryptd.sh \ src/tcpcrypt_version.h \ src/tcpcryptd.man.md util/tcnetstat.man.md \ tests/package.m4 tests/atlocal.in \ tests/testsuite.at tests/version.at tests/hmac.at \ $(TESTSUITE) if MAINTAINER_MODE SUFFIXES = .man.md .man .man.md.man: pandoc -s -w man $^ -o $@ endif TCPCRYPT_SRC = $(srcdir)/src TCPCRYPT_INCLUDE = $(srcdir)/include AM_CFLAGS = -I$(TCPCRYPT_SRC) -I$(TCPCRYPT_INCLUDE) # include generated headers like tcpcrypt_version.h AM_CFLAGS += -I$(builddir)/src PRIV_SOURCES = src/priv.h PRIV_LDADD = if OS_MINGW PRIV_SOURCES += win/priv.c else PRIV_SOURCES += unix/priv.c if OS_LINUX PRIV_SOURCES += unix/linux/priv.c PRIV_LDADD += -lcap endif endif # lib_libtcpcrypt lib_libtcpcrypt_ladir = $(includedir)/tcpcrypt lib_libtcpcrypt_la_HEADERS = include/tcpcrypt/tcpcrypt.h lib_libtcpcrypt_la_SOURCES = \ lib/sockopt.c \ shared/socket_address.c shared/socket_address.h \ src/tcpcrypt_ctl.h \ lib/libtcpcrypt.sym TCPCRYPT_LIBRARY_VERSION = 0:0:0 lib_libtcpcrypt_la_LDFLAGS = \ -version-info $(TCPCRYPT_LIBRARY_VERSION) \ -export-symbols $(top_srcdir)/lib/libtcpcrypt.sym if OS_MINGW lib_libtcpcrypt_la_LIBADD = -lws2_32 endif # util_tcnetstat util_tcnetstat_SOURCES = \ util/tcnetstat.c \ include/tcpcrypt/tcpcrypt.h \ shared/socket_address.c shared/socket_address.h \ lib/libtcpcrypt.la util_tcnetstat_LDADD = lib/libtcpcrypt.la if OS_MINGW util_tcnetstat_LDADD += -lwsock32 -liphlpapi endif util_tcnetstat_CFLAGS = $(AM_CFLAGS) # util_tcs util_tcs_SOURCES = util/tcs.c \ shared/socket_address.c shared/socket_address.h \ $(PRIV_SOURCES) util_tcs_LDADD = lib/libtcpcrypt.la $(PRIV_LDADD) util_tcs_CFLAGS = $(AM_CFLAGS) # src_tcpcryptd src_tcpcryptd_SOURCES = \ src/tcpcryptd.c src/tcpcrypt.c src/crypto.c src/crypto_aes.c \ src/crypto_hmac.c src/crypto_dummy.c src/profile.c src/checksum.c src/test.c \ src/crypto_hkdf.c \ src/crypto_reg.c src/crypto_ecdhe.c \ src/inc.h src/tcpcrypt_ctl.h src/tcpcrypt_divert.h src/tcpcrypt.h src/tcpcryptd.h \ src/profile.h src/checksum.h src/test.h src/crypto.h src/tcpcrypt_strings.h \ src/util.c src/util.h \ src/tcpcrypt_version.h \ shared/socket_address.c shared/socket_address.h \ $(PRIV_SOURCES) src_tcpcryptd_LDADD = @tcpcryptd_LDADD@ @crypto_LDADD@ if OS_BSD src_tcpcryptd_SOURCES += src/freebsd.c endif if OS_LINUX src_tcpcryptd_SOURCES += src/linux.c endif if OS_MINGW src_tcpcryptd_SOURCES += src/mingw.c src/res.rc src/cygwin.c contrib/win_port.h src_tcpcryptd_LDADD += -lwsock32 -liphlpapi -lWinDivert else src_tcpcryptd_SOURCES += src/unix.c endif if !NO_ASM src_tcpcryptd_SOURCES += src/checksum_32.S endif src_tcpcryptd_CFLAGS = $(AM_CFLAGS) # tests/ tests/package.m4: $(top_srcdir)/configure.ac { \ echo '# Signature of the current package.' && \ echo 'm4_define([AT_PACKAGE_NAME], [$(PACKAGE_NAME)])' && \ echo 'm4_define([AT_PACKAGE_TARNAME], [$(PACKAGE_TARNAME)])' && \ echo 'm4_define([AT_PACKAGE_VERSION], [$(PACKAGE_VERSION)])' && \ echo 'm4_define([AT_PACKAGE_STRING], [$(PACKAGE_STRING)])' && \ echo 'm4_define([AT_PACKAGE_BUGREPORT], [$(PACKAGE_BUGREPORT)])'; \ echo 'm4_define([AT_PACKAGE_URL], [$(PACKAGE_URL)])'; \ } >$@ tests/atconfig: config.status ./config.status $@ ALL_TESTS = tests/version.at tests/hmac.at RUN_TESTSUITE = $(SHELL) $(srcdir)/tests/testsuite $(TESTSUITEFLAGS) check-local: tests/atconfig tests/atlocal $(TESTSUITE) $(RUN_TESTSUITE) AUTOTEST_PATH='tests:src:util' installcheck-local: tests/atconfig tests/atlocal $(TESTSUITE) $(RUN_TESTSUITE) AUTOTEST_PATH='tests:$(bindir)' clean-local: test ! -f '$(TESTSUITE)' || $(RUN_TESTSUITE) --clean rm -f '$(TESTSUITE)' rm -f tests/testsuite.log rm -f tests/atconfig AUTOM4TE = $(SHELL) $(srcdir)/config/missing --run autom4te AUTOTEST = $(AUTOM4TE) --language=autotest $(TESTSUITE): tests/testsuite.at tests/package.m4 $(ALL_TESTS) $(AUTOTEST) -I '$(srcdir)' -o $@.tmp $@.at mv $@.tmp $@ ## test programs: ## all tests against crypto elements should include these: cryptosources = \ src/inc.h \ src/crypto.h \ src/profile.h \ src/crypto.c \ src/profile.c \ src/util.c check_PROGRAMS = tests/hmac tests_hmac_SOURCES = tests/hmac.c \ src/crypto_hmac.c \ $(cryptosources) tests_hmac_LDADD = @crypto_LDADD@ tcpcrypt-0.5/Makefile.in0000644000175200017520000033652412742073030014344 0ustar sorbosorbo# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2014 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@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) 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@ bin_PROGRAMS = src/tcpcryptd$(EXEEXT) util/tcnetstat$(EXEEXT) \ $(am__EXEEXT_1) @OS_MINGW_FALSE@am__append_1 = util/tcs @OS_MINGW_TRUE@am__append_2 = win/priv.c @OS_MINGW_FALSE@am__append_3 = unix/priv.c @OS_LINUX_TRUE@@OS_MINGW_FALSE@am__append_4 = unix/linux/priv.c @OS_LINUX_TRUE@@OS_MINGW_FALSE@am__append_5 = -lcap @OS_MINGW_TRUE@am__append_6 = -lwsock32 -liphlpapi @OS_BSD_TRUE@am__append_7 = src/freebsd.c @OS_LINUX_TRUE@am__append_8 = src/linux.c @OS_MINGW_TRUE@am__append_9 = src/mingw.c src/res.rc src/cygwin.c contrib/win_port.h @OS_MINGW_TRUE@am__append_10 = -lwsock32 -liphlpapi -lWinDivert @OS_MINGW_FALSE@am__append_11 = src/unix.c @NO_ASM_FALSE@am__append_12 = src/checksum_32.S check_PROGRAMS = tests/hmac$(EXEEXT) subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \ $(am__configure_deps) $(lib_libtcpcrypt_la_HEADERS) \ $(am__DIST_COMMON) 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 = tests/atlocal src/tcpcrypt_version.h 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__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \ "$(DESTDIR)$(man8dir)" "$(DESTDIR)$(lib_libtcpcrypt_ladir)" LTLIBRARIES = $(lib_LTLIBRARIES) lib_libtcpcrypt_la_DEPENDENCIES = am__dirstamp = $(am__leading_dot)dirstamp am_lib_libtcpcrypt_la_OBJECTS = lib/sockopt.lo \ shared/socket_address.lo lib_libtcpcrypt_la_OBJECTS = $(am_lib_libtcpcrypt_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = lib_libtcpcrypt_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(lib_libtcpcrypt_la_LDFLAGS) \ $(LDFLAGS) -o $@ @OS_MINGW_FALSE@am__EXEEXT_1 = util/tcs$(EXEEXT) PROGRAMS = $(bin_PROGRAMS) am__src_tcpcryptd_SOURCES_DIST = src/tcpcryptd.c src/tcpcrypt.c \ src/crypto.c src/crypto_aes.c src/crypto_hmac.c \ src/crypto_dummy.c src/profile.c src/checksum.c src/test.c \ src/crypto_hkdf.c src/crypto_reg.c src/crypto_ecdhe.c \ src/inc.h src/tcpcrypt_ctl.h src/tcpcrypt_divert.h \ src/tcpcrypt.h src/tcpcryptd.h src/profile.h src/checksum.h \ src/test.h src/crypto.h src/tcpcrypt_strings.h src/util.c \ src/util.h src/tcpcrypt_version.h shared/socket_address.c \ shared/socket_address.h src/priv.h win/priv.c unix/priv.c \ unix/linux/priv.c src/freebsd.c src/linux.c src/mingw.c \ src/res.rc src/cygwin.c contrib/win_port.h src/unix.c \ src/checksum_32.S @OS_MINGW_TRUE@am__objects_1 = win/src_tcpcryptd-priv.$(OBJEXT) @OS_MINGW_FALSE@am__objects_2 = unix/src_tcpcryptd-priv.$(OBJEXT) @OS_LINUX_TRUE@@OS_MINGW_FALSE@am__objects_3 = unix/linux/src_tcpcryptd-priv.$(OBJEXT) am__objects_4 = $(am__objects_1) $(am__objects_2) $(am__objects_3) @OS_BSD_TRUE@am__objects_5 = src/src_tcpcryptd-freebsd.$(OBJEXT) @OS_LINUX_TRUE@am__objects_6 = src/src_tcpcryptd-linux.$(OBJEXT) @OS_MINGW_TRUE@am__objects_7 = src/src_tcpcryptd-mingw.$(OBJEXT) \ @OS_MINGW_TRUE@ src/src_tcpcryptd-cygwin.$(OBJEXT) @OS_MINGW_FALSE@am__objects_8 = src/src_tcpcryptd-unix.$(OBJEXT) @NO_ASM_FALSE@am__objects_9 = src/checksum_32.$(OBJEXT) am_src_tcpcryptd_OBJECTS = src/src_tcpcryptd-tcpcryptd.$(OBJEXT) \ src/src_tcpcryptd-tcpcrypt.$(OBJEXT) \ src/src_tcpcryptd-crypto.$(OBJEXT) \ src/src_tcpcryptd-crypto_aes.$(OBJEXT) \ src/src_tcpcryptd-crypto_hmac.$(OBJEXT) \ src/src_tcpcryptd-crypto_dummy.$(OBJEXT) \ src/src_tcpcryptd-profile.$(OBJEXT) \ src/src_tcpcryptd-checksum.$(OBJEXT) \ src/src_tcpcryptd-test.$(OBJEXT) \ src/src_tcpcryptd-crypto_hkdf.$(OBJEXT) \ src/src_tcpcryptd-crypto_reg.$(OBJEXT) \ src/src_tcpcryptd-crypto_ecdhe.$(OBJEXT) \ src/src_tcpcryptd-util.$(OBJEXT) \ shared/src_tcpcryptd-socket_address.$(OBJEXT) $(am__objects_4) \ $(am__objects_5) $(am__objects_6) $(am__objects_7) \ $(am__objects_8) $(am__objects_9) src_tcpcryptd_OBJECTS = $(am_src_tcpcryptd_OBJECTS) am__DEPENDENCIES_1 = src_tcpcryptd_DEPENDENCIES = $(am__DEPENDENCIES_1) src_tcpcryptd_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(src_tcpcryptd_CFLAGS) \ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ am__objects_10 = src/crypto.$(OBJEXT) src/profile.$(OBJEXT) \ src/util.$(OBJEXT) am_tests_hmac_OBJECTS = tests/hmac.$(OBJEXT) src/crypto_hmac.$(OBJEXT) \ $(am__objects_10) tests_hmac_OBJECTS = $(am_tests_hmac_OBJECTS) tests_hmac_DEPENDENCIES = am_util_tcnetstat_OBJECTS = util/util_tcnetstat-tcnetstat.$(OBJEXT) \ shared/util_tcnetstat-socket_address.$(OBJEXT) util_tcnetstat_OBJECTS = $(am_util_tcnetstat_OBJECTS) util_tcnetstat_DEPENDENCIES = lib/libtcpcrypt.la $(am__DEPENDENCIES_1) util_tcnetstat_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(util_tcnetstat_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o \ $@ am__util_tcs_SOURCES_DIST = util/tcs.c shared/socket_address.c \ shared/socket_address.h src/priv.h win/priv.c unix/priv.c \ unix/linux/priv.c @OS_MINGW_TRUE@am__objects_11 = win/util_tcs-priv.$(OBJEXT) @OS_MINGW_FALSE@am__objects_12 = unix/util_tcs-priv.$(OBJEXT) @OS_LINUX_TRUE@@OS_MINGW_FALSE@am__objects_13 = unix/linux/util_tcs-priv.$(OBJEXT) am__objects_14 = $(am__objects_11) $(am__objects_12) $(am__objects_13) am_util_tcs_OBJECTS = util/util_tcs-tcs.$(OBJEXT) \ shared/util_tcs-socket_address.$(OBJEXT) $(am__objects_14) util_tcs_OBJECTS = $(am_util_tcs_OBJECTS) am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1) util_tcs_DEPENDENCIES = lib/libtcpcrypt.la $(am__DEPENDENCIES_2) util_tcs_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(util_tcs_CFLAGS) \ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/config/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CPPASCOMPILE = $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS) LTCPPASCOMPILE = $(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CCAS) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CCASFLAGS) $(CCASFLAGS) AM_V_CPPAS = $(am__v_CPPAS_@AM_V@) am__v_CPPAS_ = $(am__v_CPPAS_@AM_DEFAULT_V@) am__v_CPPAS_0 = @echo " CPPAS " $@; am__v_CPPAS_1 = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(lib_libtcpcrypt_la_SOURCES) $(src_tcpcryptd_SOURCES) \ $(tests_hmac_SOURCES) $(util_tcnetstat_SOURCES) \ $(util_tcs_SOURCES) DIST_SOURCES = $(lib_libtcpcrypt_la_SOURCES) \ $(am__src_tcpcryptd_SOURCES_DIST) $(tests_hmac_SOURCES) \ $(util_tcnetstat_SOURCES) $(am__util_tcs_SOURCES_DIST) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac man8dir = $(mandir)/man8 NROFF = nroff MANS = $(dist_man8_MANS) HEADERS = $(lib_libtcpcrypt_la_HEADERS) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \ $(LISP)config.h.in # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags CSCOPE = cscope AM_RECURSIVE_TARGETS = cscope am__DIST_COMMON = $(dist_man8_MANS) $(srcdir)/Makefile.in \ $(srcdir)/config.h.in $(top_srcdir)/config/ar-lib \ $(top_srcdir)/config/compile $(top_srcdir)/config/config.guess \ $(top_srcdir)/config/config.sub $(top_srcdir)/config/depcomp \ $(top_srcdir)/config/install-sh $(top_srcdir)/config/ltmain.sh \ $(top_srcdir)/config/missing \ $(top_srcdir)/src/tcpcrypt_version.h.in \ $(top_srcdir)/tests/atlocal.in config/ar-lib config/compile \ config/config.guess config/config.sub config/depcomp \ config/install-sh config/ltmain.sh config/missing DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ if test -d "$(distdir)"; then \ find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -rf "$(distdir)" \ || { sleep 5 && rm -rf "$(distdir)"; }; \ else :; fi am__post_remove_distdir = $(am__remove_distdir) DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.xz GZIP_ENV = --best DIST_TARGETS = dist-xz dist-gzip distuninstallcheck_listfiles = find . -type f -print am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCAS = @CCAS@ CCASDEPMODE = @CCASDEPMODE@ CCASFLAGS = @CCASFLAGS@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CONTROL_SOCKET = @CONTROL_SOCKET@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DIVERT_PORT = @DIVERT_PORT@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAIL_DIR = @JAIL_DIR@ JAIL_USER = @JAIL_USER@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ 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@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TEST_SERVER = @TEST_SERVER@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ 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@ crypto_LDADD = @crypto_LDADD@ 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@ 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@ tcpcryptd_LDADD = @tcpcryptd_LDADD@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ ACLOCAL_AMFLAGS = -I m4 dist_man8_MANS = src/tcpcryptd.man util/tcnetstat.man lib_LTLIBRARIES = lib/libtcpcrypt.la TESTSUITE = tests/testsuite TESTSUITEFLAGS = --directory tests EXTRA_DIST = \ launch_tcpcryptd.sh \ src/tcpcrypt_version.h \ src/tcpcryptd.man.md util/tcnetstat.man.md \ tests/package.m4 tests/atlocal.in \ tests/testsuite.at tests/version.at tests/hmac.at \ $(TESTSUITE) @MAINTAINER_MODE_TRUE@SUFFIXES = .man.md .man TCPCRYPT_SRC = $(srcdir)/src TCPCRYPT_INCLUDE = $(srcdir)/include # include generated headers like tcpcrypt_version.h AM_CFLAGS = -I$(TCPCRYPT_SRC) -I$(TCPCRYPT_INCLUDE) -I$(builddir)/src PRIV_SOURCES = src/priv.h $(am__append_2) $(am__append_3) \ $(am__append_4) PRIV_LDADD = $(am__append_5) # lib_libtcpcrypt lib_libtcpcrypt_ladir = $(includedir)/tcpcrypt lib_libtcpcrypt_la_HEADERS = include/tcpcrypt/tcpcrypt.h lib_libtcpcrypt_la_SOURCES = \ lib/sockopt.c \ shared/socket_address.c shared/socket_address.h \ src/tcpcrypt_ctl.h \ lib/libtcpcrypt.sym TCPCRYPT_LIBRARY_VERSION = 0:0:0 lib_libtcpcrypt_la_LDFLAGS = \ -version-info $(TCPCRYPT_LIBRARY_VERSION) \ -export-symbols $(top_srcdir)/lib/libtcpcrypt.sym @OS_MINGW_TRUE@lib_libtcpcrypt_la_LIBADD = -lws2_32 # util_tcnetstat util_tcnetstat_SOURCES = \ util/tcnetstat.c \ include/tcpcrypt/tcpcrypt.h \ shared/socket_address.c shared/socket_address.h \ lib/libtcpcrypt.la util_tcnetstat_LDADD = lib/libtcpcrypt.la $(am__append_6) util_tcnetstat_CFLAGS = $(AM_CFLAGS) # util_tcs util_tcs_SOURCES = util/tcs.c \ shared/socket_address.c shared/socket_address.h \ $(PRIV_SOURCES) util_tcs_LDADD = lib/libtcpcrypt.la $(PRIV_LDADD) util_tcs_CFLAGS = $(AM_CFLAGS) # src_tcpcryptd src_tcpcryptd_SOURCES = src/tcpcryptd.c src/tcpcrypt.c src/crypto.c \ src/crypto_aes.c src/crypto_hmac.c src/crypto_dummy.c \ src/profile.c src/checksum.c src/test.c src/crypto_hkdf.c \ src/crypto_reg.c src/crypto_ecdhe.c src/inc.h \ src/tcpcrypt_ctl.h src/tcpcrypt_divert.h src/tcpcrypt.h \ src/tcpcryptd.h src/profile.h src/checksum.h src/test.h \ src/crypto.h src/tcpcrypt_strings.h src/util.c src/util.h \ src/tcpcrypt_version.h shared/socket_address.c \ shared/socket_address.h $(PRIV_SOURCES) $(am__append_7) \ $(am__append_8) $(am__append_9) $(am__append_11) \ $(am__append_12) src_tcpcryptd_LDADD = @tcpcryptd_LDADD@ @crypto_LDADD@ \ $(am__append_10) src_tcpcryptd_CFLAGS = $(AM_CFLAGS) ALL_TESTS = tests/version.at tests/hmac.at RUN_TESTSUITE = $(SHELL) $(srcdir)/tests/testsuite $(TESTSUITEFLAGS) AUTOM4TE = $(SHELL) $(srcdir)/config/missing --run autom4te AUTOTEST = $(AUTOM4TE) --language=autotest cryptosources = \ src/inc.h \ src/crypto.h \ src/profile.h \ src/crypto.c \ src/profile.c \ src/util.c tests_hmac_SOURCES = tests/hmac.c \ src/crypto_hmac.c \ $(cryptosources) tests_hmac_LDADD = @crypto_LDADD@ all: config.h $(MAKE) $(AM_MAKEFLAGS) all-am .SUFFIXES: .SUFFIXES: .man.md .man .S .c .lo .o .obj am--refresh: Makefile @: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \ $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(am__cd) $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) $(am__aclocal_m4_deps): config.h: stamp-h1 @test -f $@ || rm -f stamp-h1 @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1 stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status config.h $(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) rm -f stamp-h1 touch $@ distclean-hdr: -rm -f config.h stamp-h1 tests/atlocal: $(top_builddir)/config.status $(top_srcdir)/tests/atlocal.in cd $(top_builddir) && $(SHELL) ./config.status $@ src/tcpcrypt_version.h: $(top_builddir)/config.status $(top_srcdir)/src/tcpcrypt_version.h.in cd $(top_builddir) && $(SHELL) ./config.status $@ install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } lib/$(am__dirstamp): @$(MKDIR_P) lib @: > lib/$(am__dirstamp) lib/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) lib/$(DEPDIR) @: > lib/$(DEPDIR)/$(am__dirstamp) lib/sockopt.lo: lib/$(am__dirstamp) lib/$(DEPDIR)/$(am__dirstamp) shared/$(am__dirstamp): @$(MKDIR_P) shared @: > shared/$(am__dirstamp) shared/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) shared/$(DEPDIR) @: > shared/$(DEPDIR)/$(am__dirstamp) shared/socket_address.lo: shared/$(am__dirstamp) \ shared/$(DEPDIR)/$(am__dirstamp) lib/libtcpcrypt.la: $(lib_libtcpcrypt_la_OBJECTS) $(lib_libtcpcrypt_la_DEPENDENCIES) $(EXTRA_lib_libtcpcrypt_la_DEPENDENCIES) lib/$(am__dirstamp) $(AM_V_CCLD)$(lib_libtcpcrypt_la_LINK) -rpath $(libdir) $(lib_libtcpcrypt_la_OBJECTS) $(lib_libtcpcrypt_la_LIBADD) $(LIBS) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p \ || test -f $$p1 \ ; then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' \ -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' \ `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list clean-checkPROGRAMS: @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list src/$(am__dirstamp): @$(MKDIR_P) src @: > src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) src/$(DEPDIR) @: > src/$(DEPDIR)/$(am__dirstamp) src/src_tcpcryptd-tcpcryptd.$(OBJEXT): src/$(am__dirstamp) \ src/$(DEPDIR)/$(am__dirstamp) src/src_tcpcryptd-tcpcrypt.$(OBJEXT): src/$(am__dirstamp) \ src/$(DEPDIR)/$(am__dirstamp) src/src_tcpcryptd-crypto.$(OBJEXT): src/$(am__dirstamp) \ src/$(DEPDIR)/$(am__dirstamp) src/src_tcpcryptd-crypto_aes.$(OBJEXT): src/$(am__dirstamp) \ src/$(DEPDIR)/$(am__dirstamp) src/src_tcpcryptd-crypto_hmac.$(OBJEXT): src/$(am__dirstamp) \ src/$(DEPDIR)/$(am__dirstamp) src/src_tcpcryptd-crypto_dummy.$(OBJEXT): src/$(am__dirstamp) \ src/$(DEPDIR)/$(am__dirstamp) src/src_tcpcryptd-profile.$(OBJEXT): src/$(am__dirstamp) \ src/$(DEPDIR)/$(am__dirstamp) src/src_tcpcryptd-checksum.$(OBJEXT): src/$(am__dirstamp) \ src/$(DEPDIR)/$(am__dirstamp) src/src_tcpcryptd-test.$(OBJEXT): src/$(am__dirstamp) \ src/$(DEPDIR)/$(am__dirstamp) src/src_tcpcryptd-crypto_hkdf.$(OBJEXT): src/$(am__dirstamp) \ src/$(DEPDIR)/$(am__dirstamp) src/src_tcpcryptd-crypto_reg.$(OBJEXT): src/$(am__dirstamp) \ src/$(DEPDIR)/$(am__dirstamp) src/src_tcpcryptd-crypto_ecdhe.$(OBJEXT): src/$(am__dirstamp) \ src/$(DEPDIR)/$(am__dirstamp) src/src_tcpcryptd-util.$(OBJEXT): src/$(am__dirstamp) \ src/$(DEPDIR)/$(am__dirstamp) shared/src_tcpcryptd-socket_address.$(OBJEXT): shared/$(am__dirstamp) \ shared/$(DEPDIR)/$(am__dirstamp) win/$(am__dirstamp): @$(MKDIR_P) win @: > win/$(am__dirstamp) win/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) win/$(DEPDIR) @: > win/$(DEPDIR)/$(am__dirstamp) win/src_tcpcryptd-priv.$(OBJEXT): win/$(am__dirstamp) \ win/$(DEPDIR)/$(am__dirstamp) unix/$(am__dirstamp): @$(MKDIR_P) unix @: > unix/$(am__dirstamp) unix/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) unix/$(DEPDIR) @: > unix/$(DEPDIR)/$(am__dirstamp) unix/src_tcpcryptd-priv.$(OBJEXT): unix/$(am__dirstamp) \ unix/$(DEPDIR)/$(am__dirstamp) unix/linux/$(am__dirstamp): @$(MKDIR_P) unix/linux @: > unix/linux/$(am__dirstamp) unix/linux/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) unix/linux/$(DEPDIR) @: > unix/linux/$(DEPDIR)/$(am__dirstamp) unix/linux/src_tcpcryptd-priv.$(OBJEXT): unix/linux/$(am__dirstamp) \ unix/linux/$(DEPDIR)/$(am__dirstamp) src/src_tcpcryptd-freebsd.$(OBJEXT): src/$(am__dirstamp) \ src/$(DEPDIR)/$(am__dirstamp) src/src_tcpcryptd-linux.$(OBJEXT): src/$(am__dirstamp) \ src/$(DEPDIR)/$(am__dirstamp) src/src_tcpcryptd-mingw.$(OBJEXT): src/$(am__dirstamp) \ src/$(DEPDIR)/$(am__dirstamp) src/src_tcpcryptd-cygwin.$(OBJEXT): src/$(am__dirstamp) \ src/$(DEPDIR)/$(am__dirstamp) src/src_tcpcryptd-unix.$(OBJEXT): src/$(am__dirstamp) \ src/$(DEPDIR)/$(am__dirstamp) src/checksum_32.$(OBJEXT): src/$(am__dirstamp) \ src/$(DEPDIR)/$(am__dirstamp) src/tcpcryptd$(EXEEXT): $(src_tcpcryptd_OBJECTS) $(src_tcpcryptd_DEPENDENCIES) $(EXTRA_src_tcpcryptd_DEPENDENCIES) src/$(am__dirstamp) @rm -f src/tcpcryptd$(EXEEXT) $(AM_V_CCLD)$(src_tcpcryptd_LINK) $(src_tcpcryptd_OBJECTS) $(src_tcpcryptd_LDADD) $(LIBS) tests/$(am__dirstamp): @$(MKDIR_P) tests @: > tests/$(am__dirstamp) tests/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) tests/$(DEPDIR) @: > tests/$(DEPDIR)/$(am__dirstamp) tests/hmac.$(OBJEXT): tests/$(am__dirstamp) \ tests/$(DEPDIR)/$(am__dirstamp) src/crypto_hmac.$(OBJEXT): src/$(am__dirstamp) \ src/$(DEPDIR)/$(am__dirstamp) src/crypto.$(OBJEXT): src/$(am__dirstamp) \ src/$(DEPDIR)/$(am__dirstamp) src/profile.$(OBJEXT): src/$(am__dirstamp) \ src/$(DEPDIR)/$(am__dirstamp) src/util.$(OBJEXT): src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp) tests/hmac$(EXEEXT): $(tests_hmac_OBJECTS) $(tests_hmac_DEPENDENCIES) $(EXTRA_tests_hmac_DEPENDENCIES) tests/$(am__dirstamp) @rm -f tests/hmac$(EXEEXT) $(AM_V_CCLD)$(LINK) $(tests_hmac_OBJECTS) $(tests_hmac_LDADD) $(LIBS) util/$(am__dirstamp): @$(MKDIR_P) util @: > util/$(am__dirstamp) util/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) util/$(DEPDIR) @: > util/$(DEPDIR)/$(am__dirstamp) util/util_tcnetstat-tcnetstat.$(OBJEXT): util/$(am__dirstamp) \ util/$(DEPDIR)/$(am__dirstamp) shared/util_tcnetstat-socket_address.$(OBJEXT): \ shared/$(am__dirstamp) shared/$(DEPDIR)/$(am__dirstamp) util/tcnetstat$(EXEEXT): $(util_tcnetstat_OBJECTS) $(util_tcnetstat_DEPENDENCIES) $(EXTRA_util_tcnetstat_DEPENDENCIES) util/$(am__dirstamp) @rm -f util/tcnetstat$(EXEEXT) $(AM_V_CCLD)$(util_tcnetstat_LINK) $(util_tcnetstat_OBJECTS) $(util_tcnetstat_LDADD) $(LIBS) util/util_tcs-tcs.$(OBJEXT): util/$(am__dirstamp) \ util/$(DEPDIR)/$(am__dirstamp) shared/util_tcs-socket_address.$(OBJEXT): shared/$(am__dirstamp) \ shared/$(DEPDIR)/$(am__dirstamp) win/util_tcs-priv.$(OBJEXT): win/$(am__dirstamp) \ win/$(DEPDIR)/$(am__dirstamp) unix/util_tcs-priv.$(OBJEXT): unix/$(am__dirstamp) \ unix/$(DEPDIR)/$(am__dirstamp) unix/linux/util_tcs-priv.$(OBJEXT): unix/linux/$(am__dirstamp) \ unix/linux/$(DEPDIR)/$(am__dirstamp) util/tcs$(EXEEXT): $(util_tcs_OBJECTS) $(util_tcs_DEPENDENCIES) $(EXTRA_util_tcs_DEPENDENCIES) util/$(am__dirstamp) @rm -f util/tcs$(EXEEXT) $(AM_V_CCLD)$(util_tcs_LINK) $(util_tcs_OBJECTS) $(util_tcs_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) -rm -f lib/*.$(OBJEXT) -rm -f lib/*.lo -rm -f shared/*.$(OBJEXT) -rm -f shared/*.lo -rm -f src/*.$(OBJEXT) -rm -f tests/*.$(OBJEXT) -rm -f unix/*.$(OBJEXT) -rm -f unix/linux/*.$(OBJEXT) -rm -f util/*.$(OBJEXT) -rm -f win/*.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/sockopt.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@shared/$(DEPDIR)/socket_address.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@shared/$(DEPDIR)/src_tcpcryptd-socket_address.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@shared/$(DEPDIR)/util_tcnetstat-socket_address.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@shared/$(DEPDIR)/util_tcs-socket_address.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/checksum_32.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/crypto.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/crypto_hmac.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/profile.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_tcpcryptd-checksum.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_tcpcryptd-crypto.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_tcpcryptd-crypto_aes.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_tcpcryptd-crypto_dummy.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_tcpcryptd-crypto_ecdhe.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_tcpcryptd-crypto_hkdf.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_tcpcryptd-crypto_hmac.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_tcpcryptd-crypto_reg.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_tcpcryptd-cygwin.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_tcpcryptd-freebsd.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_tcpcryptd-linux.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_tcpcryptd-mingw.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_tcpcryptd-profile.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_tcpcryptd-tcpcrypt.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_tcpcryptd-tcpcryptd.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_tcpcryptd-test.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_tcpcryptd-unix.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_tcpcryptd-util.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/util.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@tests/$(DEPDIR)/hmac.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@unix/$(DEPDIR)/src_tcpcryptd-priv.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@unix/$(DEPDIR)/util_tcs-priv.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@unix/linux/$(DEPDIR)/src_tcpcryptd-priv.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@unix/linux/$(DEPDIR)/util_tcs-priv.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@util/$(DEPDIR)/util_tcnetstat-tcnetstat.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@util/$(DEPDIR)/util_tcs-tcs.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@win/$(DEPDIR)/src_tcpcryptd-priv.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@win/$(DEPDIR)/util_tcs-priv.Po@am__quote@ .S.o: @am__fastdepCCAS_TRUE@ $(AM_V_CPPAS)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ @am__fastdepCCAS_TRUE@ $(CPPASCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ @am__fastdepCCAS_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCCAS_FALSE@ $(AM_V_CPPAS)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCCAS_FALSE@ DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCCAS_FALSE@ $(AM_V_CPPAS@am__nodep@)$(CPPASCOMPILE) -c -o $@ $< .S.obj: @am__fastdepCCAS_TRUE@ $(AM_V_CPPAS)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ @am__fastdepCCAS_TRUE@ $(CPPASCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ @am__fastdepCCAS_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCCAS_FALSE@ $(AM_V_CPPAS)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCCAS_FALSE@ DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCCAS_FALSE@ $(AM_V_CPPAS@am__nodep@)$(CPPASCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .S.lo: @am__fastdepCCAS_TRUE@ $(AM_V_CPPAS)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ @am__fastdepCCAS_TRUE@ $(LTCPPASCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ @am__fastdepCCAS_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo @AMDEP_TRUE@@am__fastdepCCAS_FALSE@ $(AM_V_CPPAS)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCCAS_FALSE@ DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCCAS_FALSE@ $(AM_V_CPPAS@am__nodep@)$(LTCPPASCOMPILE) -c -o $@ $< .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< src/src_tcpcryptd-tcpcryptd.o: src/tcpcryptd.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -MT src/src_tcpcryptd-tcpcryptd.o -MD -MP -MF src/$(DEPDIR)/src_tcpcryptd-tcpcryptd.Tpo -c -o src/src_tcpcryptd-tcpcryptd.o `test -f 'src/tcpcryptd.c' || echo '$(srcdir)/'`src/tcpcryptd.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_tcpcryptd-tcpcryptd.Tpo src/$(DEPDIR)/src_tcpcryptd-tcpcryptd.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/tcpcryptd.c' object='src/src_tcpcryptd-tcpcryptd.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -c -o src/src_tcpcryptd-tcpcryptd.o `test -f 'src/tcpcryptd.c' || echo '$(srcdir)/'`src/tcpcryptd.c src/src_tcpcryptd-tcpcryptd.obj: src/tcpcryptd.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -MT src/src_tcpcryptd-tcpcryptd.obj -MD -MP -MF src/$(DEPDIR)/src_tcpcryptd-tcpcryptd.Tpo -c -o src/src_tcpcryptd-tcpcryptd.obj `if test -f 'src/tcpcryptd.c'; then $(CYGPATH_W) 'src/tcpcryptd.c'; else $(CYGPATH_W) '$(srcdir)/src/tcpcryptd.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_tcpcryptd-tcpcryptd.Tpo src/$(DEPDIR)/src_tcpcryptd-tcpcryptd.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/tcpcryptd.c' object='src/src_tcpcryptd-tcpcryptd.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -c -o src/src_tcpcryptd-tcpcryptd.obj `if test -f 'src/tcpcryptd.c'; then $(CYGPATH_W) 'src/tcpcryptd.c'; else $(CYGPATH_W) '$(srcdir)/src/tcpcryptd.c'; fi` src/src_tcpcryptd-tcpcrypt.o: src/tcpcrypt.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -MT src/src_tcpcryptd-tcpcrypt.o -MD -MP -MF src/$(DEPDIR)/src_tcpcryptd-tcpcrypt.Tpo -c -o src/src_tcpcryptd-tcpcrypt.o `test -f 'src/tcpcrypt.c' || echo '$(srcdir)/'`src/tcpcrypt.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_tcpcryptd-tcpcrypt.Tpo src/$(DEPDIR)/src_tcpcryptd-tcpcrypt.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/tcpcrypt.c' object='src/src_tcpcryptd-tcpcrypt.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -c -o src/src_tcpcryptd-tcpcrypt.o `test -f 'src/tcpcrypt.c' || echo '$(srcdir)/'`src/tcpcrypt.c src/src_tcpcryptd-tcpcrypt.obj: src/tcpcrypt.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -MT src/src_tcpcryptd-tcpcrypt.obj -MD -MP -MF src/$(DEPDIR)/src_tcpcryptd-tcpcrypt.Tpo -c -o src/src_tcpcryptd-tcpcrypt.obj `if test -f 'src/tcpcrypt.c'; then $(CYGPATH_W) 'src/tcpcrypt.c'; else $(CYGPATH_W) '$(srcdir)/src/tcpcrypt.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_tcpcryptd-tcpcrypt.Tpo src/$(DEPDIR)/src_tcpcryptd-tcpcrypt.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/tcpcrypt.c' object='src/src_tcpcryptd-tcpcrypt.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -c -o src/src_tcpcryptd-tcpcrypt.obj `if test -f 'src/tcpcrypt.c'; then $(CYGPATH_W) 'src/tcpcrypt.c'; else $(CYGPATH_W) '$(srcdir)/src/tcpcrypt.c'; fi` src/src_tcpcryptd-crypto.o: src/crypto.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -MT src/src_tcpcryptd-crypto.o -MD -MP -MF src/$(DEPDIR)/src_tcpcryptd-crypto.Tpo -c -o src/src_tcpcryptd-crypto.o `test -f 'src/crypto.c' || echo '$(srcdir)/'`src/crypto.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_tcpcryptd-crypto.Tpo src/$(DEPDIR)/src_tcpcryptd-crypto.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/crypto.c' object='src/src_tcpcryptd-crypto.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -c -o src/src_tcpcryptd-crypto.o `test -f 'src/crypto.c' || echo '$(srcdir)/'`src/crypto.c src/src_tcpcryptd-crypto.obj: src/crypto.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -MT src/src_tcpcryptd-crypto.obj -MD -MP -MF src/$(DEPDIR)/src_tcpcryptd-crypto.Tpo -c -o src/src_tcpcryptd-crypto.obj `if test -f 'src/crypto.c'; then $(CYGPATH_W) 'src/crypto.c'; else $(CYGPATH_W) '$(srcdir)/src/crypto.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_tcpcryptd-crypto.Tpo src/$(DEPDIR)/src_tcpcryptd-crypto.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/crypto.c' object='src/src_tcpcryptd-crypto.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -c -o src/src_tcpcryptd-crypto.obj `if test -f 'src/crypto.c'; then $(CYGPATH_W) 'src/crypto.c'; else $(CYGPATH_W) '$(srcdir)/src/crypto.c'; fi` src/src_tcpcryptd-crypto_aes.o: src/crypto_aes.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -MT src/src_tcpcryptd-crypto_aes.o -MD -MP -MF src/$(DEPDIR)/src_tcpcryptd-crypto_aes.Tpo -c -o src/src_tcpcryptd-crypto_aes.o `test -f 'src/crypto_aes.c' || echo '$(srcdir)/'`src/crypto_aes.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_tcpcryptd-crypto_aes.Tpo src/$(DEPDIR)/src_tcpcryptd-crypto_aes.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/crypto_aes.c' object='src/src_tcpcryptd-crypto_aes.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -c -o src/src_tcpcryptd-crypto_aes.o `test -f 'src/crypto_aes.c' || echo '$(srcdir)/'`src/crypto_aes.c src/src_tcpcryptd-crypto_aes.obj: src/crypto_aes.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -MT src/src_tcpcryptd-crypto_aes.obj -MD -MP -MF src/$(DEPDIR)/src_tcpcryptd-crypto_aes.Tpo -c -o src/src_tcpcryptd-crypto_aes.obj `if test -f 'src/crypto_aes.c'; then $(CYGPATH_W) 'src/crypto_aes.c'; else $(CYGPATH_W) '$(srcdir)/src/crypto_aes.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_tcpcryptd-crypto_aes.Tpo src/$(DEPDIR)/src_tcpcryptd-crypto_aes.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/crypto_aes.c' object='src/src_tcpcryptd-crypto_aes.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -c -o src/src_tcpcryptd-crypto_aes.obj `if test -f 'src/crypto_aes.c'; then $(CYGPATH_W) 'src/crypto_aes.c'; else $(CYGPATH_W) '$(srcdir)/src/crypto_aes.c'; fi` src/src_tcpcryptd-crypto_hmac.o: src/crypto_hmac.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -MT src/src_tcpcryptd-crypto_hmac.o -MD -MP -MF src/$(DEPDIR)/src_tcpcryptd-crypto_hmac.Tpo -c -o src/src_tcpcryptd-crypto_hmac.o `test -f 'src/crypto_hmac.c' || echo '$(srcdir)/'`src/crypto_hmac.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_tcpcryptd-crypto_hmac.Tpo src/$(DEPDIR)/src_tcpcryptd-crypto_hmac.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/crypto_hmac.c' object='src/src_tcpcryptd-crypto_hmac.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -c -o src/src_tcpcryptd-crypto_hmac.o `test -f 'src/crypto_hmac.c' || echo '$(srcdir)/'`src/crypto_hmac.c src/src_tcpcryptd-crypto_hmac.obj: src/crypto_hmac.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -MT src/src_tcpcryptd-crypto_hmac.obj -MD -MP -MF src/$(DEPDIR)/src_tcpcryptd-crypto_hmac.Tpo -c -o src/src_tcpcryptd-crypto_hmac.obj `if test -f 'src/crypto_hmac.c'; then $(CYGPATH_W) 'src/crypto_hmac.c'; else $(CYGPATH_W) '$(srcdir)/src/crypto_hmac.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_tcpcryptd-crypto_hmac.Tpo src/$(DEPDIR)/src_tcpcryptd-crypto_hmac.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/crypto_hmac.c' object='src/src_tcpcryptd-crypto_hmac.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -c -o src/src_tcpcryptd-crypto_hmac.obj `if test -f 'src/crypto_hmac.c'; then $(CYGPATH_W) 'src/crypto_hmac.c'; else $(CYGPATH_W) '$(srcdir)/src/crypto_hmac.c'; fi` src/src_tcpcryptd-crypto_dummy.o: src/crypto_dummy.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -MT src/src_tcpcryptd-crypto_dummy.o -MD -MP -MF src/$(DEPDIR)/src_tcpcryptd-crypto_dummy.Tpo -c -o src/src_tcpcryptd-crypto_dummy.o `test -f 'src/crypto_dummy.c' || echo '$(srcdir)/'`src/crypto_dummy.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_tcpcryptd-crypto_dummy.Tpo src/$(DEPDIR)/src_tcpcryptd-crypto_dummy.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/crypto_dummy.c' object='src/src_tcpcryptd-crypto_dummy.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -c -o src/src_tcpcryptd-crypto_dummy.o `test -f 'src/crypto_dummy.c' || echo '$(srcdir)/'`src/crypto_dummy.c src/src_tcpcryptd-crypto_dummy.obj: src/crypto_dummy.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -MT src/src_tcpcryptd-crypto_dummy.obj -MD -MP -MF src/$(DEPDIR)/src_tcpcryptd-crypto_dummy.Tpo -c -o src/src_tcpcryptd-crypto_dummy.obj `if test -f 'src/crypto_dummy.c'; then $(CYGPATH_W) 'src/crypto_dummy.c'; else $(CYGPATH_W) '$(srcdir)/src/crypto_dummy.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_tcpcryptd-crypto_dummy.Tpo src/$(DEPDIR)/src_tcpcryptd-crypto_dummy.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/crypto_dummy.c' object='src/src_tcpcryptd-crypto_dummy.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -c -o src/src_tcpcryptd-crypto_dummy.obj `if test -f 'src/crypto_dummy.c'; then $(CYGPATH_W) 'src/crypto_dummy.c'; else $(CYGPATH_W) '$(srcdir)/src/crypto_dummy.c'; fi` src/src_tcpcryptd-profile.o: src/profile.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -MT src/src_tcpcryptd-profile.o -MD -MP -MF src/$(DEPDIR)/src_tcpcryptd-profile.Tpo -c -o src/src_tcpcryptd-profile.o `test -f 'src/profile.c' || echo '$(srcdir)/'`src/profile.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_tcpcryptd-profile.Tpo src/$(DEPDIR)/src_tcpcryptd-profile.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/profile.c' object='src/src_tcpcryptd-profile.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -c -o src/src_tcpcryptd-profile.o `test -f 'src/profile.c' || echo '$(srcdir)/'`src/profile.c src/src_tcpcryptd-profile.obj: src/profile.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -MT src/src_tcpcryptd-profile.obj -MD -MP -MF src/$(DEPDIR)/src_tcpcryptd-profile.Tpo -c -o src/src_tcpcryptd-profile.obj `if test -f 'src/profile.c'; then $(CYGPATH_W) 'src/profile.c'; else $(CYGPATH_W) '$(srcdir)/src/profile.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_tcpcryptd-profile.Tpo src/$(DEPDIR)/src_tcpcryptd-profile.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/profile.c' object='src/src_tcpcryptd-profile.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -c -o src/src_tcpcryptd-profile.obj `if test -f 'src/profile.c'; then $(CYGPATH_W) 'src/profile.c'; else $(CYGPATH_W) '$(srcdir)/src/profile.c'; fi` src/src_tcpcryptd-checksum.o: src/checksum.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -MT src/src_tcpcryptd-checksum.o -MD -MP -MF src/$(DEPDIR)/src_tcpcryptd-checksum.Tpo -c -o src/src_tcpcryptd-checksum.o `test -f 'src/checksum.c' || echo '$(srcdir)/'`src/checksum.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_tcpcryptd-checksum.Tpo src/$(DEPDIR)/src_tcpcryptd-checksum.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/checksum.c' object='src/src_tcpcryptd-checksum.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -c -o src/src_tcpcryptd-checksum.o `test -f 'src/checksum.c' || echo '$(srcdir)/'`src/checksum.c src/src_tcpcryptd-checksum.obj: src/checksum.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -MT src/src_tcpcryptd-checksum.obj -MD -MP -MF src/$(DEPDIR)/src_tcpcryptd-checksum.Tpo -c -o src/src_tcpcryptd-checksum.obj `if test -f 'src/checksum.c'; then $(CYGPATH_W) 'src/checksum.c'; else $(CYGPATH_W) '$(srcdir)/src/checksum.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_tcpcryptd-checksum.Tpo src/$(DEPDIR)/src_tcpcryptd-checksum.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/checksum.c' object='src/src_tcpcryptd-checksum.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -c -o src/src_tcpcryptd-checksum.obj `if test -f 'src/checksum.c'; then $(CYGPATH_W) 'src/checksum.c'; else $(CYGPATH_W) '$(srcdir)/src/checksum.c'; fi` src/src_tcpcryptd-test.o: src/test.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -MT src/src_tcpcryptd-test.o -MD -MP -MF src/$(DEPDIR)/src_tcpcryptd-test.Tpo -c -o src/src_tcpcryptd-test.o `test -f 'src/test.c' || echo '$(srcdir)/'`src/test.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_tcpcryptd-test.Tpo src/$(DEPDIR)/src_tcpcryptd-test.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/test.c' object='src/src_tcpcryptd-test.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -c -o src/src_tcpcryptd-test.o `test -f 'src/test.c' || echo '$(srcdir)/'`src/test.c src/src_tcpcryptd-test.obj: src/test.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -MT src/src_tcpcryptd-test.obj -MD -MP -MF src/$(DEPDIR)/src_tcpcryptd-test.Tpo -c -o src/src_tcpcryptd-test.obj `if test -f 'src/test.c'; then $(CYGPATH_W) 'src/test.c'; else $(CYGPATH_W) '$(srcdir)/src/test.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_tcpcryptd-test.Tpo src/$(DEPDIR)/src_tcpcryptd-test.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/test.c' object='src/src_tcpcryptd-test.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -c -o src/src_tcpcryptd-test.obj `if test -f 'src/test.c'; then $(CYGPATH_W) 'src/test.c'; else $(CYGPATH_W) '$(srcdir)/src/test.c'; fi` src/src_tcpcryptd-crypto_hkdf.o: src/crypto_hkdf.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -MT src/src_tcpcryptd-crypto_hkdf.o -MD -MP -MF src/$(DEPDIR)/src_tcpcryptd-crypto_hkdf.Tpo -c -o src/src_tcpcryptd-crypto_hkdf.o `test -f 'src/crypto_hkdf.c' || echo '$(srcdir)/'`src/crypto_hkdf.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_tcpcryptd-crypto_hkdf.Tpo src/$(DEPDIR)/src_tcpcryptd-crypto_hkdf.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/crypto_hkdf.c' object='src/src_tcpcryptd-crypto_hkdf.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -c -o src/src_tcpcryptd-crypto_hkdf.o `test -f 'src/crypto_hkdf.c' || echo '$(srcdir)/'`src/crypto_hkdf.c src/src_tcpcryptd-crypto_hkdf.obj: src/crypto_hkdf.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -MT src/src_tcpcryptd-crypto_hkdf.obj -MD -MP -MF src/$(DEPDIR)/src_tcpcryptd-crypto_hkdf.Tpo -c -o src/src_tcpcryptd-crypto_hkdf.obj `if test -f 'src/crypto_hkdf.c'; then $(CYGPATH_W) 'src/crypto_hkdf.c'; else $(CYGPATH_W) '$(srcdir)/src/crypto_hkdf.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_tcpcryptd-crypto_hkdf.Tpo src/$(DEPDIR)/src_tcpcryptd-crypto_hkdf.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/crypto_hkdf.c' object='src/src_tcpcryptd-crypto_hkdf.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -c -o src/src_tcpcryptd-crypto_hkdf.obj `if test -f 'src/crypto_hkdf.c'; then $(CYGPATH_W) 'src/crypto_hkdf.c'; else $(CYGPATH_W) '$(srcdir)/src/crypto_hkdf.c'; fi` src/src_tcpcryptd-crypto_reg.o: src/crypto_reg.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -MT src/src_tcpcryptd-crypto_reg.o -MD -MP -MF src/$(DEPDIR)/src_tcpcryptd-crypto_reg.Tpo -c -o src/src_tcpcryptd-crypto_reg.o `test -f 'src/crypto_reg.c' || echo '$(srcdir)/'`src/crypto_reg.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_tcpcryptd-crypto_reg.Tpo src/$(DEPDIR)/src_tcpcryptd-crypto_reg.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/crypto_reg.c' object='src/src_tcpcryptd-crypto_reg.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -c -o src/src_tcpcryptd-crypto_reg.o `test -f 'src/crypto_reg.c' || echo '$(srcdir)/'`src/crypto_reg.c src/src_tcpcryptd-crypto_reg.obj: src/crypto_reg.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -MT src/src_tcpcryptd-crypto_reg.obj -MD -MP -MF src/$(DEPDIR)/src_tcpcryptd-crypto_reg.Tpo -c -o src/src_tcpcryptd-crypto_reg.obj `if test -f 'src/crypto_reg.c'; then $(CYGPATH_W) 'src/crypto_reg.c'; else $(CYGPATH_W) '$(srcdir)/src/crypto_reg.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_tcpcryptd-crypto_reg.Tpo src/$(DEPDIR)/src_tcpcryptd-crypto_reg.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/crypto_reg.c' object='src/src_tcpcryptd-crypto_reg.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -c -o src/src_tcpcryptd-crypto_reg.obj `if test -f 'src/crypto_reg.c'; then $(CYGPATH_W) 'src/crypto_reg.c'; else $(CYGPATH_W) '$(srcdir)/src/crypto_reg.c'; fi` src/src_tcpcryptd-crypto_ecdhe.o: src/crypto_ecdhe.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -MT src/src_tcpcryptd-crypto_ecdhe.o -MD -MP -MF src/$(DEPDIR)/src_tcpcryptd-crypto_ecdhe.Tpo -c -o src/src_tcpcryptd-crypto_ecdhe.o `test -f 'src/crypto_ecdhe.c' || echo '$(srcdir)/'`src/crypto_ecdhe.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_tcpcryptd-crypto_ecdhe.Tpo src/$(DEPDIR)/src_tcpcryptd-crypto_ecdhe.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/crypto_ecdhe.c' object='src/src_tcpcryptd-crypto_ecdhe.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -c -o src/src_tcpcryptd-crypto_ecdhe.o `test -f 'src/crypto_ecdhe.c' || echo '$(srcdir)/'`src/crypto_ecdhe.c src/src_tcpcryptd-crypto_ecdhe.obj: src/crypto_ecdhe.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -MT src/src_tcpcryptd-crypto_ecdhe.obj -MD -MP -MF src/$(DEPDIR)/src_tcpcryptd-crypto_ecdhe.Tpo -c -o src/src_tcpcryptd-crypto_ecdhe.obj `if test -f 'src/crypto_ecdhe.c'; then $(CYGPATH_W) 'src/crypto_ecdhe.c'; else $(CYGPATH_W) '$(srcdir)/src/crypto_ecdhe.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_tcpcryptd-crypto_ecdhe.Tpo src/$(DEPDIR)/src_tcpcryptd-crypto_ecdhe.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/crypto_ecdhe.c' object='src/src_tcpcryptd-crypto_ecdhe.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -c -o src/src_tcpcryptd-crypto_ecdhe.obj `if test -f 'src/crypto_ecdhe.c'; then $(CYGPATH_W) 'src/crypto_ecdhe.c'; else $(CYGPATH_W) '$(srcdir)/src/crypto_ecdhe.c'; fi` src/src_tcpcryptd-util.o: src/util.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -MT src/src_tcpcryptd-util.o -MD -MP -MF src/$(DEPDIR)/src_tcpcryptd-util.Tpo -c -o src/src_tcpcryptd-util.o `test -f 'src/util.c' || echo '$(srcdir)/'`src/util.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_tcpcryptd-util.Tpo src/$(DEPDIR)/src_tcpcryptd-util.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/util.c' object='src/src_tcpcryptd-util.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -c -o src/src_tcpcryptd-util.o `test -f 'src/util.c' || echo '$(srcdir)/'`src/util.c src/src_tcpcryptd-util.obj: src/util.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -MT src/src_tcpcryptd-util.obj -MD -MP -MF src/$(DEPDIR)/src_tcpcryptd-util.Tpo -c -o src/src_tcpcryptd-util.obj `if test -f 'src/util.c'; then $(CYGPATH_W) 'src/util.c'; else $(CYGPATH_W) '$(srcdir)/src/util.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_tcpcryptd-util.Tpo src/$(DEPDIR)/src_tcpcryptd-util.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/util.c' object='src/src_tcpcryptd-util.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -c -o src/src_tcpcryptd-util.obj `if test -f 'src/util.c'; then $(CYGPATH_W) 'src/util.c'; else $(CYGPATH_W) '$(srcdir)/src/util.c'; fi` shared/src_tcpcryptd-socket_address.o: shared/socket_address.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -MT shared/src_tcpcryptd-socket_address.o -MD -MP -MF shared/$(DEPDIR)/src_tcpcryptd-socket_address.Tpo -c -o shared/src_tcpcryptd-socket_address.o `test -f 'shared/socket_address.c' || echo '$(srcdir)/'`shared/socket_address.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) shared/$(DEPDIR)/src_tcpcryptd-socket_address.Tpo shared/$(DEPDIR)/src_tcpcryptd-socket_address.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='shared/socket_address.c' object='shared/src_tcpcryptd-socket_address.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -c -o shared/src_tcpcryptd-socket_address.o `test -f 'shared/socket_address.c' || echo '$(srcdir)/'`shared/socket_address.c shared/src_tcpcryptd-socket_address.obj: shared/socket_address.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -MT shared/src_tcpcryptd-socket_address.obj -MD -MP -MF shared/$(DEPDIR)/src_tcpcryptd-socket_address.Tpo -c -o shared/src_tcpcryptd-socket_address.obj `if test -f 'shared/socket_address.c'; then $(CYGPATH_W) 'shared/socket_address.c'; else $(CYGPATH_W) '$(srcdir)/shared/socket_address.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) shared/$(DEPDIR)/src_tcpcryptd-socket_address.Tpo shared/$(DEPDIR)/src_tcpcryptd-socket_address.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='shared/socket_address.c' object='shared/src_tcpcryptd-socket_address.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -c -o shared/src_tcpcryptd-socket_address.obj `if test -f 'shared/socket_address.c'; then $(CYGPATH_W) 'shared/socket_address.c'; else $(CYGPATH_W) '$(srcdir)/shared/socket_address.c'; fi` win/src_tcpcryptd-priv.o: win/priv.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -MT win/src_tcpcryptd-priv.o -MD -MP -MF win/$(DEPDIR)/src_tcpcryptd-priv.Tpo -c -o win/src_tcpcryptd-priv.o `test -f 'win/priv.c' || echo '$(srcdir)/'`win/priv.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) win/$(DEPDIR)/src_tcpcryptd-priv.Tpo win/$(DEPDIR)/src_tcpcryptd-priv.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='win/priv.c' object='win/src_tcpcryptd-priv.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -c -o win/src_tcpcryptd-priv.o `test -f 'win/priv.c' || echo '$(srcdir)/'`win/priv.c win/src_tcpcryptd-priv.obj: win/priv.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -MT win/src_tcpcryptd-priv.obj -MD -MP -MF win/$(DEPDIR)/src_tcpcryptd-priv.Tpo -c -o win/src_tcpcryptd-priv.obj `if test -f 'win/priv.c'; then $(CYGPATH_W) 'win/priv.c'; else $(CYGPATH_W) '$(srcdir)/win/priv.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) win/$(DEPDIR)/src_tcpcryptd-priv.Tpo win/$(DEPDIR)/src_tcpcryptd-priv.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='win/priv.c' object='win/src_tcpcryptd-priv.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -c -o win/src_tcpcryptd-priv.obj `if test -f 'win/priv.c'; then $(CYGPATH_W) 'win/priv.c'; else $(CYGPATH_W) '$(srcdir)/win/priv.c'; fi` unix/src_tcpcryptd-priv.o: unix/priv.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -MT unix/src_tcpcryptd-priv.o -MD -MP -MF unix/$(DEPDIR)/src_tcpcryptd-priv.Tpo -c -o unix/src_tcpcryptd-priv.o `test -f 'unix/priv.c' || echo '$(srcdir)/'`unix/priv.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) unix/$(DEPDIR)/src_tcpcryptd-priv.Tpo unix/$(DEPDIR)/src_tcpcryptd-priv.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='unix/priv.c' object='unix/src_tcpcryptd-priv.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -c -o unix/src_tcpcryptd-priv.o `test -f 'unix/priv.c' || echo '$(srcdir)/'`unix/priv.c unix/src_tcpcryptd-priv.obj: unix/priv.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -MT unix/src_tcpcryptd-priv.obj -MD -MP -MF unix/$(DEPDIR)/src_tcpcryptd-priv.Tpo -c -o unix/src_tcpcryptd-priv.obj `if test -f 'unix/priv.c'; then $(CYGPATH_W) 'unix/priv.c'; else $(CYGPATH_W) '$(srcdir)/unix/priv.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) unix/$(DEPDIR)/src_tcpcryptd-priv.Tpo unix/$(DEPDIR)/src_tcpcryptd-priv.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='unix/priv.c' object='unix/src_tcpcryptd-priv.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -c -o unix/src_tcpcryptd-priv.obj `if test -f 'unix/priv.c'; then $(CYGPATH_W) 'unix/priv.c'; else $(CYGPATH_W) '$(srcdir)/unix/priv.c'; fi` unix/linux/src_tcpcryptd-priv.o: unix/linux/priv.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -MT unix/linux/src_tcpcryptd-priv.o -MD -MP -MF unix/linux/$(DEPDIR)/src_tcpcryptd-priv.Tpo -c -o unix/linux/src_tcpcryptd-priv.o `test -f 'unix/linux/priv.c' || echo '$(srcdir)/'`unix/linux/priv.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) unix/linux/$(DEPDIR)/src_tcpcryptd-priv.Tpo unix/linux/$(DEPDIR)/src_tcpcryptd-priv.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='unix/linux/priv.c' object='unix/linux/src_tcpcryptd-priv.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -c -o unix/linux/src_tcpcryptd-priv.o `test -f 'unix/linux/priv.c' || echo '$(srcdir)/'`unix/linux/priv.c unix/linux/src_tcpcryptd-priv.obj: unix/linux/priv.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -MT unix/linux/src_tcpcryptd-priv.obj -MD -MP -MF unix/linux/$(DEPDIR)/src_tcpcryptd-priv.Tpo -c -o unix/linux/src_tcpcryptd-priv.obj `if test -f 'unix/linux/priv.c'; then $(CYGPATH_W) 'unix/linux/priv.c'; else $(CYGPATH_W) '$(srcdir)/unix/linux/priv.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) unix/linux/$(DEPDIR)/src_tcpcryptd-priv.Tpo unix/linux/$(DEPDIR)/src_tcpcryptd-priv.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='unix/linux/priv.c' object='unix/linux/src_tcpcryptd-priv.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -c -o unix/linux/src_tcpcryptd-priv.obj `if test -f 'unix/linux/priv.c'; then $(CYGPATH_W) 'unix/linux/priv.c'; else $(CYGPATH_W) '$(srcdir)/unix/linux/priv.c'; fi` src/src_tcpcryptd-freebsd.o: src/freebsd.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -MT src/src_tcpcryptd-freebsd.o -MD -MP -MF src/$(DEPDIR)/src_tcpcryptd-freebsd.Tpo -c -o src/src_tcpcryptd-freebsd.o `test -f 'src/freebsd.c' || echo '$(srcdir)/'`src/freebsd.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_tcpcryptd-freebsd.Tpo src/$(DEPDIR)/src_tcpcryptd-freebsd.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/freebsd.c' object='src/src_tcpcryptd-freebsd.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -c -o src/src_tcpcryptd-freebsd.o `test -f 'src/freebsd.c' || echo '$(srcdir)/'`src/freebsd.c src/src_tcpcryptd-freebsd.obj: src/freebsd.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -MT src/src_tcpcryptd-freebsd.obj -MD -MP -MF src/$(DEPDIR)/src_tcpcryptd-freebsd.Tpo -c -o src/src_tcpcryptd-freebsd.obj `if test -f 'src/freebsd.c'; then $(CYGPATH_W) 'src/freebsd.c'; else $(CYGPATH_W) '$(srcdir)/src/freebsd.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_tcpcryptd-freebsd.Tpo src/$(DEPDIR)/src_tcpcryptd-freebsd.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/freebsd.c' object='src/src_tcpcryptd-freebsd.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -c -o src/src_tcpcryptd-freebsd.obj `if test -f 'src/freebsd.c'; then $(CYGPATH_W) 'src/freebsd.c'; else $(CYGPATH_W) '$(srcdir)/src/freebsd.c'; fi` src/src_tcpcryptd-linux.o: src/linux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -MT src/src_tcpcryptd-linux.o -MD -MP -MF src/$(DEPDIR)/src_tcpcryptd-linux.Tpo -c -o src/src_tcpcryptd-linux.o `test -f 'src/linux.c' || echo '$(srcdir)/'`src/linux.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_tcpcryptd-linux.Tpo src/$(DEPDIR)/src_tcpcryptd-linux.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/linux.c' object='src/src_tcpcryptd-linux.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -c -o src/src_tcpcryptd-linux.o `test -f 'src/linux.c' || echo '$(srcdir)/'`src/linux.c src/src_tcpcryptd-linux.obj: src/linux.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -MT src/src_tcpcryptd-linux.obj -MD -MP -MF src/$(DEPDIR)/src_tcpcryptd-linux.Tpo -c -o src/src_tcpcryptd-linux.obj `if test -f 'src/linux.c'; then $(CYGPATH_W) 'src/linux.c'; else $(CYGPATH_W) '$(srcdir)/src/linux.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_tcpcryptd-linux.Tpo src/$(DEPDIR)/src_tcpcryptd-linux.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/linux.c' object='src/src_tcpcryptd-linux.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -c -o src/src_tcpcryptd-linux.obj `if test -f 'src/linux.c'; then $(CYGPATH_W) 'src/linux.c'; else $(CYGPATH_W) '$(srcdir)/src/linux.c'; fi` src/src_tcpcryptd-mingw.o: src/mingw.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -MT src/src_tcpcryptd-mingw.o -MD -MP -MF src/$(DEPDIR)/src_tcpcryptd-mingw.Tpo -c -o src/src_tcpcryptd-mingw.o `test -f 'src/mingw.c' || echo '$(srcdir)/'`src/mingw.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_tcpcryptd-mingw.Tpo src/$(DEPDIR)/src_tcpcryptd-mingw.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/mingw.c' object='src/src_tcpcryptd-mingw.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -c -o src/src_tcpcryptd-mingw.o `test -f 'src/mingw.c' || echo '$(srcdir)/'`src/mingw.c src/src_tcpcryptd-mingw.obj: src/mingw.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -MT src/src_tcpcryptd-mingw.obj -MD -MP -MF src/$(DEPDIR)/src_tcpcryptd-mingw.Tpo -c -o src/src_tcpcryptd-mingw.obj `if test -f 'src/mingw.c'; then $(CYGPATH_W) 'src/mingw.c'; else $(CYGPATH_W) '$(srcdir)/src/mingw.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_tcpcryptd-mingw.Tpo src/$(DEPDIR)/src_tcpcryptd-mingw.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/mingw.c' object='src/src_tcpcryptd-mingw.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -c -o src/src_tcpcryptd-mingw.obj `if test -f 'src/mingw.c'; then $(CYGPATH_W) 'src/mingw.c'; else $(CYGPATH_W) '$(srcdir)/src/mingw.c'; fi` src/src_tcpcryptd-cygwin.o: src/cygwin.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -MT src/src_tcpcryptd-cygwin.o -MD -MP -MF src/$(DEPDIR)/src_tcpcryptd-cygwin.Tpo -c -o src/src_tcpcryptd-cygwin.o `test -f 'src/cygwin.c' || echo '$(srcdir)/'`src/cygwin.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_tcpcryptd-cygwin.Tpo src/$(DEPDIR)/src_tcpcryptd-cygwin.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/cygwin.c' object='src/src_tcpcryptd-cygwin.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -c -o src/src_tcpcryptd-cygwin.o `test -f 'src/cygwin.c' || echo '$(srcdir)/'`src/cygwin.c src/src_tcpcryptd-cygwin.obj: src/cygwin.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -MT src/src_tcpcryptd-cygwin.obj -MD -MP -MF src/$(DEPDIR)/src_tcpcryptd-cygwin.Tpo -c -o src/src_tcpcryptd-cygwin.obj `if test -f 'src/cygwin.c'; then $(CYGPATH_W) 'src/cygwin.c'; else $(CYGPATH_W) '$(srcdir)/src/cygwin.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_tcpcryptd-cygwin.Tpo src/$(DEPDIR)/src_tcpcryptd-cygwin.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/cygwin.c' object='src/src_tcpcryptd-cygwin.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -c -o src/src_tcpcryptd-cygwin.obj `if test -f 'src/cygwin.c'; then $(CYGPATH_W) 'src/cygwin.c'; else $(CYGPATH_W) '$(srcdir)/src/cygwin.c'; fi` src/src_tcpcryptd-unix.o: src/unix.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -MT src/src_tcpcryptd-unix.o -MD -MP -MF src/$(DEPDIR)/src_tcpcryptd-unix.Tpo -c -o src/src_tcpcryptd-unix.o `test -f 'src/unix.c' || echo '$(srcdir)/'`src/unix.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_tcpcryptd-unix.Tpo src/$(DEPDIR)/src_tcpcryptd-unix.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/unix.c' object='src/src_tcpcryptd-unix.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -c -o src/src_tcpcryptd-unix.o `test -f 'src/unix.c' || echo '$(srcdir)/'`src/unix.c src/src_tcpcryptd-unix.obj: src/unix.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -MT src/src_tcpcryptd-unix.obj -MD -MP -MF src/$(DEPDIR)/src_tcpcryptd-unix.Tpo -c -o src/src_tcpcryptd-unix.obj `if test -f 'src/unix.c'; then $(CYGPATH_W) 'src/unix.c'; else $(CYGPATH_W) '$(srcdir)/src/unix.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/src_tcpcryptd-unix.Tpo src/$(DEPDIR)/src_tcpcryptd-unix.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/unix.c' object='src/src_tcpcryptd-unix.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_tcpcryptd_CFLAGS) $(CFLAGS) -c -o src/src_tcpcryptd-unix.obj `if test -f 'src/unix.c'; then $(CYGPATH_W) 'src/unix.c'; else $(CYGPATH_W) '$(srcdir)/src/unix.c'; fi` util/util_tcnetstat-tcnetstat.o: util/tcnetstat.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(util_tcnetstat_CFLAGS) $(CFLAGS) -MT util/util_tcnetstat-tcnetstat.o -MD -MP -MF util/$(DEPDIR)/util_tcnetstat-tcnetstat.Tpo -c -o util/util_tcnetstat-tcnetstat.o `test -f 'util/tcnetstat.c' || echo '$(srcdir)/'`util/tcnetstat.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) util/$(DEPDIR)/util_tcnetstat-tcnetstat.Tpo util/$(DEPDIR)/util_tcnetstat-tcnetstat.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='util/tcnetstat.c' object='util/util_tcnetstat-tcnetstat.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(util_tcnetstat_CFLAGS) $(CFLAGS) -c -o util/util_tcnetstat-tcnetstat.o `test -f 'util/tcnetstat.c' || echo '$(srcdir)/'`util/tcnetstat.c util/util_tcnetstat-tcnetstat.obj: util/tcnetstat.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(util_tcnetstat_CFLAGS) $(CFLAGS) -MT util/util_tcnetstat-tcnetstat.obj -MD -MP -MF util/$(DEPDIR)/util_tcnetstat-tcnetstat.Tpo -c -o util/util_tcnetstat-tcnetstat.obj `if test -f 'util/tcnetstat.c'; then $(CYGPATH_W) 'util/tcnetstat.c'; else $(CYGPATH_W) '$(srcdir)/util/tcnetstat.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) util/$(DEPDIR)/util_tcnetstat-tcnetstat.Tpo util/$(DEPDIR)/util_tcnetstat-tcnetstat.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='util/tcnetstat.c' object='util/util_tcnetstat-tcnetstat.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(util_tcnetstat_CFLAGS) $(CFLAGS) -c -o util/util_tcnetstat-tcnetstat.obj `if test -f 'util/tcnetstat.c'; then $(CYGPATH_W) 'util/tcnetstat.c'; else $(CYGPATH_W) '$(srcdir)/util/tcnetstat.c'; fi` shared/util_tcnetstat-socket_address.o: shared/socket_address.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(util_tcnetstat_CFLAGS) $(CFLAGS) -MT shared/util_tcnetstat-socket_address.o -MD -MP -MF shared/$(DEPDIR)/util_tcnetstat-socket_address.Tpo -c -o shared/util_tcnetstat-socket_address.o `test -f 'shared/socket_address.c' || echo '$(srcdir)/'`shared/socket_address.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) shared/$(DEPDIR)/util_tcnetstat-socket_address.Tpo shared/$(DEPDIR)/util_tcnetstat-socket_address.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='shared/socket_address.c' object='shared/util_tcnetstat-socket_address.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(util_tcnetstat_CFLAGS) $(CFLAGS) -c -o shared/util_tcnetstat-socket_address.o `test -f 'shared/socket_address.c' || echo '$(srcdir)/'`shared/socket_address.c shared/util_tcnetstat-socket_address.obj: shared/socket_address.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(util_tcnetstat_CFLAGS) $(CFLAGS) -MT shared/util_tcnetstat-socket_address.obj -MD -MP -MF shared/$(DEPDIR)/util_tcnetstat-socket_address.Tpo -c -o shared/util_tcnetstat-socket_address.obj `if test -f 'shared/socket_address.c'; then $(CYGPATH_W) 'shared/socket_address.c'; else $(CYGPATH_W) '$(srcdir)/shared/socket_address.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) shared/$(DEPDIR)/util_tcnetstat-socket_address.Tpo shared/$(DEPDIR)/util_tcnetstat-socket_address.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='shared/socket_address.c' object='shared/util_tcnetstat-socket_address.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(util_tcnetstat_CFLAGS) $(CFLAGS) -c -o shared/util_tcnetstat-socket_address.obj `if test -f 'shared/socket_address.c'; then $(CYGPATH_W) 'shared/socket_address.c'; else $(CYGPATH_W) '$(srcdir)/shared/socket_address.c'; fi` util/util_tcs-tcs.o: util/tcs.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(util_tcs_CFLAGS) $(CFLAGS) -MT util/util_tcs-tcs.o -MD -MP -MF util/$(DEPDIR)/util_tcs-tcs.Tpo -c -o util/util_tcs-tcs.o `test -f 'util/tcs.c' || echo '$(srcdir)/'`util/tcs.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) util/$(DEPDIR)/util_tcs-tcs.Tpo util/$(DEPDIR)/util_tcs-tcs.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='util/tcs.c' object='util/util_tcs-tcs.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(util_tcs_CFLAGS) $(CFLAGS) -c -o util/util_tcs-tcs.o `test -f 'util/tcs.c' || echo '$(srcdir)/'`util/tcs.c util/util_tcs-tcs.obj: util/tcs.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(util_tcs_CFLAGS) $(CFLAGS) -MT util/util_tcs-tcs.obj -MD -MP -MF util/$(DEPDIR)/util_tcs-tcs.Tpo -c -o util/util_tcs-tcs.obj `if test -f 'util/tcs.c'; then $(CYGPATH_W) 'util/tcs.c'; else $(CYGPATH_W) '$(srcdir)/util/tcs.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) util/$(DEPDIR)/util_tcs-tcs.Tpo util/$(DEPDIR)/util_tcs-tcs.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='util/tcs.c' object='util/util_tcs-tcs.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(util_tcs_CFLAGS) $(CFLAGS) -c -o util/util_tcs-tcs.obj `if test -f 'util/tcs.c'; then $(CYGPATH_W) 'util/tcs.c'; else $(CYGPATH_W) '$(srcdir)/util/tcs.c'; fi` shared/util_tcs-socket_address.o: shared/socket_address.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(util_tcs_CFLAGS) $(CFLAGS) -MT shared/util_tcs-socket_address.o -MD -MP -MF shared/$(DEPDIR)/util_tcs-socket_address.Tpo -c -o shared/util_tcs-socket_address.o `test -f 'shared/socket_address.c' || echo '$(srcdir)/'`shared/socket_address.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) shared/$(DEPDIR)/util_tcs-socket_address.Tpo shared/$(DEPDIR)/util_tcs-socket_address.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='shared/socket_address.c' object='shared/util_tcs-socket_address.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(util_tcs_CFLAGS) $(CFLAGS) -c -o shared/util_tcs-socket_address.o `test -f 'shared/socket_address.c' || echo '$(srcdir)/'`shared/socket_address.c shared/util_tcs-socket_address.obj: shared/socket_address.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(util_tcs_CFLAGS) $(CFLAGS) -MT shared/util_tcs-socket_address.obj -MD -MP -MF shared/$(DEPDIR)/util_tcs-socket_address.Tpo -c -o shared/util_tcs-socket_address.obj `if test -f 'shared/socket_address.c'; then $(CYGPATH_W) 'shared/socket_address.c'; else $(CYGPATH_W) '$(srcdir)/shared/socket_address.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) shared/$(DEPDIR)/util_tcs-socket_address.Tpo shared/$(DEPDIR)/util_tcs-socket_address.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='shared/socket_address.c' object='shared/util_tcs-socket_address.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(util_tcs_CFLAGS) $(CFLAGS) -c -o shared/util_tcs-socket_address.obj `if test -f 'shared/socket_address.c'; then $(CYGPATH_W) 'shared/socket_address.c'; else $(CYGPATH_W) '$(srcdir)/shared/socket_address.c'; fi` win/util_tcs-priv.o: win/priv.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(util_tcs_CFLAGS) $(CFLAGS) -MT win/util_tcs-priv.o -MD -MP -MF win/$(DEPDIR)/util_tcs-priv.Tpo -c -o win/util_tcs-priv.o `test -f 'win/priv.c' || echo '$(srcdir)/'`win/priv.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) win/$(DEPDIR)/util_tcs-priv.Tpo win/$(DEPDIR)/util_tcs-priv.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='win/priv.c' object='win/util_tcs-priv.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(util_tcs_CFLAGS) $(CFLAGS) -c -o win/util_tcs-priv.o `test -f 'win/priv.c' || echo '$(srcdir)/'`win/priv.c win/util_tcs-priv.obj: win/priv.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(util_tcs_CFLAGS) $(CFLAGS) -MT win/util_tcs-priv.obj -MD -MP -MF win/$(DEPDIR)/util_tcs-priv.Tpo -c -o win/util_tcs-priv.obj `if test -f 'win/priv.c'; then $(CYGPATH_W) 'win/priv.c'; else $(CYGPATH_W) '$(srcdir)/win/priv.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) win/$(DEPDIR)/util_tcs-priv.Tpo win/$(DEPDIR)/util_tcs-priv.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='win/priv.c' object='win/util_tcs-priv.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(util_tcs_CFLAGS) $(CFLAGS) -c -o win/util_tcs-priv.obj `if test -f 'win/priv.c'; then $(CYGPATH_W) 'win/priv.c'; else $(CYGPATH_W) '$(srcdir)/win/priv.c'; fi` unix/util_tcs-priv.o: unix/priv.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(util_tcs_CFLAGS) $(CFLAGS) -MT unix/util_tcs-priv.o -MD -MP -MF unix/$(DEPDIR)/util_tcs-priv.Tpo -c -o unix/util_tcs-priv.o `test -f 'unix/priv.c' || echo '$(srcdir)/'`unix/priv.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) unix/$(DEPDIR)/util_tcs-priv.Tpo unix/$(DEPDIR)/util_tcs-priv.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='unix/priv.c' object='unix/util_tcs-priv.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(util_tcs_CFLAGS) $(CFLAGS) -c -o unix/util_tcs-priv.o `test -f 'unix/priv.c' || echo '$(srcdir)/'`unix/priv.c unix/util_tcs-priv.obj: unix/priv.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(util_tcs_CFLAGS) $(CFLAGS) -MT unix/util_tcs-priv.obj -MD -MP -MF unix/$(DEPDIR)/util_tcs-priv.Tpo -c -o unix/util_tcs-priv.obj `if test -f 'unix/priv.c'; then $(CYGPATH_W) 'unix/priv.c'; else $(CYGPATH_W) '$(srcdir)/unix/priv.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) unix/$(DEPDIR)/util_tcs-priv.Tpo unix/$(DEPDIR)/util_tcs-priv.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='unix/priv.c' object='unix/util_tcs-priv.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(util_tcs_CFLAGS) $(CFLAGS) -c -o unix/util_tcs-priv.obj `if test -f 'unix/priv.c'; then $(CYGPATH_W) 'unix/priv.c'; else $(CYGPATH_W) '$(srcdir)/unix/priv.c'; fi` unix/linux/util_tcs-priv.o: unix/linux/priv.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(util_tcs_CFLAGS) $(CFLAGS) -MT unix/linux/util_tcs-priv.o -MD -MP -MF unix/linux/$(DEPDIR)/util_tcs-priv.Tpo -c -o unix/linux/util_tcs-priv.o `test -f 'unix/linux/priv.c' || echo '$(srcdir)/'`unix/linux/priv.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) unix/linux/$(DEPDIR)/util_tcs-priv.Tpo unix/linux/$(DEPDIR)/util_tcs-priv.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='unix/linux/priv.c' object='unix/linux/util_tcs-priv.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(util_tcs_CFLAGS) $(CFLAGS) -c -o unix/linux/util_tcs-priv.o `test -f 'unix/linux/priv.c' || echo '$(srcdir)/'`unix/linux/priv.c unix/linux/util_tcs-priv.obj: unix/linux/priv.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(util_tcs_CFLAGS) $(CFLAGS) -MT unix/linux/util_tcs-priv.obj -MD -MP -MF unix/linux/$(DEPDIR)/util_tcs-priv.Tpo -c -o unix/linux/util_tcs-priv.obj `if test -f 'unix/linux/priv.c'; then $(CYGPATH_W) 'unix/linux/priv.c'; else $(CYGPATH_W) '$(srcdir)/unix/linux/priv.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) unix/linux/$(DEPDIR)/util_tcs-priv.Tpo unix/linux/$(DEPDIR)/util_tcs-priv.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='unix/linux/priv.c' object='unix/linux/util_tcs-priv.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(util_tcs_CFLAGS) $(CFLAGS) -c -o unix/linux/util_tcs-priv.obj `if test -f 'unix/linux/priv.c'; then $(CYGPATH_W) 'unix/linux/priv.c'; else $(CYGPATH_W) '$(srcdir)/unix/linux/priv.c'; fi` mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs -rm -rf lib/.libs lib/_libs -rm -rf shared/.libs shared/_libs -rm -rf src/.libs src/_libs -rm -rf tests/.libs tests/_libs -rm -rf util/.libs util/_libs distclean-libtool: -rm -f libtool config.lt install-man8: $(dist_man8_MANS) @$(NORMAL_INSTALL) @list1='$(dist_man8_MANS)'; \ list2=''; \ test -n "$(man8dir)" \ && test -n "`echo $$list1$$list2`" \ || exit 0; \ echo " $(MKDIR_P) '$(DESTDIR)$(man8dir)'"; \ $(MKDIR_P) "$(DESTDIR)$(man8dir)" || exit 1; \ { for i in $$list1; do echo "$$i"; done; \ if test -n "$$list2"; then \ for i in $$list2; do echo "$$i"; done \ | sed -n '/\.8[a-z]*$$/p'; \ fi; \ } | while read p; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; echo "$$p"; \ done | \ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ sed 'N;N;s,\n, ,g' | { \ list=; while read file base inst; do \ if test "$$base" = "$$inst"; then list="$$list $$file"; else \ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst" || exit $$?; \ fi; \ done; \ for i in $$list; do echo "$$i"; done | $(am__base_list) | \ while read files; do \ test -z "$$files" || { \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man8dir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(man8dir)" || exit $$?; }; \ done; } uninstall-man8: @$(NORMAL_UNINSTALL) @list='$(dist_man8_MANS)'; test -n "$(man8dir)" || exit 0; \ files=`{ for i in $$list; do echo "$$i"; done; \ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ dir='$(DESTDIR)$(man8dir)'; $(am__uninstall_files_from_dir) install-lib_libtcpcrypt_laHEADERS: $(lib_libtcpcrypt_la_HEADERS) @$(NORMAL_INSTALL) @list='$(lib_libtcpcrypt_la_HEADERS)'; test -n "$(lib_libtcpcrypt_ladir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(lib_libtcpcrypt_ladir)'"; \ $(MKDIR_P) "$(DESTDIR)$(lib_libtcpcrypt_ladir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(lib_libtcpcrypt_ladir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(lib_libtcpcrypt_ladir)" || exit $$?; \ done uninstall-lib_libtcpcrypt_laHEADERS: @$(NORMAL_UNINSTALL) @list='$(lib_libtcpcrypt_la_HEADERS)'; test -n "$(lib_libtcpcrypt_ladir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(lib_libtcpcrypt_ladir)'; $(am__uninstall_files_from_dir) ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ 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-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ 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" cscope: cscope.files test ! -s cscope.files \ || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) clean-cscope: -rm -f cscope.files cscope.files: clean-cscope cscopelist cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -rm -f cscope.out cscope.in.out cscope.po.out cscope.files 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 -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__post_remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 $(am__post_remove_distdir) dist-lzip: distdir tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz $(am__post_remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz $(am__post_remove_distdir) dist-tarZ: distdir @echo WARNING: "Support for distribution archives compressed with" \ "legacy program 'compress' is deprecated." >&2 @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__post_remove_distdir) dist-shar: distdir @echo WARNING: "Support for shar distribution archives is" \ "deprecated." >&2 @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__post_remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__post_remove_distdir) dist dist-all: $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' $(am__post_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.lz*) \ lzip -dc $(distdir).tar.lz | $(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 u+w $(distdir) mkdir $(distdir)/_build $(distdir)/_build/sub $(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/sub \ && ../../configure \ $(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \ --srcdir=../.. --prefix="$$dc_install_base" \ && $(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__post_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: @test -n '$(distuninstallcheck_dir)' || { \ echo 'ERROR: trying to run $@ with an empty' \ '$$(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ $(am__cd) '$(distuninstallcheck_dir)' || { \ echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ || { 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 $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) $(MAKE) $(AM_MAKEFLAGS) check-local check: check-am all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(MANS) $(HEADERS) \ config.h install-binPROGRAMS: install-libLTLIBRARIES installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man8dir)" "$(DESTDIR)$(lib_libtcpcrypt_ladir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi 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) -rm -f lib/$(DEPDIR)/$(am__dirstamp) -rm -f lib/$(am__dirstamp) -rm -f shared/$(DEPDIR)/$(am__dirstamp) -rm -f shared/$(am__dirstamp) -rm -f src/$(DEPDIR)/$(am__dirstamp) -rm -f src/$(am__dirstamp) -rm -f tests/$(DEPDIR)/$(am__dirstamp) -rm -f tests/$(am__dirstamp) -rm -f unix/$(DEPDIR)/$(am__dirstamp) -rm -f unix/$(am__dirstamp) -rm -f unix/linux/$(DEPDIR)/$(am__dirstamp) -rm -f unix/linux/$(am__dirstamp) -rm -f util/$(DEPDIR)/$(am__dirstamp) -rm -f util/$(am__dirstamp) -rm -f win/$(DEPDIR)/$(am__dirstamp) -rm -f win/$(am__dirstamp) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-checkPROGRAMS clean-generic \ clean-libLTLIBRARIES clean-libtool clean-local mostlyclean-am distclean: distclean-am -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf lib/$(DEPDIR) shared/$(DEPDIR) src/$(DEPDIR) tests/$(DEPDIR) unix/$(DEPDIR) unix/linux/$(DEPDIR) util/$(DEPDIR) win/$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-hdr distclean-libtool distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-lib_libtcpcrypt_laHEADERS install-man install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binPROGRAMS install-libLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-man8 install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: installcheck-local maintainer-clean: maintainer-clean-am -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -rf lib/$(DEPDIR) shared/$(DEPDIR) src/$(DEPDIR) tests/$(DEPDIR) unix/$(DEPDIR) unix/linux/$(DEPDIR) util/$(DEPDIR) win/$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-libLTLIBRARIES \ uninstall-lib_libtcpcrypt_laHEADERS uninstall-man uninstall-man: uninstall-man8 .MAKE: all check-am install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am am--refresh check check-am \ check-local clean clean-binPROGRAMS clean-checkPROGRAMS \ clean-cscope clean-generic clean-libLTLIBRARIES clean-libtool \ clean-local cscope cscopelist-am ctags ctags-am dist dist-all \ dist-bzip2 dist-gzip dist-lzip 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-binPROGRAMS 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-libLTLIBRARIES install-lib_libtcpcrypt_laHEADERS \ install-man install-man8 install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installcheck-local installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-am uninstall uninstall-am uninstall-binPROGRAMS \ uninstall-libLTLIBRARIES uninstall-lib_libtcpcrypt_laHEADERS \ uninstall-man uninstall-man8 .PRECIOUS: Makefile @MAINTAINER_MODE_TRUE@.man.md.man: @MAINTAINER_MODE_TRUE@ pandoc -s -w man $^ -o $@ # tests/ tests/package.m4: $(top_srcdir)/configure.ac { \ echo '# Signature of the current package.' && \ echo 'm4_define([AT_PACKAGE_NAME], [$(PACKAGE_NAME)])' && \ echo 'm4_define([AT_PACKAGE_TARNAME], [$(PACKAGE_TARNAME)])' && \ echo 'm4_define([AT_PACKAGE_VERSION], [$(PACKAGE_VERSION)])' && \ echo 'm4_define([AT_PACKAGE_STRING], [$(PACKAGE_STRING)])' && \ echo 'm4_define([AT_PACKAGE_BUGREPORT], [$(PACKAGE_BUGREPORT)])'; \ echo 'm4_define([AT_PACKAGE_URL], [$(PACKAGE_URL)])'; \ } >$@ tests/atconfig: config.status ./config.status $@ check-local: tests/atconfig tests/atlocal $(TESTSUITE) $(RUN_TESTSUITE) AUTOTEST_PATH='tests:src:util' installcheck-local: tests/atconfig tests/atlocal $(TESTSUITE) $(RUN_TESTSUITE) AUTOTEST_PATH='tests:$(bindir)' clean-local: test ! -f '$(TESTSUITE)' || $(RUN_TESTSUITE) --clean rm -f '$(TESTSUITE)' rm -f tests/testsuite.log rm -f tests/atconfig $(TESTSUITE): tests/testsuite.at tests/package.m4 $(ALL_TESTS) $(AUTOTEST) -I '$(srcdir)' -o $@.tmp $@.at mv $@.tmp $@ # 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: tcpcrypt-0.5/win/0000755000175200017520000000000012742073006013062 5ustar sorbosorbotcpcrypt-0.5/win/priv.c0000644000175200017520000000020112742073006014177 0ustar sorbosorbo#include void drop_privs(const char *dir, const char *name) { fprintf(stderr, "WARNING: Cannot drop privileges!"); } tcpcrypt-0.5/INSTALL-FreeBSD.markdown0000644000175200017520000000326012742073006016350 0ustar sorbosorboInstalling tcpcrypt on FreeBSD ============================== Dependencies ------------ Enable `ipfw` and divert sockets, if you haven't already (reboot required): echo 'firewall_enable="YES"' >> /etc/rc.conf echo 'firewall_type="open"' >> /etc/rc.conf echo 'ipfw_load="YES"' >> /boot/loader.conf echo 'ipdivert_load="YES"' >> /boot/loader.conf reboot Tcpcrypt also requires OpenSSL >= 0.9.8, which is provided by the `security/openssl` port. Compiling --------- cd tcpcrypt ./bootstrap.sh ./configure make Optional: running `make install` will install `libtcpcrypt` and tcpcrypt headers, for building apps that use tcpcrypt's session ID. Running ------- The launch script starts tcpcryptd and sets up your firewall to send port 80 and 7777 packets through tcpcrypt: ./launch_tcpcryptd.sh With tcpcryptd running, open [http://tcpcrypt.org/test.php](http://tcpcrypt.org/test.php) to try it out. See `launchers/freebsd` for a FreeBSD rc script that loads tcpcryptd on system startup. More info ---------- See the included `README.markdown` file for more ways to try out tcpcrypt and for troubleshooting help. Firewall setup ============== The included `launch_tcpcryptd.sh` script sets up reasonable firewall rules, but for more complex setups, add your own `divert` rules. For example, this will divert all TCP packets to tcpcryptd (on divert port 666), and it will be rule #1. ipfw 01 add divert 666 tcp from any to any It's important that tcpcrypt divert rules are high on the list since tcpcryptd modifies the packet quite a lot, including sequence numbers, so other items (e.g., natd) may get confused if tcpcryptd doesn't do its magic first. tcpcrypt-0.5/INSTALL-Windows.markdown0000644000175200017520000000513212742073006016570 0ustar sorbosorboInstalling tcpcrypt on Windows ============================== Compiling ========= Only cross-compiling for Windows on Linux (using mingw) is supported right now. You can almost certainly compile the Windows version on Windows itself, but we haven't done that yet (if you have, contact us). Using mingw, run the following commands to cross-compile tcpcrypt for Windows on a Linux host. cd tcpcrypt ./bootstrap.sh ./configure CFLAGS="-mwin32 -D__WIN32__ -I/home/sqs/src/mingw/OpenSSL-Win32/include" LDFLAGS=" -L/home/sqs/src/mingw/OpenSSL-Win32/ " --host=i586-mingw32msvc make Replace `` with the path to OpenSSL compiled for Windows. You can download binaries from [http://www.slproweb.com/products/Win32OpenSSL.html](http://www.slproweb.com/products/Win32OpenSSL.html) (use the 'Win32 OpenSSL v1.0.0a' link) and run the installer with Wine. Then rename `libeay32.dll` to `libcrypto.dll` in the root OpenSSL folder (that you just installed into). There's almost certainly a cleaner way to do this, but this is the quickest way. tcpcrypt depends on WinDivert: http://reqrypt.org/windivert.html You'll have to supply paths to header files and WinDivert.dll when compiling (modify CFLAGS and LDFLAGS as above). Optional: running `make install` will install `libtcpcrypt` and tcpcrypt headers, for building apps that use tcpcrypt's session ID. Installing ========== The Windows implementation of tcpcrypt has two components: the third-party kernel divert socket driver and the userland daemon. Installing the kernel divert socket driver ------------------------------------------ http://reqrypt.org/windivert.html Just place WinDivert32.sys and WinDirver64.sys in the directory of tcpcrypt. Getting the userland daemon --------------------------- If you followed the compilation steps above, you're done. Otherwise, download the pre-compiled tcpcryptd binary for Windows at [http://tcpcrypt.org/](http://tcpcrypt.org/). If you will use the launch script (below), move this file to tcpcrypt/user/tcpcrypt/tcpcryptd.exe, which is where the launch script expects it. Or you can just download the precompiled Windows GUI version at the link above. Running ======= After installing the divert socket driver, run the tcpcryptd daemon with the following command: ./launch_tcpcryptd.sh By default, this script tells tcpcryptd to use the first network interface listed in `ipconfig /all`. If you want to use a different interface, run tcpcryptd manually: tcpcrypt/tcpcryptd -x 0a:1b:2c:3d:4f:6a Test drive ========== Once tcpcryptd is running, see README.markdown for ways to try it out. tcpcrypt-0.5/bootstrap.sh0000755000175200017520000000021712742073006014641 0ustar sorbosorbo#!/bin/sh autoreconf --force --install --verbose #glibtoolize --force #aclocal #autoheader #automake --force-missing --add-missing #autoconf tcpcrypt-0.5/include/0000755000175200017520000000000012742073006013710 5ustar sorbosorbotcpcrypt-0.5/include/tcpcrypt/0000755000175200017520000000000012742073006015560 5ustar sorbosorbotcpcrypt-0.5/include/tcpcrypt/tcpcrypt.h0000644000175200017520000000215412742073006017603 0ustar sorbosorbo#ifndef __TCPCRYPT_TCPCRYPT_H__ #define __TCPCRYPT_TCPCRYPT_H__ #ifdef __cplusplus extern "C" { #pragma GCC visibility push(default) #endif #ifndef __WIN32__ #include #include #else #include #include /* TODO: needed? */ #endif #define TCPCRYPT_SID_MAXLEN 32 /* tcpcrypt get/setsockopt optnames */ enum { TCP_CRYPT_ENABLE = 0, TCP_CRYPT_CMODE, TCP_CRYPT_SESSID, TCP_CRYPT_RSA_KEY = 3, TCP_CRYPT_APP_SUPPORT = 15, /* non standard options */ TCP_CRYPT_RESET = 100, TCP_CRYPT_NOCACHE, TCP_CRYPT_NETSTAT, }; enum { TCPCRYPT_PARAM_CTLPATH = 0, }; extern void tcpcrypt_setparam(int param, void *val); extern int tcpcrypt_getsockopt(int s, int level, int optname, void *optval, socklen_t *optlen); extern int tcpcrypt_setsockopt(int s, int level, int optname, const void *optval, socklen_t optlen); extern char *tcpcrypt_getsessid(char *remote_ip, uint16_t remote_port, char *local_ip, uint16_t local_port); #ifdef __cplusplus } #pragma GCC visibility pop #endif #endif // __TCPCRYPT_TCPCRYPT_H__ tcpcrypt-0.5/configure.ac0000644000175200017520000001155312742073006014560 0ustar sorbosorbo# -*- Autoconf -*- AC_PREREQ([2.65]) AC_INIT([tcpcrypt], [0.5], [tcpcrypt-users@lists.stanford.edu], [tcpcrypt], [http://tcpcrypt.org]) AC_CONFIG_SRCDIR([src/tcpcryptd.c]) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_AUX_DIR(config) AC_CONFIG_MACRO_DIR([m4]) AM_INIT_AUTOMAKE([1.9 foreign dist-xz -Wall subdir-objects]) AM_MAINTAINER_MODE([disable]) AC_ARG_VAR([DIVERT_PORT], [Default divert port for tcpcryptd]) if test -n "$DIVERT_PORT"; then AC_DEFINE_UNQUOTED([TCPCRYPTD_DIVERT_PORT], [$DIVERT_PORT], [Default divert port for tcpcryptd]) else AC_DEFINE([TCPCRYPTD_DIVERT_PORT], 666, [Default divert port for tcpcryptd]) fi AC_ARG_VAR([CONTROL_SOCKET], [Default local control socket for tcpcryptd: unix-domain path or localhost port-number]) if test -n "$CONTROL_SOCKET"; then AC_DEFINE_UNQUOTED([TCPCRYPTD_CONTROL_SOCKET], [$CONTROL_SOCKET], [Default local control socket for tcpcryptd: unix-domain path or localhost port-number]) else AC_DEFINE([TCPCRYPTD_CONTROL_SOCKET], "/var/run/tcpcryptd.control", [Default local control socket for tcpcryptd: unix-domain path or localhost port-number]) fi AC_ARG_VAR([JAIL_DIR], [Default jail directory for tcpcryptd]) if test -n "$JAIL_DIR"; then AC_DEFINE_UNQUOTED([TCPCRYPTD_JAIL_DIR], ["$JAIL_DIR"], [Default jail directory for tcpcryptd]) else AC_DEFINE([TCPCRYPTD_JAIL_DIR], ["/var/run/tcpcryptd"], [Default jail directory for tcpcryptd]) fi AC_ARG_VAR([JAIL_USER], [Default jail username for tcpcryptd]) if test -n "$JAIL_USER"; then AC_DEFINE_UNQUOTED([TCPCRYPTD_JAIL_USER], ["$JAIL_USER"], [Default jail username for tcpcryptd]) else AC_DEFINE([TCPCRYPTD_JAIL_USER], ["tcpcryptd"], [Default jail username for tcpcryptd]) fi AC_ARG_VAR([TEST_SERVER], [Default network test server for tcpcryptd]) if test -n "$TEST_SERVER"; then AC_DEFINE_UNQUOTED([TCPCRYPTD_TEST_SERVER], ["$TEST_SERVER"], [Default network test server for tcpcryptd]) else AC_DEFINE([TCPCRYPTD_TEST_SERVER], ["check.tcpcrypt.org"], [Default network test server for tcpcryptd]) fi # Checks for programs. AC_PROG_CC AC_PROG_LN_S AM_PROG_AR LT_INIT AM_PROG_AS # Check platform AC_CANONICAL_HOST AC_MSG_CHECKING(OS) if [ echo $host_os | grep linux ]; then os_linux=1 else os_linux=0 fi AM_CONDITIONAL(OS_LINUX, [test "$os_linux" -eq 1]) AM_CONDITIONAL(OS_BSD, [echo $host_os | grep -E 'darwin|freebsd']) AM_CONDITIONAL(OS_MINGW, [echo $host_os | grep mingw]) AS_IF([test "$os_linux" -eq 1], [AC_DEFINE([OS_LINUX], 1, [Define to 1 if compiling for a Linux system])], [AC_DEFINE([OS_LINUX], 0, [Define to 1 if compiling for a Linux system])]) CFLAGS="$CFLAGS -Wall -Wno-deprecated-declarations" # DEBUG AC_ARG_ENABLE(debug, AS_HELP_STRING([--enable-debug], [enable tracing and debugging flags for all components]), [enable_debug="$enableval"], []) if test "${enable_debug}" = yes; then CXXFLAGS="$CXXFLAGS -DDEBUG -g" CFLAGS="$CFLAGS -DDEBUG -g" AC_SUBST(CXXFLAGS) AC_SUBST(CFLAGS) fi # ASM AC_MSG_CHECKING(whether to use asm checksum routine) AC_ARG_ENABLE(asm, AS_HELP_STRING([--enable-asm], [use asm checksum routine]), [enable_asm="$enableval"], [enable_asm="no"]) if test "${enable_asm}" = yes; then AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) AC_DEFINE(NO_ASM, 1, [No asm?]) fi AM_CONDITIONAL(NO_ASM, test x$enable_asm = xno) AM_CONDITIONAL(HAVE_NI, false) # libs AC_CHECK_LIB([cap], [cap_set_flag], [tcpcryptd_LDADD="-lcap $tcpcryptd_LDADD"]) AC_CHECK_LIB([crypto], [EVP_OpenInit], [crypto_LDADD="-lcrypto"]) AC_CHECK_LIB([netfilter_queue], [nfq_open], [tcpcryptd_LDADD="-lnetfilter_queue $tcpcryptd_LDADD"]) AC_CHECK_LIB([netfilter_conntrack], [nfct_open], [tcpcryptd_LDADD="-lnetfilter_conntrack $tcpcryptd_LDADD"]) AC_CHECK_LIB([nfnetlink], [nfnl_rcvbufsiz], [tcpcryptd_LDADD="-lnfnetlink $tcpcryptd_LDADD"]) AC_CHECK_LIB([pcap], [pcap_open_live], [tcpcryptd_LDADD="-lpcap $tcpcryptd_LDADD"]) AC_CHECK_LIB([pthread], [pthread_create]) AC_CHECK_LIB([wsock32], [bind]) # TODO: find symbol name AC_CHECK_LIB([iphlpapi], [GetAdaptersInfo]) # TODO: find symbol name AC_SUBST([tcpcryptd_LDADD]) AC_SUBST([crypto_LDADD]) # Checks for header files. AC_CHECK_HEADERS([arpa/inet.h fcntl.h limits.h netinet/in.h stddef.h stdint.h stdlib.h string.h strings.h sys/socket.h sys/time.h unistd.h]) # Checks for typedefs, structures, and compiler characteristics. AC_C_INLINE AC_TYPE_MODE_T AC_TYPE_SIZE_T AC_TYPE_SSIZE_T AC_TYPE_UINT16_T AC_TYPE_UINT32_T AC_TYPE_UINT64_T AC_TYPE_UINT8_T AC_CHECK_TYPES([ptrdiff_t]) # testing AC_CONFIG_TESTDIR([tests], [.]) AC_CONFIG_FILES([tests/atlocal]) # Checks for library functions. AC_FUNC_ALLOCA AC_FUNC_FORK AC_FUNC_MALLOC AC_CHECK_FUNCS([bzero clock_gettime gettimeofday inet_ntoa memmove memset select socket strchr strdup strtoul]) AC_CONFIG_FILES([Makefile src/tcpcrypt_version.h]) AC_OUTPUT tcpcrypt-0.5/contrib/0000755000175200017520000000000012742073006013725 5ustar sorbosorbotcpcrypt-0.5/contrib/rijndael-alg-fst.c0000644000175200017520000017426412742073006017232 0ustar sorbosorbo/** * rijndael-alg-fst.c * * @version 3.0 (December 2000) * * Optimised ANSI C code for the Rijndael cipher (now AES) * * @author Vincent Rijmen * @author Antoon Bosselaers * @author Paulo Barreto * * This code is hereby placed in the public domain. * * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ''AS IS'' AND ANY EXPRESS * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include #include #include "rijndael-alg-fst.h" /* Te0[x] = S [x].[02, 01, 01, 03]; Te1[x] = S [x].[03, 02, 01, 01]; Te2[x] = S [x].[01, 03, 02, 01]; Te3[x] = S [x].[01, 01, 03, 02]; Te4[x] = S [x].[01, 01, 01, 01]; Td0[x] = Si[x].[0e, 09, 0d, 0b]; Td1[x] = Si[x].[0b, 0e, 09, 0d]; Td2[x] = Si[x].[0d, 0b, 0e, 09]; Td3[x] = Si[x].[09, 0d, 0b, 0e]; Td4[x] = Si[x].[01, 01, 01, 01]; */ static const u32 Te0[256] = { 0xc66363a5U, 0xf87c7c84U, 0xee777799U, 0xf67b7b8dU, 0xfff2f20dU, 0xd66b6bbdU, 0xde6f6fb1U, 0x91c5c554U, 0x60303050U, 0x02010103U, 0xce6767a9U, 0x562b2b7dU, 0xe7fefe19U, 0xb5d7d762U, 0x4dababe6U, 0xec76769aU, 0x8fcaca45U, 0x1f82829dU, 0x89c9c940U, 0xfa7d7d87U, 0xeffafa15U, 0xb25959ebU, 0x8e4747c9U, 0xfbf0f00bU, 0x41adadecU, 0xb3d4d467U, 0x5fa2a2fdU, 0x45afafeaU, 0x239c9cbfU, 0x53a4a4f7U, 0xe4727296U, 0x9bc0c05bU, 0x75b7b7c2U, 0xe1fdfd1cU, 0x3d9393aeU, 0x4c26266aU, 0x6c36365aU, 0x7e3f3f41U, 0xf5f7f702U, 0x83cccc4fU, 0x6834345cU, 0x51a5a5f4U, 0xd1e5e534U, 0xf9f1f108U, 0xe2717193U, 0xabd8d873U, 0x62313153U, 0x2a15153fU, 0x0804040cU, 0x95c7c752U, 0x46232365U, 0x9dc3c35eU, 0x30181828U, 0x379696a1U, 0x0a05050fU, 0x2f9a9ab5U, 0x0e070709U, 0x24121236U, 0x1b80809bU, 0xdfe2e23dU, 0xcdebeb26U, 0x4e272769U, 0x7fb2b2cdU, 0xea75759fU, 0x1209091bU, 0x1d83839eU, 0x582c2c74U, 0x341a1a2eU, 0x361b1b2dU, 0xdc6e6eb2U, 0xb45a5aeeU, 0x5ba0a0fbU, 0xa45252f6U, 0x763b3b4dU, 0xb7d6d661U, 0x7db3b3ceU, 0x5229297bU, 0xdde3e33eU, 0x5e2f2f71U, 0x13848497U, 0xa65353f5U, 0xb9d1d168U, 0x00000000U, 0xc1eded2cU, 0x40202060U, 0xe3fcfc1fU, 0x79b1b1c8U, 0xb65b5bedU, 0xd46a6abeU, 0x8dcbcb46U, 0x67bebed9U, 0x7239394bU, 0x944a4adeU, 0x984c4cd4U, 0xb05858e8U, 0x85cfcf4aU, 0xbbd0d06bU, 0xc5efef2aU, 0x4faaaae5U, 0xedfbfb16U, 0x864343c5U, 0x9a4d4dd7U, 0x66333355U, 0x11858594U, 0x8a4545cfU, 0xe9f9f910U, 0x04020206U, 0xfe7f7f81U, 0xa05050f0U, 0x783c3c44U, 0x259f9fbaU, 0x4ba8a8e3U, 0xa25151f3U, 0x5da3a3feU, 0x804040c0U, 0x058f8f8aU, 0x3f9292adU, 0x219d9dbcU, 0x70383848U, 0xf1f5f504U, 0x63bcbcdfU, 0x77b6b6c1U, 0xafdada75U, 0x42212163U, 0x20101030U, 0xe5ffff1aU, 0xfdf3f30eU, 0xbfd2d26dU, 0x81cdcd4cU, 0x180c0c14U, 0x26131335U, 0xc3ecec2fU, 0xbe5f5fe1U, 0x359797a2U, 0x884444ccU, 0x2e171739U, 0x93c4c457U, 0x55a7a7f2U, 0xfc7e7e82U, 0x7a3d3d47U, 0xc86464acU, 0xba5d5de7U, 0x3219192bU, 0xe6737395U, 0xc06060a0U, 0x19818198U, 0x9e4f4fd1U, 0xa3dcdc7fU, 0x44222266U, 0x542a2a7eU, 0x3b9090abU, 0x0b888883U, 0x8c4646caU, 0xc7eeee29U, 0x6bb8b8d3U, 0x2814143cU, 0xa7dede79U, 0xbc5e5ee2U, 0x160b0b1dU, 0xaddbdb76U, 0xdbe0e03bU, 0x64323256U, 0x743a3a4eU, 0x140a0a1eU, 0x924949dbU, 0x0c06060aU, 0x4824246cU, 0xb85c5ce4U, 0x9fc2c25dU, 0xbdd3d36eU, 0x43acacefU, 0xc46262a6U, 0x399191a8U, 0x319595a4U, 0xd3e4e437U, 0xf279798bU, 0xd5e7e732U, 0x8bc8c843U, 0x6e373759U, 0xda6d6db7U, 0x018d8d8cU, 0xb1d5d564U, 0x9c4e4ed2U, 0x49a9a9e0U, 0xd86c6cb4U, 0xac5656faU, 0xf3f4f407U, 0xcfeaea25U, 0xca6565afU, 0xf47a7a8eU, 0x47aeaee9U, 0x10080818U, 0x6fbabad5U, 0xf0787888U, 0x4a25256fU, 0x5c2e2e72U, 0x381c1c24U, 0x57a6a6f1U, 0x73b4b4c7U, 0x97c6c651U, 0xcbe8e823U, 0xa1dddd7cU, 0xe874749cU, 0x3e1f1f21U, 0x964b4bddU, 0x61bdbddcU, 0x0d8b8b86U, 0x0f8a8a85U, 0xe0707090U, 0x7c3e3e42U, 0x71b5b5c4U, 0xcc6666aaU, 0x904848d8U, 0x06030305U, 0xf7f6f601U, 0x1c0e0e12U, 0xc26161a3U, 0x6a35355fU, 0xae5757f9U, 0x69b9b9d0U, 0x17868691U, 0x99c1c158U, 0x3a1d1d27U, 0x279e9eb9U, 0xd9e1e138U, 0xebf8f813U, 0x2b9898b3U, 0x22111133U, 0xd26969bbU, 0xa9d9d970U, 0x078e8e89U, 0x339494a7U, 0x2d9b9bb6U, 0x3c1e1e22U, 0x15878792U, 0xc9e9e920U, 0x87cece49U, 0xaa5555ffU, 0x50282878U, 0xa5dfdf7aU, 0x038c8c8fU, 0x59a1a1f8U, 0x09898980U, 0x1a0d0d17U, 0x65bfbfdaU, 0xd7e6e631U, 0x844242c6U, 0xd06868b8U, 0x824141c3U, 0x299999b0U, 0x5a2d2d77U, 0x1e0f0f11U, 0x7bb0b0cbU, 0xa85454fcU, 0x6dbbbbd6U, 0x2c16163aU, }; static const u32 Te1[256] = { 0xa5c66363U, 0x84f87c7cU, 0x99ee7777U, 0x8df67b7bU, 0x0dfff2f2U, 0xbdd66b6bU, 0xb1de6f6fU, 0x5491c5c5U, 0x50603030U, 0x03020101U, 0xa9ce6767U, 0x7d562b2bU, 0x19e7fefeU, 0x62b5d7d7U, 0xe64dababU, 0x9aec7676U, 0x458fcacaU, 0x9d1f8282U, 0x4089c9c9U, 0x87fa7d7dU, 0x15effafaU, 0xebb25959U, 0xc98e4747U, 0x0bfbf0f0U, 0xec41adadU, 0x67b3d4d4U, 0xfd5fa2a2U, 0xea45afafU, 0xbf239c9cU, 0xf753a4a4U, 0x96e47272U, 0x5b9bc0c0U, 0xc275b7b7U, 0x1ce1fdfdU, 0xae3d9393U, 0x6a4c2626U, 0x5a6c3636U, 0x417e3f3fU, 0x02f5f7f7U, 0x4f83ccccU, 0x5c683434U, 0xf451a5a5U, 0x34d1e5e5U, 0x08f9f1f1U, 0x93e27171U, 0x73abd8d8U, 0x53623131U, 0x3f2a1515U, 0x0c080404U, 0x5295c7c7U, 0x65462323U, 0x5e9dc3c3U, 0x28301818U, 0xa1379696U, 0x0f0a0505U, 0xb52f9a9aU, 0x090e0707U, 0x36241212U, 0x9b1b8080U, 0x3ddfe2e2U, 0x26cdebebU, 0x694e2727U, 0xcd7fb2b2U, 0x9fea7575U, 0x1b120909U, 0x9e1d8383U, 0x74582c2cU, 0x2e341a1aU, 0x2d361b1bU, 0xb2dc6e6eU, 0xeeb45a5aU, 0xfb5ba0a0U, 0xf6a45252U, 0x4d763b3bU, 0x61b7d6d6U, 0xce7db3b3U, 0x7b522929U, 0x3edde3e3U, 0x715e2f2fU, 0x97138484U, 0xf5a65353U, 0x68b9d1d1U, 0x00000000U, 0x2cc1ededU, 0x60402020U, 0x1fe3fcfcU, 0xc879b1b1U, 0xedb65b5bU, 0xbed46a6aU, 0x468dcbcbU, 0xd967bebeU, 0x4b723939U, 0xde944a4aU, 0xd4984c4cU, 0xe8b05858U, 0x4a85cfcfU, 0x6bbbd0d0U, 0x2ac5efefU, 0xe54faaaaU, 0x16edfbfbU, 0xc5864343U, 0xd79a4d4dU, 0x55663333U, 0x94118585U, 0xcf8a4545U, 0x10e9f9f9U, 0x06040202U, 0x81fe7f7fU, 0xf0a05050U, 0x44783c3cU, 0xba259f9fU, 0xe34ba8a8U, 0xf3a25151U, 0xfe5da3a3U, 0xc0804040U, 0x8a058f8fU, 0xad3f9292U, 0xbc219d9dU, 0x48703838U, 0x04f1f5f5U, 0xdf63bcbcU, 0xc177b6b6U, 0x75afdadaU, 0x63422121U, 0x30201010U, 0x1ae5ffffU, 0x0efdf3f3U, 0x6dbfd2d2U, 0x4c81cdcdU, 0x14180c0cU, 0x35261313U, 0x2fc3ececU, 0xe1be5f5fU, 0xa2359797U, 0xcc884444U, 0x392e1717U, 0x5793c4c4U, 0xf255a7a7U, 0x82fc7e7eU, 0x477a3d3dU, 0xacc86464U, 0xe7ba5d5dU, 0x2b321919U, 0x95e67373U, 0xa0c06060U, 0x98198181U, 0xd19e4f4fU, 0x7fa3dcdcU, 0x66442222U, 0x7e542a2aU, 0xab3b9090U, 0x830b8888U, 0xca8c4646U, 0x29c7eeeeU, 0xd36bb8b8U, 0x3c281414U, 0x79a7dedeU, 0xe2bc5e5eU, 0x1d160b0bU, 0x76addbdbU, 0x3bdbe0e0U, 0x56643232U, 0x4e743a3aU, 0x1e140a0aU, 0xdb924949U, 0x0a0c0606U, 0x6c482424U, 0xe4b85c5cU, 0x5d9fc2c2U, 0x6ebdd3d3U, 0xef43acacU, 0xa6c46262U, 0xa8399191U, 0xa4319595U, 0x37d3e4e4U, 0x8bf27979U, 0x32d5e7e7U, 0x438bc8c8U, 0x596e3737U, 0xb7da6d6dU, 0x8c018d8dU, 0x64b1d5d5U, 0xd29c4e4eU, 0xe049a9a9U, 0xb4d86c6cU, 0xfaac5656U, 0x07f3f4f4U, 0x25cfeaeaU, 0xafca6565U, 0x8ef47a7aU, 0xe947aeaeU, 0x18100808U, 0xd56fbabaU, 0x88f07878U, 0x6f4a2525U, 0x725c2e2eU, 0x24381c1cU, 0xf157a6a6U, 0xc773b4b4U, 0x5197c6c6U, 0x23cbe8e8U, 0x7ca1ddddU, 0x9ce87474U, 0x213e1f1fU, 0xdd964b4bU, 0xdc61bdbdU, 0x860d8b8bU, 0x850f8a8aU, 0x90e07070U, 0x427c3e3eU, 0xc471b5b5U, 0xaacc6666U, 0xd8904848U, 0x05060303U, 0x01f7f6f6U, 0x121c0e0eU, 0xa3c26161U, 0x5f6a3535U, 0xf9ae5757U, 0xd069b9b9U, 0x91178686U, 0x5899c1c1U, 0x273a1d1dU, 0xb9279e9eU, 0x38d9e1e1U, 0x13ebf8f8U, 0xb32b9898U, 0x33221111U, 0xbbd26969U, 0x70a9d9d9U, 0x89078e8eU, 0xa7339494U, 0xb62d9b9bU, 0x223c1e1eU, 0x92158787U, 0x20c9e9e9U, 0x4987ceceU, 0xffaa5555U, 0x78502828U, 0x7aa5dfdfU, 0x8f038c8cU, 0xf859a1a1U, 0x80098989U, 0x171a0d0dU, 0xda65bfbfU, 0x31d7e6e6U, 0xc6844242U, 0xb8d06868U, 0xc3824141U, 0xb0299999U, 0x775a2d2dU, 0x111e0f0fU, 0xcb7bb0b0U, 0xfca85454U, 0xd66dbbbbU, 0x3a2c1616U, }; static const u32 Te2[256] = { 0x63a5c663U, 0x7c84f87cU, 0x7799ee77U, 0x7b8df67bU, 0xf20dfff2U, 0x6bbdd66bU, 0x6fb1de6fU, 0xc55491c5U, 0x30506030U, 0x01030201U, 0x67a9ce67U, 0x2b7d562bU, 0xfe19e7feU, 0xd762b5d7U, 0xabe64dabU, 0x769aec76U, 0xca458fcaU, 0x829d1f82U, 0xc94089c9U, 0x7d87fa7dU, 0xfa15effaU, 0x59ebb259U, 0x47c98e47U, 0xf00bfbf0U, 0xadec41adU, 0xd467b3d4U, 0xa2fd5fa2U, 0xafea45afU, 0x9cbf239cU, 0xa4f753a4U, 0x7296e472U, 0xc05b9bc0U, 0xb7c275b7U, 0xfd1ce1fdU, 0x93ae3d93U, 0x266a4c26U, 0x365a6c36U, 0x3f417e3fU, 0xf702f5f7U, 0xcc4f83ccU, 0x345c6834U, 0xa5f451a5U, 0xe534d1e5U, 0xf108f9f1U, 0x7193e271U, 0xd873abd8U, 0x31536231U, 0x153f2a15U, 0x040c0804U, 0xc75295c7U, 0x23654623U, 0xc35e9dc3U, 0x18283018U, 0x96a13796U, 0x050f0a05U, 0x9ab52f9aU, 0x07090e07U, 0x12362412U, 0x809b1b80U, 0xe23ddfe2U, 0xeb26cdebU, 0x27694e27U, 0xb2cd7fb2U, 0x759fea75U, 0x091b1209U, 0x839e1d83U, 0x2c74582cU, 0x1a2e341aU, 0x1b2d361bU, 0x6eb2dc6eU, 0x5aeeb45aU, 0xa0fb5ba0U, 0x52f6a452U, 0x3b4d763bU, 0xd661b7d6U, 0xb3ce7db3U, 0x297b5229U, 0xe33edde3U, 0x2f715e2fU, 0x84971384U, 0x53f5a653U, 0xd168b9d1U, 0x00000000U, 0xed2cc1edU, 0x20604020U, 0xfc1fe3fcU, 0xb1c879b1U, 0x5bedb65bU, 0x6abed46aU, 0xcb468dcbU, 0xbed967beU, 0x394b7239U, 0x4ade944aU, 0x4cd4984cU, 0x58e8b058U, 0xcf4a85cfU, 0xd06bbbd0U, 0xef2ac5efU, 0xaae54faaU, 0xfb16edfbU, 0x43c58643U, 0x4dd79a4dU, 0x33556633U, 0x85941185U, 0x45cf8a45U, 0xf910e9f9U, 0x02060402U, 0x7f81fe7fU, 0x50f0a050U, 0x3c44783cU, 0x9fba259fU, 0xa8e34ba8U, 0x51f3a251U, 0xa3fe5da3U, 0x40c08040U, 0x8f8a058fU, 0x92ad3f92U, 0x9dbc219dU, 0x38487038U, 0xf504f1f5U, 0xbcdf63bcU, 0xb6c177b6U, 0xda75afdaU, 0x21634221U, 0x10302010U, 0xff1ae5ffU, 0xf30efdf3U, 0xd26dbfd2U, 0xcd4c81cdU, 0x0c14180cU, 0x13352613U, 0xec2fc3ecU, 0x5fe1be5fU, 0x97a23597U, 0x44cc8844U, 0x17392e17U, 0xc45793c4U, 0xa7f255a7U, 0x7e82fc7eU, 0x3d477a3dU, 0x64acc864U, 0x5de7ba5dU, 0x192b3219U, 0x7395e673U, 0x60a0c060U, 0x81981981U, 0x4fd19e4fU, 0xdc7fa3dcU, 0x22664422U, 0x2a7e542aU, 0x90ab3b90U, 0x88830b88U, 0x46ca8c46U, 0xee29c7eeU, 0xb8d36bb8U, 0x143c2814U, 0xde79a7deU, 0x5ee2bc5eU, 0x0b1d160bU, 0xdb76addbU, 0xe03bdbe0U, 0x32566432U, 0x3a4e743aU, 0x0a1e140aU, 0x49db9249U, 0x060a0c06U, 0x246c4824U, 0x5ce4b85cU, 0xc25d9fc2U, 0xd36ebdd3U, 0xacef43acU, 0x62a6c462U, 0x91a83991U, 0x95a43195U, 0xe437d3e4U, 0x798bf279U, 0xe732d5e7U, 0xc8438bc8U, 0x37596e37U, 0x6db7da6dU, 0x8d8c018dU, 0xd564b1d5U, 0x4ed29c4eU, 0xa9e049a9U, 0x6cb4d86cU, 0x56faac56U, 0xf407f3f4U, 0xea25cfeaU, 0x65afca65U, 0x7a8ef47aU, 0xaee947aeU, 0x08181008U, 0xbad56fbaU, 0x7888f078U, 0x256f4a25U, 0x2e725c2eU, 0x1c24381cU, 0xa6f157a6U, 0xb4c773b4U, 0xc65197c6U, 0xe823cbe8U, 0xdd7ca1ddU, 0x749ce874U, 0x1f213e1fU, 0x4bdd964bU, 0xbddc61bdU, 0x8b860d8bU, 0x8a850f8aU, 0x7090e070U, 0x3e427c3eU, 0xb5c471b5U, 0x66aacc66U, 0x48d89048U, 0x03050603U, 0xf601f7f6U, 0x0e121c0eU, 0x61a3c261U, 0x355f6a35U, 0x57f9ae57U, 0xb9d069b9U, 0x86911786U, 0xc15899c1U, 0x1d273a1dU, 0x9eb9279eU, 0xe138d9e1U, 0xf813ebf8U, 0x98b32b98U, 0x11332211U, 0x69bbd269U, 0xd970a9d9U, 0x8e89078eU, 0x94a73394U, 0x9bb62d9bU, 0x1e223c1eU, 0x87921587U, 0xe920c9e9U, 0xce4987ceU, 0x55ffaa55U, 0x28785028U, 0xdf7aa5dfU, 0x8c8f038cU, 0xa1f859a1U, 0x89800989U, 0x0d171a0dU, 0xbfda65bfU, 0xe631d7e6U, 0x42c68442U, 0x68b8d068U, 0x41c38241U, 0x99b02999U, 0x2d775a2dU, 0x0f111e0fU, 0xb0cb7bb0U, 0x54fca854U, 0xbbd66dbbU, 0x163a2c16U, }; static const u32 Te3[256] = { 0x6363a5c6U, 0x7c7c84f8U, 0x777799eeU, 0x7b7b8df6U, 0xf2f20dffU, 0x6b6bbdd6U, 0x6f6fb1deU, 0xc5c55491U, 0x30305060U, 0x01010302U, 0x6767a9ceU, 0x2b2b7d56U, 0xfefe19e7U, 0xd7d762b5U, 0xababe64dU, 0x76769aecU, 0xcaca458fU, 0x82829d1fU, 0xc9c94089U, 0x7d7d87faU, 0xfafa15efU, 0x5959ebb2U, 0x4747c98eU, 0xf0f00bfbU, 0xadadec41U, 0xd4d467b3U, 0xa2a2fd5fU, 0xafafea45U, 0x9c9cbf23U, 0xa4a4f753U, 0x727296e4U, 0xc0c05b9bU, 0xb7b7c275U, 0xfdfd1ce1U, 0x9393ae3dU, 0x26266a4cU, 0x36365a6cU, 0x3f3f417eU, 0xf7f702f5U, 0xcccc4f83U, 0x34345c68U, 0xa5a5f451U, 0xe5e534d1U, 0xf1f108f9U, 0x717193e2U, 0xd8d873abU, 0x31315362U, 0x15153f2aU, 0x04040c08U, 0xc7c75295U, 0x23236546U, 0xc3c35e9dU, 0x18182830U, 0x9696a137U, 0x05050f0aU, 0x9a9ab52fU, 0x0707090eU, 0x12123624U, 0x80809b1bU, 0xe2e23ddfU, 0xebeb26cdU, 0x2727694eU, 0xb2b2cd7fU, 0x75759feaU, 0x09091b12U, 0x83839e1dU, 0x2c2c7458U, 0x1a1a2e34U, 0x1b1b2d36U, 0x6e6eb2dcU, 0x5a5aeeb4U, 0xa0a0fb5bU, 0x5252f6a4U, 0x3b3b4d76U, 0xd6d661b7U, 0xb3b3ce7dU, 0x29297b52U, 0xe3e33eddU, 0x2f2f715eU, 0x84849713U, 0x5353f5a6U, 0xd1d168b9U, 0x00000000U, 0xeded2cc1U, 0x20206040U, 0xfcfc1fe3U, 0xb1b1c879U, 0x5b5bedb6U, 0x6a6abed4U, 0xcbcb468dU, 0xbebed967U, 0x39394b72U, 0x4a4ade94U, 0x4c4cd498U, 0x5858e8b0U, 0xcfcf4a85U, 0xd0d06bbbU, 0xefef2ac5U, 0xaaaae54fU, 0xfbfb16edU, 0x4343c586U, 0x4d4dd79aU, 0x33335566U, 0x85859411U, 0x4545cf8aU, 0xf9f910e9U, 0x02020604U, 0x7f7f81feU, 0x5050f0a0U, 0x3c3c4478U, 0x9f9fba25U, 0xa8a8e34bU, 0x5151f3a2U, 0xa3a3fe5dU, 0x4040c080U, 0x8f8f8a05U, 0x9292ad3fU, 0x9d9dbc21U, 0x38384870U, 0xf5f504f1U, 0xbcbcdf63U, 0xb6b6c177U, 0xdada75afU, 0x21216342U, 0x10103020U, 0xffff1ae5U, 0xf3f30efdU, 0xd2d26dbfU, 0xcdcd4c81U, 0x0c0c1418U, 0x13133526U, 0xecec2fc3U, 0x5f5fe1beU, 0x9797a235U, 0x4444cc88U, 0x1717392eU, 0xc4c45793U, 0xa7a7f255U, 0x7e7e82fcU, 0x3d3d477aU, 0x6464acc8U, 0x5d5de7baU, 0x19192b32U, 0x737395e6U, 0x6060a0c0U, 0x81819819U, 0x4f4fd19eU, 0xdcdc7fa3U, 0x22226644U, 0x2a2a7e54U, 0x9090ab3bU, 0x8888830bU, 0x4646ca8cU, 0xeeee29c7U, 0xb8b8d36bU, 0x14143c28U, 0xdede79a7U, 0x5e5ee2bcU, 0x0b0b1d16U, 0xdbdb76adU, 0xe0e03bdbU, 0x32325664U, 0x3a3a4e74U, 0x0a0a1e14U, 0x4949db92U, 0x06060a0cU, 0x24246c48U, 0x5c5ce4b8U, 0xc2c25d9fU, 0xd3d36ebdU, 0xacacef43U, 0x6262a6c4U, 0x9191a839U, 0x9595a431U, 0xe4e437d3U, 0x79798bf2U, 0xe7e732d5U, 0xc8c8438bU, 0x3737596eU, 0x6d6db7daU, 0x8d8d8c01U, 0xd5d564b1U, 0x4e4ed29cU, 0xa9a9e049U, 0x6c6cb4d8U, 0x5656faacU, 0xf4f407f3U, 0xeaea25cfU, 0x6565afcaU, 0x7a7a8ef4U, 0xaeaee947U, 0x08081810U, 0xbabad56fU, 0x787888f0U, 0x25256f4aU, 0x2e2e725cU, 0x1c1c2438U, 0xa6a6f157U, 0xb4b4c773U, 0xc6c65197U, 0xe8e823cbU, 0xdddd7ca1U, 0x74749ce8U, 0x1f1f213eU, 0x4b4bdd96U, 0xbdbddc61U, 0x8b8b860dU, 0x8a8a850fU, 0x707090e0U, 0x3e3e427cU, 0xb5b5c471U, 0x6666aaccU, 0x4848d890U, 0x03030506U, 0xf6f601f7U, 0x0e0e121cU, 0x6161a3c2U, 0x35355f6aU, 0x5757f9aeU, 0xb9b9d069U, 0x86869117U, 0xc1c15899U, 0x1d1d273aU, 0x9e9eb927U, 0xe1e138d9U, 0xf8f813ebU, 0x9898b32bU, 0x11113322U, 0x6969bbd2U, 0xd9d970a9U, 0x8e8e8907U, 0x9494a733U, 0x9b9bb62dU, 0x1e1e223cU, 0x87879215U, 0xe9e920c9U, 0xcece4987U, 0x5555ffaaU, 0x28287850U, 0xdfdf7aa5U, 0x8c8c8f03U, 0xa1a1f859U, 0x89898009U, 0x0d0d171aU, 0xbfbfda65U, 0xe6e631d7U, 0x4242c684U, 0x6868b8d0U, 0x4141c382U, 0x9999b029U, 0x2d2d775aU, 0x0f0f111eU, 0xb0b0cb7bU, 0x5454fca8U, 0xbbbbd66dU, 0x16163a2cU, }; static const u32 Te4[256] = { 0x63636363U, 0x7c7c7c7cU, 0x77777777U, 0x7b7b7b7bU, 0xf2f2f2f2U, 0x6b6b6b6bU, 0x6f6f6f6fU, 0xc5c5c5c5U, 0x30303030U, 0x01010101U, 0x67676767U, 0x2b2b2b2bU, 0xfefefefeU, 0xd7d7d7d7U, 0xababababU, 0x76767676U, 0xcacacacaU, 0x82828282U, 0xc9c9c9c9U, 0x7d7d7d7dU, 0xfafafafaU, 0x59595959U, 0x47474747U, 0xf0f0f0f0U, 0xadadadadU, 0xd4d4d4d4U, 0xa2a2a2a2U, 0xafafafafU, 0x9c9c9c9cU, 0xa4a4a4a4U, 0x72727272U, 0xc0c0c0c0U, 0xb7b7b7b7U, 0xfdfdfdfdU, 0x93939393U, 0x26262626U, 0x36363636U, 0x3f3f3f3fU, 0xf7f7f7f7U, 0xccccccccU, 0x34343434U, 0xa5a5a5a5U, 0xe5e5e5e5U, 0xf1f1f1f1U, 0x71717171U, 0xd8d8d8d8U, 0x31313131U, 0x15151515U, 0x04040404U, 0xc7c7c7c7U, 0x23232323U, 0xc3c3c3c3U, 0x18181818U, 0x96969696U, 0x05050505U, 0x9a9a9a9aU, 0x07070707U, 0x12121212U, 0x80808080U, 0xe2e2e2e2U, 0xebebebebU, 0x27272727U, 0xb2b2b2b2U, 0x75757575U, 0x09090909U, 0x83838383U, 0x2c2c2c2cU, 0x1a1a1a1aU, 0x1b1b1b1bU, 0x6e6e6e6eU, 0x5a5a5a5aU, 0xa0a0a0a0U, 0x52525252U, 0x3b3b3b3bU, 0xd6d6d6d6U, 0xb3b3b3b3U, 0x29292929U, 0xe3e3e3e3U, 0x2f2f2f2fU, 0x84848484U, 0x53535353U, 0xd1d1d1d1U, 0x00000000U, 0xededededU, 0x20202020U, 0xfcfcfcfcU, 0xb1b1b1b1U, 0x5b5b5b5bU, 0x6a6a6a6aU, 0xcbcbcbcbU, 0xbebebebeU, 0x39393939U, 0x4a4a4a4aU, 0x4c4c4c4cU, 0x58585858U, 0xcfcfcfcfU, 0xd0d0d0d0U, 0xefefefefU, 0xaaaaaaaaU, 0xfbfbfbfbU, 0x43434343U, 0x4d4d4d4dU, 0x33333333U, 0x85858585U, 0x45454545U, 0xf9f9f9f9U, 0x02020202U, 0x7f7f7f7fU, 0x50505050U, 0x3c3c3c3cU, 0x9f9f9f9fU, 0xa8a8a8a8U, 0x51515151U, 0xa3a3a3a3U, 0x40404040U, 0x8f8f8f8fU, 0x92929292U, 0x9d9d9d9dU, 0x38383838U, 0xf5f5f5f5U, 0xbcbcbcbcU, 0xb6b6b6b6U, 0xdadadadaU, 0x21212121U, 0x10101010U, 0xffffffffU, 0xf3f3f3f3U, 0xd2d2d2d2U, 0xcdcdcdcdU, 0x0c0c0c0cU, 0x13131313U, 0xececececU, 0x5f5f5f5fU, 0x97979797U, 0x44444444U, 0x17171717U, 0xc4c4c4c4U, 0xa7a7a7a7U, 0x7e7e7e7eU, 0x3d3d3d3dU, 0x64646464U, 0x5d5d5d5dU, 0x19191919U, 0x73737373U, 0x60606060U, 0x81818181U, 0x4f4f4f4fU, 0xdcdcdcdcU, 0x22222222U, 0x2a2a2a2aU, 0x90909090U, 0x88888888U, 0x46464646U, 0xeeeeeeeeU, 0xb8b8b8b8U, 0x14141414U, 0xdedededeU, 0x5e5e5e5eU, 0x0b0b0b0bU, 0xdbdbdbdbU, 0xe0e0e0e0U, 0x32323232U, 0x3a3a3a3aU, 0x0a0a0a0aU, 0x49494949U, 0x06060606U, 0x24242424U, 0x5c5c5c5cU, 0xc2c2c2c2U, 0xd3d3d3d3U, 0xacacacacU, 0x62626262U, 0x91919191U, 0x95959595U, 0xe4e4e4e4U, 0x79797979U, 0xe7e7e7e7U, 0xc8c8c8c8U, 0x37373737U, 0x6d6d6d6dU, 0x8d8d8d8dU, 0xd5d5d5d5U, 0x4e4e4e4eU, 0xa9a9a9a9U, 0x6c6c6c6cU, 0x56565656U, 0xf4f4f4f4U, 0xeaeaeaeaU, 0x65656565U, 0x7a7a7a7aU, 0xaeaeaeaeU, 0x08080808U, 0xbabababaU, 0x78787878U, 0x25252525U, 0x2e2e2e2eU, 0x1c1c1c1cU, 0xa6a6a6a6U, 0xb4b4b4b4U, 0xc6c6c6c6U, 0xe8e8e8e8U, 0xddddddddU, 0x74747474U, 0x1f1f1f1fU, 0x4b4b4b4bU, 0xbdbdbdbdU, 0x8b8b8b8bU, 0x8a8a8a8aU, 0x70707070U, 0x3e3e3e3eU, 0xb5b5b5b5U, 0x66666666U, 0x48484848U, 0x03030303U, 0xf6f6f6f6U, 0x0e0e0e0eU, 0x61616161U, 0x35353535U, 0x57575757U, 0xb9b9b9b9U, 0x86868686U, 0xc1c1c1c1U, 0x1d1d1d1dU, 0x9e9e9e9eU, 0xe1e1e1e1U, 0xf8f8f8f8U, 0x98989898U, 0x11111111U, 0x69696969U, 0xd9d9d9d9U, 0x8e8e8e8eU, 0x94949494U, 0x9b9b9b9bU, 0x1e1e1e1eU, 0x87878787U, 0xe9e9e9e9U, 0xcecececeU, 0x55555555U, 0x28282828U, 0xdfdfdfdfU, 0x8c8c8c8cU, 0xa1a1a1a1U, 0x89898989U, 0x0d0d0d0dU, 0xbfbfbfbfU, 0xe6e6e6e6U, 0x42424242U, 0x68686868U, 0x41414141U, 0x99999999U, 0x2d2d2d2dU, 0x0f0f0f0fU, 0xb0b0b0b0U, 0x54545454U, 0xbbbbbbbbU, 0x16161616U, }; static const u32 Td0[256] = { 0x51f4a750U, 0x7e416553U, 0x1a17a4c3U, 0x3a275e96U, 0x3bab6bcbU, 0x1f9d45f1U, 0xacfa58abU, 0x4be30393U, 0x2030fa55U, 0xad766df6U, 0x88cc7691U, 0xf5024c25U, 0x4fe5d7fcU, 0xc52acbd7U, 0x26354480U, 0xb562a38fU, 0xdeb15a49U, 0x25ba1b67U, 0x45ea0e98U, 0x5dfec0e1U, 0xc32f7502U, 0x814cf012U, 0x8d4697a3U, 0x6bd3f9c6U, 0x038f5fe7U, 0x15929c95U, 0xbf6d7aebU, 0x955259daU, 0xd4be832dU, 0x587421d3U, 0x49e06929U, 0x8ec9c844U, 0x75c2896aU, 0xf48e7978U, 0x99583e6bU, 0x27b971ddU, 0xbee14fb6U, 0xf088ad17U, 0xc920ac66U, 0x7dce3ab4U, 0x63df4a18U, 0xe51a3182U, 0x97513360U, 0x62537f45U, 0xb16477e0U, 0xbb6bae84U, 0xfe81a01cU, 0xf9082b94U, 0x70486858U, 0x8f45fd19U, 0x94de6c87U, 0x527bf8b7U, 0xab73d323U, 0x724b02e2U, 0xe31f8f57U, 0x6655ab2aU, 0xb2eb2807U, 0x2fb5c203U, 0x86c57b9aU, 0xd33708a5U, 0x302887f2U, 0x23bfa5b2U, 0x02036abaU, 0xed16825cU, 0x8acf1c2bU, 0xa779b492U, 0xf307f2f0U, 0x4e69e2a1U, 0x65daf4cdU, 0x0605bed5U, 0xd134621fU, 0xc4a6fe8aU, 0x342e539dU, 0xa2f355a0U, 0x058ae132U, 0xa4f6eb75U, 0x0b83ec39U, 0x4060efaaU, 0x5e719f06U, 0xbd6e1051U, 0x3e218af9U, 0x96dd063dU, 0xdd3e05aeU, 0x4de6bd46U, 0x91548db5U, 0x71c45d05U, 0x0406d46fU, 0x605015ffU, 0x1998fb24U, 0xd6bde997U, 0x894043ccU, 0x67d99e77U, 0xb0e842bdU, 0x07898b88U, 0xe7195b38U, 0x79c8eedbU, 0xa17c0a47U, 0x7c420fe9U, 0xf8841ec9U, 0x00000000U, 0x09808683U, 0x322bed48U, 0x1e1170acU, 0x6c5a724eU, 0xfd0efffbU, 0x0f853856U, 0x3daed51eU, 0x362d3927U, 0x0a0fd964U, 0x685ca621U, 0x9b5b54d1U, 0x24362e3aU, 0x0c0a67b1U, 0x9357e70fU, 0xb4ee96d2U, 0x1b9b919eU, 0x80c0c54fU, 0x61dc20a2U, 0x5a774b69U, 0x1c121a16U, 0xe293ba0aU, 0xc0a02ae5U, 0x3c22e043U, 0x121b171dU, 0x0e090d0bU, 0xf28bc7adU, 0x2db6a8b9U, 0x141ea9c8U, 0x57f11985U, 0xaf75074cU, 0xee99ddbbU, 0xa37f60fdU, 0xf701269fU, 0x5c72f5bcU, 0x44663bc5U, 0x5bfb7e34U, 0x8b432976U, 0xcb23c6dcU, 0xb6edfc68U, 0xb8e4f163U, 0xd731dccaU, 0x42638510U, 0x13972240U, 0x84c61120U, 0x854a247dU, 0xd2bb3df8U, 0xaef93211U, 0xc729a16dU, 0x1d9e2f4bU, 0xdcb230f3U, 0x0d8652ecU, 0x77c1e3d0U, 0x2bb3166cU, 0xa970b999U, 0x119448faU, 0x47e96422U, 0xa8fc8cc4U, 0xa0f03f1aU, 0x567d2cd8U, 0x223390efU, 0x87494ec7U, 0xd938d1c1U, 0x8ccaa2feU, 0x98d40b36U, 0xa6f581cfU, 0xa57ade28U, 0xdab78e26U, 0x3fadbfa4U, 0x2c3a9de4U, 0x5078920dU, 0x6a5fcc9bU, 0x547e4662U, 0xf68d13c2U, 0x90d8b8e8U, 0x2e39f75eU, 0x82c3aff5U, 0x9f5d80beU, 0x69d0937cU, 0x6fd52da9U, 0xcf2512b3U, 0xc8ac993bU, 0x10187da7U, 0xe89c636eU, 0xdb3bbb7bU, 0xcd267809U, 0x6e5918f4U, 0xec9ab701U, 0x834f9aa8U, 0xe6956e65U, 0xaaffe67eU, 0x21bccf08U, 0xef15e8e6U, 0xbae79bd9U, 0x4a6f36ceU, 0xea9f09d4U, 0x29b07cd6U, 0x31a4b2afU, 0x2a3f2331U, 0xc6a59430U, 0x35a266c0U, 0x744ebc37U, 0xfc82caa6U, 0xe090d0b0U, 0x33a7d815U, 0xf104984aU, 0x41ecdaf7U, 0x7fcd500eU, 0x1791f62fU, 0x764dd68dU, 0x43efb04dU, 0xccaa4d54U, 0xe49604dfU, 0x9ed1b5e3U, 0x4c6a881bU, 0xc12c1fb8U, 0x4665517fU, 0x9d5eea04U, 0x018c355dU, 0xfa877473U, 0xfb0b412eU, 0xb3671d5aU, 0x92dbd252U, 0xe9105633U, 0x6dd64713U, 0x9ad7618cU, 0x37a10c7aU, 0x59f8148eU, 0xeb133c89U, 0xcea927eeU, 0xb761c935U, 0xe11ce5edU, 0x7a47b13cU, 0x9cd2df59U, 0x55f2733fU, 0x1814ce79U, 0x73c737bfU, 0x53f7cdeaU, 0x5ffdaa5bU, 0xdf3d6f14U, 0x7844db86U, 0xcaaff381U, 0xb968c43eU, 0x3824342cU, 0xc2a3405fU, 0x161dc372U, 0xbce2250cU, 0x283c498bU, 0xff0d9541U, 0x39a80171U, 0x080cb3deU, 0xd8b4e49cU, 0x6456c190U, 0x7bcb8461U, 0xd532b670U, 0x486c5c74U, 0xd0b85742U, }; static const u32 Td1[256] = { 0x5051f4a7U, 0x537e4165U, 0xc31a17a4U, 0x963a275eU, 0xcb3bab6bU, 0xf11f9d45U, 0xabacfa58U, 0x934be303U, 0x552030faU, 0xf6ad766dU, 0x9188cc76U, 0x25f5024cU, 0xfc4fe5d7U, 0xd7c52acbU, 0x80263544U, 0x8fb562a3U, 0x49deb15aU, 0x6725ba1bU, 0x9845ea0eU, 0xe15dfec0U, 0x02c32f75U, 0x12814cf0U, 0xa38d4697U, 0xc66bd3f9U, 0xe7038f5fU, 0x9515929cU, 0xebbf6d7aU, 0xda955259U, 0x2dd4be83U, 0xd3587421U, 0x2949e069U, 0x448ec9c8U, 0x6a75c289U, 0x78f48e79U, 0x6b99583eU, 0xdd27b971U, 0xb6bee14fU, 0x17f088adU, 0x66c920acU, 0xb47dce3aU, 0x1863df4aU, 0x82e51a31U, 0x60975133U, 0x4562537fU, 0xe0b16477U, 0x84bb6baeU, 0x1cfe81a0U, 0x94f9082bU, 0x58704868U, 0x198f45fdU, 0x8794de6cU, 0xb7527bf8U, 0x23ab73d3U, 0xe2724b02U, 0x57e31f8fU, 0x2a6655abU, 0x07b2eb28U, 0x032fb5c2U, 0x9a86c57bU, 0xa5d33708U, 0xf2302887U, 0xb223bfa5U, 0xba02036aU, 0x5ced1682U, 0x2b8acf1cU, 0x92a779b4U, 0xf0f307f2U, 0xa14e69e2U, 0xcd65daf4U, 0xd50605beU, 0x1fd13462U, 0x8ac4a6feU, 0x9d342e53U, 0xa0a2f355U, 0x32058ae1U, 0x75a4f6ebU, 0x390b83ecU, 0xaa4060efU, 0x065e719fU, 0x51bd6e10U, 0xf93e218aU, 0x3d96dd06U, 0xaedd3e05U, 0x464de6bdU, 0xb591548dU, 0x0571c45dU, 0x6f0406d4U, 0xff605015U, 0x241998fbU, 0x97d6bde9U, 0xcc894043U, 0x7767d99eU, 0xbdb0e842U, 0x8807898bU, 0x38e7195bU, 0xdb79c8eeU, 0x47a17c0aU, 0xe97c420fU, 0xc9f8841eU, 0x00000000U, 0x83098086U, 0x48322bedU, 0xac1e1170U, 0x4e6c5a72U, 0xfbfd0effU, 0x560f8538U, 0x1e3daed5U, 0x27362d39U, 0x640a0fd9U, 0x21685ca6U, 0xd19b5b54U, 0x3a24362eU, 0xb10c0a67U, 0x0f9357e7U, 0xd2b4ee96U, 0x9e1b9b91U, 0x4f80c0c5U, 0xa261dc20U, 0x695a774bU, 0x161c121aU, 0x0ae293baU, 0xe5c0a02aU, 0x433c22e0U, 0x1d121b17U, 0x0b0e090dU, 0xadf28bc7U, 0xb92db6a8U, 0xc8141ea9U, 0x8557f119U, 0x4caf7507U, 0xbbee99ddU, 0xfda37f60U, 0x9ff70126U, 0xbc5c72f5U, 0xc544663bU, 0x345bfb7eU, 0x768b4329U, 0xdccb23c6U, 0x68b6edfcU, 0x63b8e4f1U, 0xcad731dcU, 0x10426385U, 0x40139722U, 0x2084c611U, 0x7d854a24U, 0xf8d2bb3dU, 0x11aef932U, 0x6dc729a1U, 0x4b1d9e2fU, 0xf3dcb230U, 0xec0d8652U, 0xd077c1e3U, 0x6c2bb316U, 0x99a970b9U, 0xfa119448U, 0x2247e964U, 0xc4a8fc8cU, 0x1aa0f03fU, 0xd8567d2cU, 0xef223390U, 0xc787494eU, 0xc1d938d1U, 0xfe8ccaa2U, 0x3698d40bU, 0xcfa6f581U, 0x28a57adeU, 0x26dab78eU, 0xa43fadbfU, 0xe42c3a9dU, 0x0d507892U, 0x9b6a5fccU, 0x62547e46U, 0xc2f68d13U, 0xe890d8b8U, 0x5e2e39f7U, 0xf582c3afU, 0xbe9f5d80U, 0x7c69d093U, 0xa96fd52dU, 0xb3cf2512U, 0x3bc8ac99U, 0xa710187dU, 0x6ee89c63U, 0x7bdb3bbbU, 0x09cd2678U, 0xf46e5918U, 0x01ec9ab7U, 0xa8834f9aU, 0x65e6956eU, 0x7eaaffe6U, 0x0821bccfU, 0xe6ef15e8U, 0xd9bae79bU, 0xce4a6f36U, 0xd4ea9f09U, 0xd629b07cU, 0xaf31a4b2U, 0x312a3f23U, 0x30c6a594U, 0xc035a266U, 0x37744ebcU, 0xa6fc82caU, 0xb0e090d0U, 0x1533a7d8U, 0x4af10498U, 0xf741ecdaU, 0x0e7fcd50U, 0x2f1791f6U, 0x8d764dd6U, 0x4d43efb0U, 0x54ccaa4dU, 0xdfe49604U, 0xe39ed1b5U, 0x1b4c6a88U, 0xb8c12c1fU, 0x7f466551U, 0x049d5eeaU, 0x5d018c35U, 0x73fa8774U, 0x2efb0b41U, 0x5ab3671dU, 0x5292dbd2U, 0x33e91056U, 0x136dd647U, 0x8c9ad761U, 0x7a37a10cU, 0x8e59f814U, 0x89eb133cU, 0xeecea927U, 0x35b761c9U, 0xede11ce5U, 0x3c7a47b1U, 0x599cd2dfU, 0x3f55f273U, 0x791814ceU, 0xbf73c737U, 0xea53f7cdU, 0x5b5ffdaaU, 0x14df3d6fU, 0x867844dbU, 0x81caaff3U, 0x3eb968c4U, 0x2c382434U, 0x5fc2a340U, 0x72161dc3U, 0x0cbce225U, 0x8b283c49U, 0x41ff0d95U, 0x7139a801U, 0xde080cb3U, 0x9cd8b4e4U, 0x906456c1U, 0x617bcb84U, 0x70d532b6U, 0x74486c5cU, 0x42d0b857U, }; static const u32 Td2[256] = { 0xa75051f4U, 0x65537e41U, 0xa4c31a17U, 0x5e963a27U, 0x6bcb3babU, 0x45f11f9dU, 0x58abacfaU, 0x03934be3U, 0xfa552030U, 0x6df6ad76U, 0x769188ccU, 0x4c25f502U, 0xd7fc4fe5U, 0xcbd7c52aU, 0x44802635U, 0xa38fb562U, 0x5a49deb1U, 0x1b6725baU, 0x0e9845eaU, 0xc0e15dfeU, 0x7502c32fU, 0xf012814cU, 0x97a38d46U, 0xf9c66bd3U, 0x5fe7038fU, 0x9c951592U, 0x7aebbf6dU, 0x59da9552U, 0x832dd4beU, 0x21d35874U, 0x692949e0U, 0xc8448ec9U, 0x896a75c2U, 0x7978f48eU, 0x3e6b9958U, 0x71dd27b9U, 0x4fb6bee1U, 0xad17f088U, 0xac66c920U, 0x3ab47dceU, 0x4a1863dfU, 0x3182e51aU, 0x33609751U, 0x7f456253U, 0x77e0b164U, 0xae84bb6bU, 0xa01cfe81U, 0x2b94f908U, 0x68587048U, 0xfd198f45U, 0x6c8794deU, 0xf8b7527bU, 0xd323ab73U, 0x02e2724bU, 0x8f57e31fU, 0xab2a6655U, 0x2807b2ebU, 0xc2032fb5U, 0x7b9a86c5U, 0x08a5d337U, 0x87f23028U, 0xa5b223bfU, 0x6aba0203U, 0x825ced16U, 0x1c2b8acfU, 0xb492a779U, 0xf2f0f307U, 0xe2a14e69U, 0xf4cd65daU, 0xbed50605U, 0x621fd134U, 0xfe8ac4a6U, 0x539d342eU, 0x55a0a2f3U, 0xe132058aU, 0xeb75a4f6U, 0xec390b83U, 0xefaa4060U, 0x9f065e71U, 0x1051bd6eU, 0x8af93e21U, 0x063d96ddU, 0x05aedd3eU, 0xbd464de6U, 0x8db59154U, 0x5d0571c4U, 0xd46f0406U, 0x15ff6050U, 0xfb241998U, 0xe997d6bdU, 0x43cc8940U, 0x9e7767d9U, 0x42bdb0e8U, 0x8b880789U, 0x5b38e719U, 0xeedb79c8U, 0x0a47a17cU, 0x0fe97c42U, 0x1ec9f884U, 0x00000000U, 0x86830980U, 0xed48322bU, 0x70ac1e11U, 0x724e6c5aU, 0xfffbfd0eU, 0x38560f85U, 0xd51e3daeU, 0x3927362dU, 0xd9640a0fU, 0xa621685cU, 0x54d19b5bU, 0x2e3a2436U, 0x67b10c0aU, 0xe70f9357U, 0x96d2b4eeU, 0x919e1b9bU, 0xc54f80c0U, 0x20a261dcU, 0x4b695a77U, 0x1a161c12U, 0xba0ae293U, 0x2ae5c0a0U, 0xe0433c22U, 0x171d121bU, 0x0d0b0e09U, 0xc7adf28bU, 0xa8b92db6U, 0xa9c8141eU, 0x198557f1U, 0x074caf75U, 0xddbbee99U, 0x60fda37fU, 0x269ff701U, 0xf5bc5c72U, 0x3bc54466U, 0x7e345bfbU, 0x29768b43U, 0xc6dccb23U, 0xfc68b6edU, 0xf163b8e4U, 0xdccad731U, 0x85104263U, 0x22401397U, 0x112084c6U, 0x247d854aU, 0x3df8d2bbU, 0x3211aef9U, 0xa16dc729U, 0x2f4b1d9eU, 0x30f3dcb2U, 0x52ec0d86U, 0xe3d077c1U, 0x166c2bb3U, 0xb999a970U, 0x48fa1194U, 0x642247e9U, 0x8cc4a8fcU, 0x3f1aa0f0U, 0x2cd8567dU, 0x90ef2233U, 0x4ec78749U, 0xd1c1d938U, 0xa2fe8ccaU, 0x0b3698d4U, 0x81cfa6f5U, 0xde28a57aU, 0x8e26dab7U, 0xbfa43fadU, 0x9de42c3aU, 0x920d5078U, 0xcc9b6a5fU, 0x4662547eU, 0x13c2f68dU, 0xb8e890d8U, 0xf75e2e39U, 0xaff582c3U, 0x80be9f5dU, 0x937c69d0U, 0x2da96fd5U, 0x12b3cf25U, 0x993bc8acU, 0x7da71018U, 0x636ee89cU, 0xbb7bdb3bU, 0x7809cd26U, 0x18f46e59U, 0xb701ec9aU, 0x9aa8834fU, 0x6e65e695U, 0xe67eaaffU, 0xcf0821bcU, 0xe8e6ef15U, 0x9bd9bae7U, 0x36ce4a6fU, 0x09d4ea9fU, 0x7cd629b0U, 0xb2af31a4U, 0x23312a3fU, 0x9430c6a5U, 0x66c035a2U, 0xbc37744eU, 0xcaa6fc82U, 0xd0b0e090U, 0xd81533a7U, 0x984af104U, 0xdaf741ecU, 0x500e7fcdU, 0xf62f1791U, 0xd68d764dU, 0xb04d43efU, 0x4d54ccaaU, 0x04dfe496U, 0xb5e39ed1U, 0x881b4c6aU, 0x1fb8c12cU, 0x517f4665U, 0xea049d5eU, 0x355d018cU, 0x7473fa87U, 0x412efb0bU, 0x1d5ab367U, 0xd25292dbU, 0x5633e910U, 0x47136dd6U, 0x618c9ad7U, 0x0c7a37a1U, 0x148e59f8U, 0x3c89eb13U, 0x27eecea9U, 0xc935b761U, 0xe5ede11cU, 0xb13c7a47U, 0xdf599cd2U, 0x733f55f2U, 0xce791814U, 0x37bf73c7U, 0xcdea53f7U, 0xaa5b5ffdU, 0x6f14df3dU, 0xdb867844U, 0xf381caafU, 0xc43eb968U, 0x342c3824U, 0x405fc2a3U, 0xc372161dU, 0x250cbce2U, 0x498b283cU, 0x9541ff0dU, 0x017139a8U, 0xb3de080cU, 0xe49cd8b4U, 0xc1906456U, 0x84617bcbU, 0xb670d532U, 0x5c74486cU, 0x5742d0b8U, }; static const u32 Td3[256] = { 0xf4a75051U, 0x4165537eU, 0x17a4c31aU, 0x275e963aU, 0xab6bcb3bU, 0x9d45f11fU, 0xfa58abacU, 0xe303934bU, 0x30fa5520U, 0x766df6adU, 0xcc769188U, 0x024c25f5U, 0xe5d7fc4fU, 0x2acbd7c5U, 0x35448026U, 0x62a38fb5U, 0xb15a49deU, 0xba1b6725U, 0xea0e9845U, 0xfec0e15dU, 0x2f7502c3U, 0x4cf01281U, 0x4697a38dU, 0xd3f9c66bU, 0x8f5fe703U, 0x929c9515U, 0x6d7aebbfU, 0x5259da95U, 0xbe832dd4U, 0x7421d358U, 0xe0692949U, 0xc9c8448eU, 0xc2896a75U, 0x8e7978f4U, 0x583e6b99U, 0xb971dd27U, 0xe14fb6beU, 0x88ad17f0U, 0x20ac66c9U, 0xce3ab47dU, 0xdf4a1863U, 0x1a3182e5U, 0x51336097U, 0x537f4562U, 0x6477e0b1U, 0x6bae84bbU, 0x81a01cfeU, 0x082b94f9U, 0x48685870U, 0x45fd198fU, 0xde6c8794U, 0x7bf8b752U, 0x73d323abU, 0x4b02e272U, 0x1f8f57e3U, 0x55ab2a66U, 0xeb2807b2U, 0xb5c2032fU, 0xc57b9a86U, 0x3708a5d3U, 0x2887f230U, 0xbfa5b223U, 0x036aba02U, 0x16825cedU, 0xcf1c2b8aU, 0x79b492a7U, 0x07f2f0f3U, 0x69e2a14eU, 0xdaf4cd65U, 0x05bed506U, 0x34621fd1U, 0xa6fe8ac4U, 0x2e539d34U, 0xf355a0a2U, 0x8ae13205U, 0xf6eb75a4U, 0x83ec390bU, 0x60efaa40U, 0x719f065eU, 0x6e1051bdU, 0x218af93eU, 0xdd063d96U, 0x3e05aeddU, 0xe6bd464dU, 0x548db591U, 0xc45d0571U, 0x06d46f04U, 0x5015ff60U, 0x98fb2419U, 0xbde997d6U, 0x4043cc89U, 0xd99e7767U, 0xe842bdb0U, 0x898b8807U, 0x195b38e7U, 0xc8eedb79U, 0x7c0a47a1U, 0x420fe97cU, 0x841ec9f8U, 0x00000000U, 0x80868309U, 0x2bed4832U, 0x1170ac1eU, 0x5a724e6cU, 0x0efffbfdU, 0x8538560fU, 0xaed51e3dU, 0x2d392736U, 0x0fd9640aU, 0x5ca62168U, 0x5b54d19bU, 0x362e3a24U, 0x0a67b10cU, 0x57e70f93U, 0xee96d2b4U, 0x9b919e1bU, 0xc0c54f80U, 0xdc20a261U, 0x774b695aU, 0x121a161cU, 0x93ba0ae2U, 0xa02ae5c0U, 0x22e0433cU, 0x1b171d12U, 0x090d0b0eU, 0x8bc7adf2U, 0xb6a8b92dU, 0x1ea9c814U, 0xf1198557U, 0x75074cafU, 0x99ddbbeeU, 0x7f60fda3U, 0x01269ff7U, 0x72f5bc5cU, 0x663bc544U, 0xfb7e345bU, 0x4329768bU, 0x23c6dccbU, 0xedfc68b6U, 0xe4f163b8U, 0x31dccad7U, 0x63851042U, 0x97224013U, 0xc6112084U, 0x4a247d85U, 0xbb3df8d2U, 0xf93211aeU, 0x29a16dc7U, 0x9e2f4b1dU, 0xb230f3dcU, 0x8652ec0dU, 0xc1e3d077U, 0xb3166c2bU, 0x70b999a9U, 0x9448fa11U, 0xe9642247U, 0xfc8cc4a8U, 0xf03f1aa0U, 0x7d2cd856U, 0x3390ef22U, 0x494ec787U, 0x38d1c1d9U, 0xcaa2fe8cU, 0xd40b3698U, 0xf581cfa6U, 0x7ade28a5U, 0xb78e26daU, 0xadbfa43fU, 0x3a9de42cU, 0x78920d50U, 0x5fcc9b6aU, 0x7e466254U, 0x8d13c2f6U, 0xd8b8e890U, 0x39f75e2eU, 0xc3aff582U, 0x5d80be9fU, 0xd0937c69U, 0xd52da96fU, 0x2512b3cfU, 0xac993bc8U, 0x187da710U, 0x9c636ee8U, 0x3bbb7bdbU, 0x267809cdU, 0x5918f46eU, 0x9ab701ecU, 0x4f9aa883U, 0x956e65e6U, 0xffe67eaaU, 0xbccf0821U, 0x15e8e6efU, 0xe79bd9baU, 0x6f36ce4aU, 0x9f09d4eaU, 0xb07cd629U, 0xa4b2af31U, 0x3f23312aU, 0xa59430c6U, 0xa266c035U, 0x4ebc3774U, 0x82caa6fcU, 0x90d0b0e0U, 0xa7d81533U, 0x04984af1U, 0xecdaf741U, 0xcd500e7fU, 0x91f62f17U, 0x4dd68d76U, 0xefb04d43U, 0xaa4d54ccU, 0x9604dfe4U, 0xd1b5e39eU, 0x6a881b4cU, 0x2c1fb8c1U, 0x65517f46U, 0x5eea049dU, 0x8c355d01U, 0x877473faU, 0x0b412efbU, 0x671d5ab3U, 0xdbd25292U, 0x105633e9U, 0xd647136dU, 0xd7618c9aU, 0xa10c7a37U, 0xf8148e59U, 0x133c89ebU, 0xa927eeceU, 0x61c935b7U, 0x1ce5ede1U, 0x47b13c7aU, 0xd2df599cU, 0xf2733f55U, 0x14ce7918U, 0xc737bf73U, 0xf7cdea53U, 0xfdaa5b5fU, 0x3d6f14dfU, 0x44db8678U, 0xaff381caU, 0x68c43eb9U, 0x24342c38U, 0xa3405fc2U, 0x1dc37216U, 0xe2250cbcU, 0x3c498b28U, 0x0d9541ffU, 0xa8017139U, 0x0cb3de08U, 0xb4e49cd8U, 0x56c19064U, 0xcb84617bU, 0x32b670d5U, 0x6c5c7448U, 0xb85742d0U, }; static const u32 Td4[256] = { 0x52525252U, 0x09090909U, 0x6a6a6a6aU, 0xd5d5d5d5U, 0x30303030U, 0x36363636U, 0xa5a5a5a5U, 0x38383838U, 0xbfbfbfbfU, 0x40404040U, 0xa3a3a3a3U, 0x9e9e9e9eU, 0x81818181U, 0xf3f3f3f3U, 0xd7d7d7d7U, 0xfbfbfbfbU, 0x7c7c7c7cU, 0xe3e3e3e3U, 0x39393939U, 0x82828282U, 0x9b9b9b9bU, 0x2f2f2f2fU, 0xffffffffU, 0x87878787U, 0x34343434U, 0x8e8e8e8eU, 0x43434343U, 0x44444444U, 0xc4c4c4c4U, 0xdedededeU, 0xe9e9e9e9U, 0xcbcbcbcbU, 0x54545454U, 0x7b7b7b7bU, 0x94949494U, 0x32323232U, 0xa6a6a6a6U, 0xc2c2c2c2U, 0x23232323U, 0x3d3d3d3dU, 0xeeeeeeeeU, 0x4c4c4c4cU, 0x95959595U, 0x0b0b0b0bU, 0x42424242U, 0xfafafafaU, 0xc3c3c3c3U, 0x4e4e4e4eU, 0x08080808U, 0x2e2e2e2eU, 0xa1a1a1a1U, 0x66666666U, 0x28282828U, 0xd9d9d9d9U, 0x24242424U, 0xb2b2b2b2U, 0x76767676U, 0x5b5b5b5bU, 0xa2a2a2a2U, 0x49494949U, 0x6d6d6d6dU, 0x8b8b8b8bU, 0xd1d1d1d1U, 0x25252525U, 0x72727272U, 0xf8f8f8f8U, 0xf6f6f6f6U, 0x64646464U, 0x86868686U, 0x68686868U, 0x98989898U, 0x16161616U, 0xd4d4d4d4U, 0xa4a4a4a4U, 0x5c5c5c5cU, 0xccccccccU, 0x5d5d5d5dU, 0x65656565U, 0xb6b6b6b6U, 0x92929292U, 0x6c6c6c6cU, 0x70707070U, 0x48484848U, 0x50505050U, 0xfdfdfdfdU, 0xededededU, 0xb9b9b9b9U, 0xdadadadaU, 0x5e5e5e5eU, 0x15151515U, 0x46464646U, 0x57575757U, 0xa7a7a7a7U, 0x8d8d8d8dU, 0x9d9d9d9dU, 0x84848484U, 0x90909090U, 0xd8d8d8d8U, 0xababababU, 0x00000000U, 0x8c8c8c8cU, 0xbcbcbcbcU, 0xd3d3d3d3U, 0x0a0a0a0aU, 0xf7f7f7f7U, 0xe4e4e4e4U, 0x58585858U, 0x05050505U, 0xb8b8b8b8U, 0xb3b3b3b3U, 0x45454545U, 0x06060606U, 0xd0d0d0d0U, 0x2c2c2c2cU, 0x1e1e1e1eU, 0x8f8f8f8fU, 0xcacacacaU, 0x3f3f3f3fU, 0x0f0f0f0fU, 0x02020202U, 0xc1c1c1c1U, 0xafafafafU, 0xbdbdbdbdU, 0x03030303U, 0x01010101U, 0x13131313U, 0x8a8a8a8aU, 0x6b6b6b6bU, 0x3a3a3a3aU, 0x91919191U, 0x11111111U, 0x41414141U, 0x4f4f4f4fU, 0x67676767U, 0xdcdcdcdcU, 0xeaeaeaeaU, 0x97979797U, 0xf2f2f2f2U, 0xcfcfcfcfU, 0xcecececeU, 0xf0f0f0f0U, 0xb4b4b4b4U, 0xe6e6e6e6U, 0x73737373U, 0x96969696U, 0xacacacacU, 0x74747474U, 0x22222222U, 0xe7e7e7e7U, 0xadadadadU, 0x35353535U, 0x85858585U, 0xe2e2e2e2U, 0xf9f9f9f9U, 0x37373737U, 0xe8e8e8e8U, 0x1c1c1c1cU, 0x75757575U, 0xdfdfdfdfU, 0x6e6e6e6eU, 0x47474747U, 0xf1f1f1f1U, 0x1a1a1a1aU, 0x71717171U, 0x1d1d1d1dU, 0x29292929U, 0xc5c5c5c5U, 0x89898989U, 0x6f6f6f6fU, 0xb7b7b7b7U, 0x62626262U, 0x0e0e0e0eU, 0xaaaaaaaaU, 0x18181818U, 0xbebebebeU, 0x1b1b1b1bU, 0xfcfcfcfcU, 0x56565656U, 0x3e3e3e3eU, 0x4b4b4b4bU, 0xc6c6c6c6U, 0xd2d2d2d2U, 0x79797979U, 0x20202020U, 0x9a9a9a9aU, 0xdbdbdbdbU, 0xc0c0c0c0U, 0xfefefefeU, 0x78787878U, 0xcdcdcdcdU, 0x5a5a5a5aU, 0xf4f4f4f4U, 0x1f1f1f1fU, 0xddddddddU, 0xa8a8a8a8U, 0x33333333U, 0x88888888U, 0x07070707U, 0xc7c7c7c7U, 0x31313131U, 0xb1b1b1b1U, 0x12121212U, 0x10101010U, 0x59595959U, 0x27272727U, 0x80808080U, 0xececececU, 0x5f5f5f5fU, 0x60606060U, 0x51515151U, 0x7f7f7f7fU, 0xa9a9a9a9U, 0x19191919U, 0xb5b5b5b5U, 0x4a4a4a4aU, 0x0d0d0d0dU, 0x2d2d2d2dU, 0xe5e5e5e5U, 0x7a7a7a7aU, 0x9f9f9f9fU, 0x93939393U, 0xc9c9c9c9U, 0x9c9c9c9cU, 0xefefefefU, 0xa0a0a0a0U, 0xe0e0e0e0U, 0x3b3b3b3bU, 0x4d4d4d4dU, 0xaeaeaeaeU, 0x2a2a2a2aU, 0xf5f5f5f5U, 0xb0b0b0b0U, 0xc8c8c8c8U, 0xebebebebU, 0xbbbbbbbbU, 0x3c3c3c3cU, 0x83838383U, 0x53535353U, 0x99999999U, 0x61616161U, 0x17171717U, 0x2b2b2b2bU, 0x04040404U, 0x7e7e7e7eU, 0xbabababaU, 0x77777777U, 0xd6d6d6d6U, 0x26262626U, 0xe1e1e1e1U, 0x69696969U, 0x14141414U, 0x63636363U, 0x55555555U, 0x21212121U, 0x0c0c0c0cU, 0x7d7d7d7dU, }; static const u32 rcon[] = { 0x01000000, 0x02000000, 0x04000000, 0x08000000, 0x10000000, 0x20000000, 0x40000000, 0x80000000, 0x1B000000, 0x36000000, /* for 128-bit blocks, Rijndael never uses more than 10 rcon values */ }; #define SWAP(x) (_lrotl(x, 8) & 0x00ff00ff | _lrotr(x, 8) & 0xff00ff00) #ifdef _MSC_VER #define GETU32(p) SWAP(*((u32 *)(p))) #define PUTU32(ct, st) { *((u32 *)(ct)) = SWAP((st)); } #else #define GETU32(pt) (((u32)(pt)[0] << 24) ^ ((u32)(pt)[1] << 16) ^ ((u32)(pt)[2] << 8) ^ ((u32)(pt)[3])) #define PUTU32(ct, st) { (ct)[0] = (u8)((st) >> 24); (ct)[1] = (u8)((st) >> 16); (ct)[2] = (u8)((st) >> 8); (ct)[3] = (u8)(st); } #endif /** * Expand the cipher key into the encryption key schedule. * * @return the number of rounds for the given cipher key size. */ int rijndaelKeySetupEnc(u32 rk[/*4*(Nr + 1)*/], const u8 cipherKey[], int keyBits) { int i = 0; u32 temp; rk[0] = GETU32(cipherKey ); rk[1] = GETU32(cipherKey + 4); rk[2] = GETU32(cipherKey + 8); rk[3] = GETU32(cipherKey + 12); if (keyBits == 128) { for (;;) { temp = rk[3]; rk[4] = rk[0] ^ (Te4[(temp >> 16) & 0xff] & 0xff000000) ^ (Te4[(temp >> 8) & 0xff] & 0x00ff0000) ^ (Te4[(temp ) & 0xff] & 0x0000ff00) ^ (Te4[(temp >> 24) ] & 0x000000ff) ^ rcon[i]; rk[5] = rk[1] ^ rk[4]; rk[6] = rk[2] ^ rk[5]; rk[7] = rk[3] ^ rk[6]; if (++i == 10) { return 10; } rk += 4; } } rk[4] = GETU32(cipherKey + 16); rk[5] = GETU32(cipherKey + 20); if (keyBits == 192) { for (;;) { temp = rk[ 5]; rk[ 6] = rk[ 0] ^ (Te4[(temp >> 16) & 0xff] & 0xff000000) ^ (Te4[(temp >> 8) & 0xff] & 0x00ff0000) ^ (Te4[(temp ) & 0xff] & 0x0000ff00) ^ (Te4[(temp >> 24) ] & 0x000000ff) ^ rcon[i]; rk[ 7] = rk[ 1] ^ rk[ 6]; rk[ 8] = rk[ 2] ^ rk[ 7]; rk[ 9] = rk[ 3] ^ rk[ 8]; if (++i == 8) { return 12; } rk[10] = rk[ 4] ^ rk[ 9]; rk[11] = rk[ 5] ^ rk[10]; rk += 6; } } rk[6] = GETU32(cipherKey + 24); rk[7] = GETU32(cipherKey + 28); if (keyBits == 256) { for (;;) { temp = rk[ 7]; rk[ 8] = rk[ 0] ^ (Te4[(temp >> 16) & 0xff] & 0xff000000) ^ (Te4[(temp >> 8) & 0xff] & 0x00ff0000) ^ (Te4[(temp ) & 0xff] & 0x0000ff00) ^ (Te4[(temp >> 24) ] & 0x000000ff) ^ rcon[i]; rk[ 9] = rk[ 1] ^ rk[ 8]; rk[10] = rk[ 2] ^ rk[ 9]; rk[11] = rk[ 3] ^ rk[10]; if (++i == 7) { return 14; } temp = rk[11]; rk[12] = rk[ 4] ^ (Te4[(temp >> 24) ] & 0xff000000) ^ (Te4[(temp >> 16) & 0xff] & 0x00ff0000) ^ (Te4[(temp >> 8) & 0xff] & 0x0000ff00) ^ (Te4[(temp ) & 0xff] & 0x000000ff); rk[13] = rk[ 5] ^ rk[12]; rk[14] = rk[ 6] ^ rk[13]; rk[15] = rk[ 7] ^ rk[14]; rk += 8; } } return 0; } /** * Expand the cipher key into the decryption key schedule. * * @return the number of rounds for the given cipher key size. */ int rijndaelKeySetupDec(u32 rk[/*4*(Nr + 1)*/], const u8 cipherKey[], int keyBits) { int Nr, i, j; u32 temp; /* expand the cipher key: */ Nr = rijndaelKeySetupEnc(rk, cipherKey, keyBits); /* invert the order of the round keys: */ for (i = 0, j = 4*Nr; i < j; i += 4, j -= 4) { temp = rk[i ]; rk[i ] = rk[j ]; rk[j ] = temp; temp = rk[i + 1]; rk[i + 1] = rk[j + 1]; rk[j + 1] = temp; temp = rk[i + 2]; rk[i + 2] = rk[j + 2]; rk[j + 2] = temp; temp = rk[i + 3]; rk[i + 3] = rk[j + 3]; rk[j + 3] = temp; } /* apply the inverse MixColumn transform to all round keys but the first and the last: */ for (i = 1; i < Nr; i++) { rk += 4; rk[0] = Td0[Te4[(rk[0] >> 24) ] & 0xff] ^ Td1[Te4[(rk[0] >> 16) & 0xff] & 0xff] ^ Td2[Te4[(rk[0] >> 8) & 0xff] & 0xff] ^ Td3[Te4[(rk[0] ) & 0xff] & 0xff]; rk[1] = Td0[Te4[(rk[1] >> 24) ] & 0xff] ^ Td1[Te4[(rk[1] >> 16) & 0xff] & 0xff] ^ Td2[Te4[(rk[1] >> 8) & 0xff] & 0xff] ^ Td3[Te4[(rk[1] ) & 0xff] & 0xff]; rk[2] = Td0[Te4[(rk[2] >> 24) ] & 0xff] ^ Td1[Te4[(rk[2] >> 16) & 0xff] & 0xff] ^ Td2[Te4[(rk[2] >> 8) & 0xff] & 0xff] ^ Td3[Te4[(rk[2] ) & 0xff] & 0xff]; rk[3] = Td0[Te4[(rk[3] >> 24) ] & 0xff] ^ Td1[Te4[(rk[3] >> 16) & 0xff] & 0xff] ^ Td2[Te4[(rk[3] >> 8) & 0xff] & 0xff] ^ Td3[Te4[(rk[3] ) & 0xff] & 0xff]; } return Nr; } void rijndaelEncrypt(const u32 rk[/*4*(Nr + 1)*/], int Nr, const u8 pt[16], u8 ct[16]) { u32 s0, s1, s2, s3, t0, t1, t2, t3; #ifndef FULL_UNROLL int r; #endif /* ?FULL_UNROLL */ /* * map byte array block to cipher state * and add initial round key: */ s0 = GETU32(pt ) ^ rk[0]; s1 = GETU32(pt + 4) ^ rk[1]; s2 = GETU32(pt + 8) ^ rk[2]; s3 = GETU32(pt + 12) ^ rk[3]; #ifdef FULL_UNROLL /* round 1: */ t0 = Te0[s0 >> 24] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >> 8) & 0xff] ^ Te3[s3 & 0xff] ^ rk[ 4]; t1 = Te0[s1 >> 24] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >> 8) & 0xff] ^ Te3[s0 & 0xff] ^ rk[ 5]; t2 = Te0[s2 >> 24] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >> 8) & 0xff] ^ Te3[s1 & 0xff] ^ rk[ 6]; t3 = Te0[s3 >> 24] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >> 8) & 0xff] ^ Te3[s2 & 0xff] ^ rk[ 7]; /* round 2: */ s0 = Te0[t0 >> 24] ^ Te1[(t1 >> 16) & 0xff] ^ Te2[(t2 >> 8) & 0xff] ^ Te3[t3 & 0xff] ^ rk[ 8]; s1 = Te0[t1 >> 24] ^ Te1[(t2 >> 16) & 0xff] ^ Te2[(t3 >> 8) & 0xff] ^ Te3[t0 & 0xff] ^ rk[ 9]; s2 = Te0[t2 >> 24] ^ Te1[(t3 >> 16) & 0xff] ^ Te2[(t0 >> 8) & 0xff] ^ Te3[t1 & 0xff] ^ rk[10]; s3 = Te0[t3 >> 24] ^ Te1[(t0 >> 16) & 0xff] ^ Te2[(t1 >> 8) & 0xff] ^ Te3[t2 & 0xff] ^ rk[11]; /* round 3: */ t0 = Te0[s0 >> 24] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >> 8) & 0xff] ^ Te3[s3 & 0xff] ^ rk[12]; t1 = Te0[s1 >> 24] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >> 8) & 0xff] ^ Te3[s0 & 0xff] ^ rk[13]; t2 = Te0[s2 >> 24] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >> 8) & 0xff] ^ Te3[s1 & 0xff] ^ rk[14]; t3 = Te0[s3 >> 24] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >> 8) & 0xff] ^ Te3[s2 & 0xff] ^ rk[15]; /* round 4: */ s0 = Te0[t0 >> 24] ^ Te1[(t1 >> 16) & 0xff] ^ Te2[(t2 >> 8) & 0xff] ^ Te3[t3 & 0xff] ^ rk[16]; s1 = Te0[t1 >> 24] ^ Te1[(t2 >> 16) & 0xff] ^ Te2[(t3 >> 8) & 0xff] ^ Te3[t0 & 0xff] ^ rk[17]; s2 = Te0[t2 >> 24] ^ Te1[(t3 >> 16) & 0xff] ^ Te2[(t0 >> 8) & 0xff] ^ Te3[t1 & 0xff] ^ rk[18]; s3 = Te0[t3 >> 24] ^ Te1[(t0 >> 16) & 0xff] ^ Te2[(t1 >> 8) & 0xff] ^ Te3[t2 & 0xff] ^ rk[19]; /* round 5: */ t0 = Te0[s0 >> 24] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >> 8) & 0xff] ^ Te3[s3 & 0xff] ^ rk[20]; t1 = Te0[s1 >> 24] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >> 8) & 0xff] ^ Te3[s0 & 0xff] ^ rk[21]; t2 = Te0[s2 >> 24] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >> 8) & 0xff] ^ Te3[s1 & 0xff] ^ rk[22]; t3 = Te0[s3 >> 24] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >> 8) & 0xff] ^ Te3[s2 & 0xff] ^ rk[23]; /* round 6: */ s0 = Te0[t0 >> 24] ^ Te1[(t1 >> 16) & 0xff] ^ Te2[(t2 >> 8) & 0xff] ^ Te3[t3 & 0xff] ^ rk[24]; s1 = Te0[t1 >> 24] ^ Te1[(t2 >> 16) & 0xff] ^ Te2[(t3 >> 8) & 0xff] ^ Te3[t0 & 0xff] ^ rk[25]; s2 = Te0[t2 >> 24] ^ Te1[(t3 >> 16) & 0xff] ^ Te2[(t0 >> 8) & 0xff] ^ Te3[t1 & 0xff] ^ rk[26]; s3 = Te0[t3 >> 24] ^ Te1[(t0 >> 16) & 0xff] ^ Te2[(t1 >> 8) & 0xff] ^ Te3[t2 & 0xff] ^ rk[27]; /* round 7: */ t0 = Te0[s0 >> 24] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >> 8) & 0xff] ^ Te3[s3 & 0xff] ^ rk[28]; t1 = Te0[s1 >> 24] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >> 8) & 0xff] ^ Te3[s0 & 0xff] ^ rk[29]; t2 = Te0[s2 >> 24] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >> 8) & 0xff] ^ Te3[s1 & 0xff] ^ rk[30]; t3 = Te0[s3 >> 24] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >> 8) & 0xff] ^ Te3[s2 & 0xff] ^ rk[31]; /* round 8: */ s0 = Te0[t0 >> 24] ^ Te1[(t1 >> 16) & 0xff] ^ Te2[(t2 >> 8) & 0xff] ^ Te3[t3 & 0xff] ^ rk[32]; s1 = Te0[t1 >> 24] ^ Te1[(t2 >> 16) & 0xff] ^ Te2[(t3 >> 8) & 0xff] ^ Te3[t0 & 0xff] ^ rk[33]; s2 = Te0[t2 >> 24] ^ Te1[(t3 >> 16) & 0xff] ^ Te2[(t0 >> 8) & 0xff] ^ Te3[t1 & 0xff] ^ rk[34]; s3 = Te0[t3 >> 24] ^ Te1[(t0 >> 16) & 0xff] ^ Te2[(t1 >> 8) & 0xff] ^ Te3[t2 & 0xff] ^ rk[35]; /* round 9: */ t0 = Te0[s0 >> 24] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >> 8) & 0xff] ^ Te3[s3 & 0xff] ^ rk[36]; t1 = Te0[s1 >> 24] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >> 8) & 0xff] ^ Te3[s0 & 0xff] ^ rk[37]; t2 = Te0[s2 >> 24] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >> 8) & 0xff] ^ Te3[s1 & 0xff] ^ rk[38]; t3 = Te0[s3 >> 24] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >> 8) & 0xff] ^ Te3[s2 & 0xff] ^ rk[39]; if (Nr > 10) { /* round 10: */ s0 = Te0[t0 >> 24] ^ Te1[(t1 >> 16) & 0xff] ^ Te2[(t2 >> 8) & 0xff] ^ Te3[t3 & 0xff] ^ rk[40]; s1 = Te0[t1 >> 24] ^ Te1[(t2 >> 16) & 0xff] ^ Te2[(t3 >> 8) & 0xff] ^ Te3[t0 & 0xff] ^ rk[41]; s2 = Te0[t2 >> 24] ^ Te1[(t3 >> 16) & 0xff] ^ Te2[(t0 >> 8) & 0xff] ^ Te3[t1 & 0xff] ^ rk[42]; s3 = Te0[t3 >> 24] ^ Te1[(t0 >> 16) & 0xff] ^ Te2[(t1 >> 8) & 0xff] ^ Te3[t2 & 0xff] ^ rk[43]; /* round 11: */ t0 = Te0[s0 >> 24] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >> 8) & 0xff] ^ Te3[s3 & 0xff] ^ rk[44]; t1 = Te0[s1 >> 24] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >> 8) & 0xff] ^ Te3[s0 & 0xff] ^ rk[45]; t2 = Te0[s2 >> 24] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >> 8) & 0xff] ^ Te3[s1 & 0xff] ^ rk[46]; t3 = Te0[s3 >> 24] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >> 8) & 0xff] ^ Te3[s2 & 0xff] ^ rk[47]; if (Nr > 12) { /* round 12: */ s0 = Te0[t0 >> 24] ^ Te1[(t1 >> 16) & 0xff] ^ Te2[(t2 >> 8) & 0xff] ^ Te3[t3 & 0xff] ^ rk[48]; s1 = Te0[t1 >> 24] ^ Te1[(t2 >> 16) & 0xff] ^ Te2[(t3 >> 8) & 0xff] ^ Te3[t0 & 0xff] ^ rk[49]; s2 = Te0[t2 >> 24] ^ Te1[(t3 >> 16) & 0xff] ^ Te2[(t0 >> 8) & 0xff] ^ Te3[t1 & 0xff] ^ rk[50]; s3 = Te0[t3 >> 24] ^ Te1[(t0 >> 16) & 0xff] ^ Te2[(t1 >> 8) & 0xff] ^ Te3[t2 & 0xff] ^ rk[51]; /* round 13: */ t0 = Te0[s0 >> 24] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >> 8) & 0xff] ^ Te3[s3 & 0xff] ^ rk[52]; t1 = Te0[s1 >> 24] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >> 8) & 0xff] ^ Te3[s0 & 0xff] ^ rk[53]; t2 = Te0[s2 >> 24] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >> 8) & 0xff] ^ Te3[s1 & 0xff] ^ rk[54]; t3 = Te0[s3 >> 24] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >> 8) & 0xff] ^ Te3[s2 & 0xff] ^ rk[55]; } } rk += Nr << 2; #else /* !FULL_UNROLL */ /* * Nr - 1 full rounds: */ r = Nr >> 1; for (;;) { t0 = Te0[(s0 >> 24) ] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >> 8) & 0xff] ^ Te3[(s3 ) & 0xff] ^ rk[4]; t1 = Te0[(s1 >> 24) ] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >> 8) & 0xff] ^ Te3[(s0 ) & 0xff] ^ rk[5]; t2 = Te0[(s2 >> 24) ] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >> 8) & 0xff] ^ Te3[(s1 ) & 0xff] ^ rk[6]; t3 = Te0[(s3 >> 24) ] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >> 8) & 0xff] ^ Te3[(s2 ) & 0xff] ^ rk[7]; rk += 8; if (--r == 0) { break; } s0 = Te0[(t0 >> 24) ] ^ Te1[(t1 >> 16) & 0xff] ^ Te2[(t2 >> 8) & 0xff] ^ Te3[(t3 ) & 0xff] ^ rk[0]; s1 = Te0[(t1 >> 24) ] ^ Te1[(t2 >> 16) & 0xff] ^ Te2[(t3 >> 8) & 0xff] ^ Te3[(t0 ) & 0xff] ^ rk[1]; s2 = Te0[(t2 >> 24) ] ^ Te1[(t3 >> 16) & 0xff] ^ Te2[(t0 >> 8) & 0xff] ^ Te3[(t1 ) & 0xff] ^ rk[2]; s3 = Te0[(t3 >> 24) ] ^ Te1[(t0 >> 16) & 0xff] ^ Te2[(t1 >> 8) & 0xff] ^ Te3[(t2 ) & 0xff] ^ rk[3]; } #endif /* ?FULL_UNROLL */ /* * apply last round and * map cipher state to byte array block: */ s0 = (Te4[(t0 >> 24) ] & 0xff000000) ^ (Te4[(t1 >> 16) & 0xff] & 0x00ff0000) ^ (Te4[(t2 >> 8) & 0xff] & 0x0000ff00) ^ (Te4[(t3 ) & 0xff] & 0x000000ff) ^ rk[0]; PUTU32(ct , s0); s1 = (Te4[(t1 >> 24) ] & 0xff000000) ^ (Te4[(t2 >> 16) & 0xff] & 0x00ff0000) ^ (Te4[(t3 >> 8) & 0xff] & 0x0000ff00) ^ (Te4[(t0 ) & 0xff] & 0x000000ff) ^ rk[1]; PUTU32(ct + 4, s1); s2 = (Te4[(t2 >> 24) ] & 0xff000000) ^ (Te4[(t3 >> 16) & 0xff] & 0x00ff0000) ^ (Te4[(t0 >> 8) & 0xff] & 0x0000ff00) ^ (Te4[(t1 ) & 0xff] & 0x000000ff) ^ rk[2]; PUTU32(ct + 8, s2); s3 = (Te4[(t3 >> 24) ] & 0xff000000) ^ (Te4[(t0 >> 16) & 0xff] & 0x00ff0000) ^ (Te4[(t1 >> 8) & 0xff] & 0x0000ff00) ^ (Te4[(t2 ) & 0xff] & 0x000000ff) ^ rk[3]; PUTU32(ct + 12, s3); } void rijndaelDecrypt(const u32 rk[/*4*(Nr + 1)*/], int Nr, const u8 ct[16], u8 pt[16]) { u32 s0, s1, s2, s3, t0, t1, t2, t3; #ifndef FULL_UNROLL int r; #endif /* ?FULL_UNROLL */ /* * map byte array block to cipher state * and add initial round key: */ s0 = GETU32(ct ) ^ rk[0]; s1 = GETU32(ct + 4) ^ rk[1]; s2 = GETU32(ct + 8) ^ rk[2]; s3 = GETU32(ct + 12) ^ rk[3]; #ifdef FULL_UNROLL /* round 1: */ t0 = Td0[s0 >> 24] ^ Td1[(s3 >> 16) & 0xff] ^ Td2[(s2 >> 8) & 0xff] ^ Td3[s1 & 0xff] ^ rk[ 4]; t1 = Td0[s1 >> 24] ^ Td1[(s0 >> 16) & 0xff] ^ Td2[(s3 >> 8) & 0xff] ^ Td3[s2 & 0xff] ^ rk[ 5]; t2 = Td0[s2 >> 24] ^ Td1[(s1 >> 16) & 0xff] ^ Td2[(s0 >> 8) & 0xff] ^ Td3[s3 & 0xff] ^ rk[ 6]; t3 = Td0[s3 >> 24] ^ Td1[(s2 >> 16) & 0xff] ^ Td2[(s1 >> 8) & 0xff] ^ Td3[s0 & 0xff] ^ rk[ 7]; /* round 2: */ s0 = Td0[t0 >> 24] ^ Td1[(t3 >> 16) & 0xff] ^ Td2[(t2 >> 8) & 0xff] ^ Td3[t1 & 0xff] ^ rk[ 8]; s1 = Td0[t1 >> 24] ^ Td1[(t0 >> 16) & 0xff] ^ Td2[(t3 >> 8) & 0xff] ^ Td3[t2 & 0xff] ^ rk[ 9]; s2 = Td0[t2 >> 24] ^ Td1[(t1 >> 16) & 0xff] ^ Td2[(t0 >> 8) & 0xff] ^ Td3[t3 & 0xff] ^ rk[10]; s3 = Td0[t3 >> 24] ^ Td1[(t2 >> 16) & 0xff] ^ Td2[(t1 >> 8) & 0xff] ^ Td3[t0 & 0xff] ^ rk[11]; /* round 3: */ t0 = Td0[s0 >> 24] ^ Td1[(s3 >> 16) & 0xff] ^ Td2[(s2 >> 8) & 0xff] ^ Td3[s1 & 0xff] ^ rk[12]; t1 = Td0[s1 >> 24] ^ Td1[(s0 >> 16) & 0xff] ^ Td2[(s3 >> 8) & 0xff] ^ Td3[s2 & 0xff] ^ rk[13]; t2 = Td0[s2 >> 24] ^ Td1[(s1 >> 16) & 0xff] ^ Td2[(s0 >> 8) & 0xff] ^ Td3[s3 & 0xff] ^ rk[14]; t3 = Td0[s3 >> 24] ^ Td1[(s2 >> 16) & 0xff] ^ Td2[(s1 >> 8) & 0xff] ^ Td3[s0 & 0xff] ^ rk[15]; /* round 4: */ s0 = Td0[t0 >> 24] ^ Td1[(t3 >> 16) & 0xff] ^ Td2[(t2 >> 8) & 0xff] ^ Td3[t1 & 0xff] ^ rk[16]; s1 = Td0[t1 >> 24] ^ Td1[(t0 >> 16) & 0xff] ^ Td2[(t3 >> 8) & 0xff] ^ Td3[t2 & 0xff] ^ rk[17]; s2 = Td0[t2 >> 24] ^ Td1[(t1 >> 16) & 0xff] ^ Td2[(t0 >> 8) & 0xff] ^ Td3[t3 & 0xff] ^ rk[18]; s3 = Td0[t3 >> 24] ^ Td1[(t2 >> 16) & 0xff] ^ Td2[(t1 >> 8) & 0xff] ^ Td3[t0 & 0xff] ^ rk[19]; /* round 5: */ t0 = Td0[s0 >> 24] ^ Td1[(s3 >> 16) & 0xff] ^ Td2[(s2 >> 8) & 0xff] ^ Td3[s1 & 0xff] ^ rk[20]; t1 = Td0[s1 >> 24] ^ Td1[(s0 >> 16) & 0xff] ^ Td2[(s3 >> 8) & 0xff] ^ Td3[s2 & 0xff] ^ rk[21]; t2 = Td0[s2 >> 24] ^ Td1[(s1 >> 16) & 0xff] ^ Td2[(s0 >> 8) & 0xff] ^ Td3[s3 & 0xff] ^ rk[22]; t3 = Td0[s3 >> 24] ^ Td1[(s2 >> 16) & 0xff] ^ Td2[(s1 >> 8) & 0xff] ^ Td3[s0 & 0xff] ^ rk[23]; /* round 6: */ s0 = Td0[t0 >> 24] ^ Td1[(t3 >> 16) & 0xff] ^ Td2[(t2 >> 8) & 0xff] ^ Td3[t1 & 0xff] ^ rk[24]; s1 = Td0[t1 >> 24] ^ Td1[(t0 >> 16) & 0xff] ^ Td2[(t3 >> 8) & 0xff] ^ Td3[t2 & 0xff] ^ rk[25]; s2 = Td0[t2 >> 24] ^ Td1[(t1 >> 16) & 0xff] ^ Td2[(t0 >> 8) & 0xff] ^ Td3[t3 & 0xff] ^ rk[26]; s3 = Td0[t3 >> 24] ^ Td1[(t2 >> 16) & 0xff] ^ Td2[(t1 >> 8) & 0xff] ^ Td3[t0 & 0xff] ^ rk[27]; /* round 7: */ t0 = Td0[s0 >> 24] ^ Td1[(s3 >> 16) & 0xff] ^ Td2[(s2 >> 8) & 0xff] ^ Td3[s1 & 0xff] ^ rk[28]; t1 = Td0[s1 >> 24] ^ Td1[(s0 >> 16) & 0xff] ^ Td2[(s3 >> 8) & 0xff] ^ Td3[s2 & 0xff] ^ rk[29]; t2 = Td0[s2 >> 24] ^ Td1[(s1 >> 16) & 0xff] ^ Td2[(s0 >> 8) & 0xff] ^ Td3[s3 & 0xff] ^ rk[30]; t3 = Td0[s3 >> 24] ^ Td1[(s2 >> 16) & 0xff] ^ Td2[(s1 >> 8) & 0xff] ^ Td3[s0 & 0xff] ^ rk[31]; /* round 8: */ s0 = Td0[t0 >> 24] ^ Td1[(t3 >> 16) & 0xff] ^ Td2[(t2 >> 8) & 0xff] ^ Td3[t1 & 0xff] ^ rk[32]; s1 = Td0[t1 >> 24] ^ Td1[(t0 >> 16) & 0xff] ^ Td2[(t3 >> 8) & 0xff] ^ Td3[t2 & 0xff] ^ rk[33]; s2 = Td0[t2 >> 24] ^ Td1[(t1 >> 16) & 0xff] ^ Td2[(t0 >> 8) & 0xff] ^ Td3[t3 & 0xff] ^ rk[34]; s3 = Td0[t3 >> 24] ^ Td1[(t2 >> 16) & 0xff] ^ Td2[(t1 >> 8) & 0xff] ^ Td3[t0 & 0xff] ^ rk[35]; /* round 9: */ t0 = Td0[s0 >> 24] ^ Td1[(s3 >> 16) & 0xff] ^ Td2[(s2 >> 8) & 0xff] ^ Td3[s1 & 0xff] ^ rk[36]; t1 = Td0[s1 >> 24] ^ Td1[(s0 >> 16) & 0xff] ^ Td2[(s3 >> 8) & 0xff] ^ Td3[s2 & 0xff] ^ rk[37]; t2 = Td0[s2 >> 24] ^ Td1[(s1 >> 16) & 0xff] ^ Td2[(s0 >> 8) & 0xff] ^ Td3[s3 & 0xff] ^ rk[38]; t3 = Td0[s3 >> 24] ^ Td1[(s2 >> 16) & 0xff] ^ Td2[(s1 >> 8) & 0xff] ^ Td3[s0 & 0xff] ^ rk[39]; if (Nr > 10) { /* round 10: */ s0 = Td0[t0 >> 24] ^ Td1[(t3 >> 16) & 0xff] ^ Td2[(t2 >> 8) & 0xff] ^ Td3[t1 & 0xff] ^ rk[40]; s1 = Td0[t1 >> 24] ^ Td1[(t0 >> 16) & 0xff] ^ Td2[(t3 >> 8) & 0xff] ^ Td3[t2 & 0xff] ^ rk[41]; s2 = Td0[t2 >> 24] ^ Td1[(t1 >> 16) & 0xff] ^ Td2[(t0 >> 8) & 0xff] ^ Td3[t3 & 0xff] ^ rk[42]; s3 = Td0[t3 >> 24] ^ Td1[(t2 >> 16) & 0xff] ^ Td2[(t1 >> 8) & 0xff] ^ Td3[t0 & 0xff] ^ rk[43]; /* round 11: */ t0 = Td0[s0 >> 24] ^ Td1[(s3 >> 16) & 0xff] ^ Td2[(s2 >> 8) & 0xff] ^ Td3[s1 & 0xff] ^ rk[44]; t1 = Td0[s1 >> 24] ^ Td1[(s0 >> 16) & 0xff] ^ Td2[(s3 >> 8) & 0xff] ^ Td3[s2 & 0xff] ^ rk[45]; t2 = Td0[s2 >> 24] ^ Td1[(s1 >> 16) & 0xff] ^ Td2[(s0 >> 8) & 0xff] ^ Td3[s3 & 0xff] ^ rk[46]; t3 = Td0[s3 >> 24] ^ Td1[(s2 >> 16) & 0xff] ^ Td2[(s1 >> 8) & 0xff] ^ Td3[s0 & 0xff] ^ rk[47]; if (Nr > 12) { /* round 12: */ s0 = Td0[t0 >> 24] ^ Td1[(t3 >> 16) & 0xff] ^ Td2[(t2 >> 8) & 0xff] ^ Td3[t1 & 0xff] ^ rk[48]; s1 = Td0[t1 >> 24] ^ Td1[(t0 >> 16) & 0xff] ^ Td2[(t3 >> 8) & 0xff] ^ Td3[t2 & 0xff] ^ rk[49]; s2 = Td0[t2 >> 24] ^ Td1[(t1 >> 16) & 0xff] ^ Td2[(t0 >> 8) & 0xff] ^ Td3[t3 & 0xff] ^ rk[50]; s3 = Td0[t3 >> 24] ^ Td1[(t2 >> 16) & 0xff] ^ Td2[(t1 >> 8) & 0xff] ^ Td3[t0 & 0xff] ^ rk[51]; /* round 13: */ t0 = Td0[s0 >> 24] ^ Td1[(s3 >> 16) & 0xff] ^ Td2[(s2 >> 8) & 0xff] ^ Td3[s1 & 0xff] ^ rk[52]; t1 = Td0[s1 >> 24] ^ Td1[(s0 >> 16) & 0xff] ^ Td2[(s3 >> 8) & 0xff] ^ Td3[s2 & 0xff] ^ rk[53]; t2 = Td0[s2 >> 24] ^ Td1[(s1 >> 16) & 0xff] ^ Td2[(s0 >> 8) & 0xff] ^ Td3[s3 & 0xff] ^ rk[54]; t3 = Td0[s3 >> 24] ^ Td1[(s2 >> 16) & 0xff] ^ Td2[(s1 >> 8) & 0xff] ^ Td3[s0 & 0xff] ^ rk[55]; } } rk += Nr << 2; #else /* !FULL_UNROLL */ /* * Nr - 1 full rounds: */ r = Nr >> 1; for (;;) { t0 = Td0[(s0 >> 24) ] ^ Td1[(s3 >> 16) & 0xff] ^ Td2[(s2 >> 8) & 0xff] ^ Td3[(s1 ) & 0xff] ^ rk[4]; t1 = Td0[(s1 >> 24) ] ^ Td1[(s0 >> 16) & 0xff] ^ Td2[(s3 >> 8) & 0xff] ^ Td3[(s2 ) & 0xff] ^ rk[5]; t2 = Td0[(s2 >> 24) ] ^ Td1[(s1 >> 16) & 0xff] ^ Td2[(s0 >> 8) & 0xff] ^ Td3[(s3 ) & 0xff] ^ rk[6]; t3 = Td0[(s3 >> 24) ] ^ Td1[(s2 >> 16) & 0xff] ^ Td2[(s1 >> 8) & 0xff] ^ Td3[(s0 ) & 0xff] ^ rk[7]; rk += 8; if (--r == 0) { break; } s0 = Td0[(t0 >> 24) ] ^ Td1[(t3 >> 16) & 0xff] ^ Td2[(t2 >> 8) & 0xff] ^ Td3[(t1 ) & 0xff] ^ rk[0]; s1 = Td0[(t1 >> 24) ] ^ Td1[(t0 >> 16) & 0xff] ^ Td2[(t3 >> 8) & 0xff] ^ Td3[(t2 ) & 0xff] ^ rk[1]; s2 = Td0[(t2 >> 24) ] ^ Td1[(t1 >> 16) & 0xff] ^ Td2[(t0 >> 8) & 0xff] ^ Td3[(t3 ) & 0xff] ^ rk[2]; s3 = Td0[(t3 >> 24) ] ^ Td1[(t2 >> 16) & 0xff] ^ Td2[(t1 >> 8) & 0xff] ^ Td3[(t0 ) & 0xff] ^ rk[3]; } #endif /* ?FULL_UNROLL */ /* * apply last round and * map cipher state to byte array block: */ s0 = (Td4[(t0 >> 24) ] & 0xff000000) ^ (Td4[(t3 >> 16) & 0xff] & 0x00ff0000) ^ (Td4[(t2 >> 8) & 0xff] & 0x0000ff00) ^ (Td4[(t1 ) & 0xff] & 0x000000ff) ^ rk[0]; PUTU32(pt , s0); s1 = (Td4[(t1 >> 24) ] & 0xff000000) ^ (Td4[(t0 >> 16) & 0xff] & 0x00ff0000) ^ (Td4[(t3 >> 8) & 0xff] & 0x0000ff00) ^ (Td4[(t2 ) & 0xff] & 0x000000ff) ^ rk[1]; PUTU32(pt + 4, s1); s2 = (Td4[(t2 >> 24) ] & 0xff000000) ^ (Td4[(t1 >> 16) & 0xff] & 0x00ff0000) ^ (Td4[(t0 >> 8) & 0xff] & 0x0000ff00) ^ (Td4[(t3 ) & 0xff] & 0x000000ff) ^ rk[2]; PUTU32(pt + 8, s2); s3 = (Td4[(t3 >> 24) ] & 0xff000000) ^ (Td4[(t2 >> 16) & 0xff] & 0x00ff0000) ^ (Td4[(t1 >> 8) & 0xff] & 0x0000ff00) ^ (Td4[(t0 ) & 0xff] & 0x000000ff) ^ rk[3]; PUTU32(pt + 12, s3); } #ifdef INTERMEDIATE_VALUE_KAT void rijndaelEncryptRound(const u32 rk[/*4*(Nr + 1)*/], int Nr, u8 block[16], int rounds) { int r; u32 s0, s1, s2, s3, t0, t1, t2, t3; /* * map byte array block to cipher state * and add initial round key: */ s0 = GETU32(block ) ^ rk[0]; s1 = GETU32(block + 4) ^ rk[1]; s2 = GETU32(block + 8) ^ rk[2]; s3 = GETU32(block + 12) ^ rk[3]; rk += 4; /* * Nr - 1 full rounds: */ for (r = (rounds < Nr ? rounds : Nr - 1); r > 0; r--) { t0 = Te0[(s0 >> 24) ] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >> 8) & 0xff] ^ Te3[(s3 ) & 0xff] ^ rk[0]; t1 = Te0[(s1 >> 24) ] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >> 8) & 0xff] ^ Te3[(s0 ) & 0xff] ^ rk[1]; t2 = Te0[(s2 >> 24) ] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >> 8) & 0xff] ^ Te3[(s1 ) & 0xff] ^ rk[2]; t3 = Te0[(s3 >> 24) ] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >> 8) & 0xff] ^ Te3[(s2 ) & 0xff] ^ rk[3]; s0 = t0; s1 = t1; s2 = t2; s3 = t3; rk += 4; } /* * apply last round and * map cipher state to byte array block: */ if (rounds == Nr) { t0 = (Te4[(s0 >> 24) ] & 0xff000000) ^ (Te4[(s1 >> 16) & 0xff] & 0x00ff0000) ^ (Te4[(s2 >> 8) & 0xff] & 0x0000ff00) ^ (Te4[(s3 ) & 0xff] & 0x000000ff) ^ rk[0]; t1 = (Te4[(s1 >> 24) ] & 0xff000000) ^ (Te4[(s2 >> 16) & 0xff] & 0x00ff0000) ^ (Te4[(s3 >> 8) & 0xff] & 0x0000ff00) ^ (Te4[(s0 ) & 0xff] & 0x000000ff) ^ rk[1]; t2 = (Te4[(s2 >> 24) ] & 0xff000000) ^ (Te4[(s3 >> 16) & 0xff] & 0x00ff0000) ^ (Te4[(s0 >> 8) & 0xff] & 0x0000ff00) ^ (Te4[(s1 ) & 0xff] & 0x000000ff) ^ rk[2]; t3 = (Te4[(s3 >> 24) ] & 0xff000000) ^ (Te4[(s0 >> 16) & 0xff] & 0x00ff0000) ^ (Te4[(s1 >> 8) & 0xff] & 0x0000ff00) ^ (Te4[(s2 ) & 0xff] & 0x000000ff) ^ rk[3]; s0 = t0; s1 = t1; s2 = t2; s3 = t3; } PUTU32(block , s0); PUTU32(block + 4, s1); PUTU32(block + 8, s2); PUTU32(block + 12, s3); } void rijndaelDecryptRound(const u32 rk[/*4*(Nr + 1)*/], int Nr, u8 block[16], int rounds) { int r; u32 s0, s1, s2, s3, t0, t1, t2, t3; /* * map byte array block to cipher state * and add initial round key: */ s0 = GETU32(block ) ^ rk[0]; s1 = GETU32(block + 4) ^ rk[1]; s2 = GETU32(block + 8) ^ rk[2]; s3 = GETU32(block + 12) ^ rk[3]; rk += 4; /* * Nr - 1 full rounds: */ for (r = (rounds < Nr ? rounds : Nr) - 1; r > 0; r--) { t0 = Td0[(s0 >> 24) ] ^ Td1[(s3 >> 16) & 0xff] ^ Td2[(s2 >> 8) & 0xff] ^ Td3[(s1 ) & 0xff] ^ rk[0]; t1 = Td0[(s1 >> 24) ] ^ Td1[(s0 >> 16) & 0xff] ^ Td2[(s3 >> 8) & 0xff] ^ Td3[(s2 ) & 0xff] ^ rk[1]; t2 = Td0[(s2 >> 24) ] ^ Td1[(s1 >> 16) & 0xff] ^ Td2[(s0 >> 8) & 0xff] ^ Td3[(s3 ) & 0xff] ^ rk[2]; t3 = Td0[(s3 >> 24) ] ^ Td1[(s2 >> 16) & 0xff] ^ Td2[(s1 >> 8) & 0xff] ^ Td3[(s0 ) & 0xff] ^ rk[3]; s0 = t0; s1 = t1; s2 = t2; s3 = t3; rk += 4; } /* * complete the last round and * map cipher state to byte array block: */ t0 = (Td4[(s0 >> 24) ] & 0xff000000) ^ (Td4[(s3 >> 16) & 0xff] & 0x00ff0000) ^ (Td4[(s2 >> 8) & 0xff] & 0x0000ff00) ^ (Td4[(s1 ) & 0xff] & 0x000000ff); t1 = (Td4[(s1 >> 24) ] & 0xff000000) ^ (Td4[(s0 >> 16) & 0xff] & 0x00ff0000) ^ (Td4[(s3 >> 8) & 0xff] & 0x0000ff00) ^ (Td4[(s2 ) & 0xff] & 0x000000ff); t2 = (Td4[(s2 >> 24) ] & 0xff000000) ^ (Td4[(s1 >> 16) & 0xff] & 0x00ff0000) ^ (Td4[(s0 >> 8) & 0xff] & 0x0000ff00) ^ (Td4[(s3 ) & 0xff] & 0x000000ff); t3 = (Td4[(s3 >> 24) ] & 0xff000000) ^ (Td4[(s2 >> 16) & 0xff] & 0x00ff0000) ^ (Td4[(s1 >> 8) & 0xff] & 0x0000ff00) ^ (Td4[(s0 ) & 0xff] & 0x000000ff); if (rounds == Nr) { t0 ^= rk[0]; t1 ^= rk[1]; t2 ^= rk[2]; t3 ^= rk[3]; } PUTU32(block , t0); PUTU32(block + 4, t1); PUTU32(block + 8, t2); PUTU32(block + 12, t3); } #endif /* INTERMEDIATE_VALUE_KAT */ tcpcrypt-0.5/contrib/rijndael-alg-fst.h0000644000175200017520000000365312742073006017230 0ustar sorbosorbo/** * rijndael-alg-fst.h * * @version 3.0 (December 2000) * * Optimised ANSI C code for the Rijndael cipher (now AES) * * @author Vincent Rijmen * @author Antoon Bosselaers * @author Paulo Barreto * * This code is hereby placed in the public domain. * * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ''AS IS'' AND ANY EXPRESS * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef __RIJNDAEL_ALG_FST_H #define __RIJNDAEL_ALG_FST_H #define MAXKC (256/32) #define MAXKB (256/8) #define MAXNR 14 typedef unsigned char u8; typedef unsigned short u16; typedef unsigned int u32; int rijndaelKeySetupEnc(u32 rk[/*4*(Nr + 1)*/], const u8 cipherKey[], int keyBits); int rijndaelKeySetupDec(u32 rk[/*4*(Nr + 1)*/], const u8 cipherKey[], int keyBits); void rijndaelEncrypt(const u32 rk[/*4*(Nr + 1)*/], int Nr, const u8 pt[16], u8 ct[16]); void rijndaelDecrypt(const u32 rk[/*4*(Nr + 1)*/], int Nr, const u8 ct[16], u8 pt[16]); #ifdef INTERMEDIATE_VALUE_KAT void rijndaelEncryptRound(const u32 rk[/*4*(Nr + 1)*/], int Nr, u8 block[16], int rounds); void rijndaelDecryptRound(const u32 rk[/*4*(Nr + 1)*/], int Nr, u8 block[16], int rounds); #endif /* INTERMEDIATE_VALUE_KAT */ #endif /* __RIJNDAEL_ALG_FST_H */ tcpcrypt-0.5/contrib/win_port.h0000644000175200017520000001407012742073006015741 0ustar sorbosorbo/* * Copyright (c) 1982, 1986, 1993 * The Regents of the University of California. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 4. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * @(#)tcp.h 8.1 (Berkeley) 6/10/93 */ #ifndef WIN_PORT_H #define WIN_PORT_H #include #define __LITTLE_ENDIAN 666 #define __BYTE_ORDER 666 typedef int socklen_t; typedef unsigned int u_int32_t; typedef unsigned short u_int16_t; typedef unsigned char u_int8_t; typedef unsigned int in_addr_t; struct msghdr { void *msg_name; /* Address to send to/receive from. */ socklen_t msg_namelen; /* Length of address data. */ struct iovec *msg_iov; /* Vector of data to send/receive into. */ size_t msg_iovlen; /* Number of elements in the vector. */ void *msg_control; /* Ancillary data (eg BSD filedesc passing). */ size_t msg_controllen; /* Ancillary data buffer length. !! The type should be socklen_t but the definition of the kernel is incompatible with this. */ int msg_flags; /* Flags on received message. */ }; typedef u_int32_t tcp_seq; /* * TCP header. * Per RFC 793, September, 1981. */ struct tcphdr { u_int16_t th_sport; /* source port */ u_int16_t th_dport; /* destination port */ tcp_seq th_seq; /* sequence number */ tcp_seq th_ack; /* acknowledgement number */ # if __BYTE_ORDER == __LITTLE_ENDIAN u_int8_t th_x2:4; /* (unused) */ u_int8_t th_off:4; /* data offset */ # endif # if __BYTE_ORDER == __BIG_ENDIAN u_int8_t th_off:4; /* data offset */ u_int8_t th_x2:4; /* (unused) */ # endif u_int8_t th_flags; # define TH_FIN 0x01 # define TH_SYN 0x02 # define TH_RST 0x04 # define TH_PUSH 0x08 # define TH_ACK 0x10 # define TH_URG 0x20 u_int16_t th_win; /* window */ u_int16_t th_sum; /* checksum */ u_int16_t th_urp; /* urgent pointer */ } __attribute__ ((gcc_struct)); # define TCPOPT_EOL 0 # define TCPOPT_NOP 1 # define TCPOPT_MAXSEG 2 # define TCPOLEN_MAXSEG 4 # define TCPOPT_WINDOW 3 # define TCPOLEN_WINDOW 3 # define TCPOPT_SACK_PERMITTED 4 /* Experimental */ # define TCPOLEN_SACK_PERMITTED 2 # define TCPOPT_SACK 5 /* Experimental */ # define TCPOPT_TIMESTAMP 8 # define TCPOLEN_TIMESTAMP 10 # define TCPOLEN_TSTAMP_APPA (TCPOLEN_TIMESTAMP+2) /* appendix A */ # define TCPOPT_TSTAMP_HDR \ (TCPOPT_NOP<<24|TCPOPT_NOP<<16|TCPOPT_TIMESTAMP<<8|TCPOLEN_TIMESTAMP) struct ip { #if __BYTE_ORDER == __LITTLE_ENDIAN unsigned int ip_hl:4; /* header length */ unsigned int ip_v:4; /* version */ #endif #if __BYTE_ORDER == __BIG_ENDIAN unsigned int ip_v:4; /* version */ unsigned int ip_hl:4; /* header length */ #endif u_int8_t ip_tos; /* type of service */ u_short ip_len; /* total length */ u_short ip_id; /* identification */ u_short ip_off; /* fragment offset field */ #define IP_RF 0x8000 /* reserved fragment flag */ #define IP_DF 0x4000 /* dont fragment flag */ #define IP_MF 0x2000 /* more fragments flag */ #define IP_OFFMASK 0x1fff /* mask for fragmenting bits */ u_int8_t ip_ttl; /* time to live */ u_int8_t ip_p; /* protocol */ u_short ip_sum; /* checksum */ struct in_addr ip_src, ip_dst; /* source and dest address */ } __attribute__ ((gcc_struct)); #define IPTOS_RELIABILITY 0x04 typedef unsigned short int sa_family_t; struct iovec { void *iov_base; /* Pointer to data. */ size_t iov_len; /* Length of data. */ }; static void warnx(const char *fmt, ...) { va_list ap; va_start(ap, fmt); vprintf(fmt, ap); va_end(ap); printf("\n"); } static void errx(int eval, const char *fmt, ...) { va_list ap; va_start(ap, fmt); vprintf(fmt, ap); va_end(ap); printf("\n"); exit(eval); } static void warn(const char *fmt, ...) { va_list ap; va_start(ap, fmt); vprintf(fmt, ap); va_end(ap); printf(": "); perror(""); printf("\n"); } static void err(int eval, const char *fmt, ...) { va_list ap; va_start(ap, fmt); vprintf(fmt, ap); va_end(ap); printf(": "); perror(""); printf("\n"); exit(eval); } #endif // WIN_PORT_H tcpcrypt-0.5/contrib/cmac.c0000644000175200017520000001642612742073006015005 0ustar sorbosorbo/* crypto/cmac/cmac.c */ /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL * project. */ /* ==================================================================== * Copyright (c) 2010 The OpenSSL Project. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. All advertising materials mentioning features or use of this * software must display the following acknowledgment: * "This product includes software developed by the OpenSSL Project * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" * * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to * endorse or promote products derived from this software without * prior written permission. For written permission, please contact * licensing@OpenSSL.org. * * 5. Products derived from this software may not be called "OpenSSL" * nor may "OpenSSL" appear in their names without prior written * permission of the OpenSSL Project. * * 6. Redistributions of any form whatsoever must retain the following * acknowledgment: * "This product includes software developed by the OpenSSL Project * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" * * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED * OF THE POSSIBILITY OF SUCH DAMAGE. * ==================================================================== */ #include #include #include #include "cmac.h" struct CMAC_CTX_st { /* Cipher context to use */ EVP_CIPHER_CTX cctx; /* Keys k1 and k2 */ unsigned char k1[EVP_MAX_BLOCK_LENGTH]; unsigned char k2[EVP_MAX_BLOCK_LENGTH]; /* Temporary block */ unsigned char tbl[EVP_MAX_BLOCK_LENGTH]; /* Last (possibly partial) block */ unsigned char last_block[EVP_MAX_BLOCK_LENGTH]; /* Number of bytes in last block: -1 means context not initialised */ int nlast_block; }; /* Make temporary keys K1 and K2 */ static void make_kn(unsigned char *k1, unsigned char *l, int bl) { int i; /* Shift block to left, including carry */ for (i = 0; i < bl; i++) { k1[i] = l[i] << 1; if (i < bl - 1 && l[i + 1] & 0x80) k1[i] |= 1; } /* If MSB set fixup with R */ if (l[0] & 0x80) k1[bl - 1] ^= bl == 16 ? 0x87 : 0x1b; } CMAC_CTX *CMAC_CTX_new(void) { CMAC_CTX *ctx; ctx = OPENSSL_malloc(sizeof(CMAC_CTX)); if (!ctx) return NULL; EVP_CIPHER_CTX_init(&ctx->cctx); ctx->nlast_block = -1; return ctx; } void CMAC_CTX_cleanup(CMAC_CTX *ctx) { EVP_CIPHER_CTX_cleanup(&ctx->cctx); OPENSSL_cleanse(ctx->tbl, EVP_MAX_BLOCK_LENGTH); OPENSSL_cleanse(ctx->k1, EVP_MAX_BLOCK_LENGTH); OPENSSL_cleanse(ctx->k2, EVP_MAX_BLOCK_LENGTH); OPENSSL_cleanse(ctx->last_block, EVP_MAX_BLOCK_LENGTH); ctx->nlast_block = -1; } EVP_CIPHER_CTX *CMAC_CTX_get0_cipher_ctx(CMAC_CTX *ctx) { return &ctx->cctx; } void CMAC_CTX_free(CMAC_CTX *ctx) { CMAC_CTX_cleanup(ctx); OPENSSL_free(ctx); } int CMAC_Init(CMAC_CTX *ctx, const void *key, size_t keylen, const EVP_CIPHER *cipher, ENGINE *impl) { static unsigned char zero_iv[EVP_MAX_BLOCK_LENGTH]; /* All zeros means restart */ if (!key && !cipher && !impl && keylen == 0) { /* Not initialised */ if (ctx->nlast_block == -1) return 0; if (!EVP_EncryptInit_ex(&ctx->cctx, NULL, NULL, NULL, zero_iv)) return 0; return 1; } /* Initialiase context */ if (cipher && !EVP_EncryptInit_ex(&ctx->cctx, cipher, impl, NULL, NULL)) return 0; /* Non-NULL key means initialisation complete */ if (key) { int bl; if (!EVP_CIPHER_CTX_cipher(&ctx->cctx)) return 0; if (!EVP_CIPHER_CTX_set_key_length(&ctx->cctx, keylen)) return 0; if (!EVP_EncryptInit_ex(&ctx->cctx, NULL, NULL, key, zero_iv)) return 0; bl = EVP_CIPHER_CTX_block_size(&ctx->cctx); if (!EVP_Cipher(&ctx->cctx, ctx->tbl, zero_iv, bl)) return 0; make_kn(ctx->k1, ctx->tbl, bl); make_kn(ctx->k2, ctx->k1, bl); OPENSSL_cleanse(ctx->tbl, bl); /* Reset context again ready for first data block */ if (!EVP_EncryptInit_ex(&ctx->cctx, NULL, NULL, NULL, zero_iv)) return 0; /* Zero tbl so resume works */ memset(ctx->tbl, 0, bl); ctx->nlast_block = 0; } return 1; } int CMAC_Update(CMAC_CTX *ctx, const void *in, size_t dlen) { const unsigned char *data = in; size_t bl; if (ctx->nlast_block == -1) return 0; if (dlen == 0) return 1; bl = EVP_CIPHER_CTX_block_size(&ctx->cctx); /* Copy into partial block if we need to */ if (ctx->nlast_block > 0) { size_t nleft; nleft = bl - ctx->nlast_block; if (dlen < nleft) nleft = dlen; memcpy(ctx->last_block + ctx->nlast_block, data, nleft); dlen -= nleft; ctx->nlast_block += nleft; /* If no more to process return */ if (dlen == 0) return 1; data += nleft; /* Else not final block so encrypt it */ if (!EVP_Cipher(&ctx->cctx, ctx->tbl, ctx->last_block,bl)) return 0; } /* Encrypt all but one of the complete blocks left */ while(dlen > bl) { if (!EVP_Cipher(&ctx->cctx, ctx->tbl, data, bl)) return 0; dlen -= bl; data += bl; } /* Copy any data left to last block buffer */ memcpy(ctx->last_block, data, dlen); ctx->nlast_block = dlen; return 1; } int CMAC_Final(CMAC_CTX *ctx, unsigned char *out, size_t *poutlen) { int i, bl, lb; if (ctx->nlast_block == -1) return 0; bl = EVP_CIPHER_CTX_block_size(&ctx->cctx); *poutlen = (size_t)bl; if (!out) return 1; lb = ctx->nlast_block; /* Is last block complete? */ if (lb == bl) { for (i = 0; i < bl; i++) out[i] = ctx->last_block[i] ^ ctx->k1[i]; } else { ctx->last_block[lb] = 0x80; if (bl - lb > 1) memset(ctx->last_block + lb + 1, 0, bl - lb - 1); for (i = 0; i < bl; i++) out[i] = ctx->last_block[i] ^ ctx->k2[i]; } if (!EVP_Cipher(&ctx->cctx, out, out, bl)) { OPENSSL_cleanse(out, bl); return 0; } return 1; } int CMAC_resume(CMAC_CTX *ctx) { if (ctx->nlast_block == -1) return 0; /* The buffer "tbl" containes the last fully encrypted block * which is the last IV (or all zeroes if no last encrypted block). * The last block has not been modified since CMAC_final(). * So reinitliasing using the last decrypted block will allow * CMAC to continue after calling CMAC_Final(). */ return EVP_EncryptInit_ex(&ctx->cctx, NULL, NULL, NULL, ctx->tbl); } tcpcrypt-0.5/contrib/ocb.c0000644000175200017520000003705012742073006014641 0ustar sorbosorbo/* * ocb.c * * Author: Ted Krovetz (tdk@acm.org) * History: 1 April 2000 - first release (TK) - version 0.9 * * OCB-AES-n reference code based on NIST submission "OCB Mode" * (dated 1 April 2000), submitted by Phillip Rogaway, with * auxiliary submitters Mihir Bellare, John Black, and Ted Krovetz. * * This code is freely available, and may be modified as desired. * Please retain the authorship and change history. * Note that OCB mode itself is patent pending. * * This code is NOT optimized for speed; it is only * designed to clarify the algorithm and to provide a point * of comparison for other implementations. * * Limitiations: Assumes a 4-byte integer type and and pointers that are * 32-bit aligned. Acts on a byte string of at most 2^36-16 bytes. * * Rijndael source available at www.esat.kuleuven.ac.be/~rijmen/rijndael/ * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include "ocb.h" #include "rijndael-alg-fst.h" #include #include #include #if (INT_MAX != 0x7fffffff) #error -- Assumes 4-byte int #endif /* * This implementation precomputes L(-1), L(0), L(1), L(PRE_COMP_BLOCKS), * where L(0) = L and L(-1) = L/x and L(i) = x*L(i) for i>0. * Normally, one would select PRE_COMP_BLOCKS to be a small number * (like 0-6) and compute any larger L(i) values "on the fly", when they * are needed. This saves space in _keystruct and needn't adversely * impact running time. But in this implementation, to keep things as * simple as possible, we compute all the L(i)-values we might ever see. */ #define PRE_COMP_BLOCKS 31 /* Must be between 0 and 31 */ #define AES_ROUNDS (AES_KEY_BITLEN / 32 + 6) typedef unsigned char block[16]; struct _keystruct { unsigned rek[4*(AES_ROUNDS+1)]; /* AES encryption key */ unsigned rdk[4*(AES_ROUNDS+1)]; /* AES decryption key */ unsigned tag_len; /* Sizeof tags to generate/validate */ block L[PRE_COMP_BLOCKS+1]; /* Precomputed L(i) values, L[0] = L */ block L_inv; /* Precomputed L/x value */ }; /************************************************************************* * xor_block *************************************************************************/ static void xor_block(void *dst, void *src1, void *src2) /* 128-bit xor: *dst = *src1 xor *src2. Pointers must be 32-bit aligned */ { ((unsigned *)dst)[0] = ((unsigned *)src1)[0] ^ ((unsigned *)src2)[0]; ((unsigned *)dst)[1] = ((unsigned *)src1)[1] ^ ((unsigned *)src2)[1]; ((unsigned *)dst)[2] = ((unsigned *)src1)[2] ^ ((unsigned *)src2)[2]; ((unsigned *)dst)[3] = ((unsigned *)src1)[3] ^ ((unsigned *)src2)[3]; } /************************************************************************* * shift_left *************************************************************************/ static void shift_left(unsigned char *x) /* 128-bit shift-left by 1 bit: *x <<= 1. */ { int i; for (i = 0; i < 15; i++) { x[i] = (x[i] << 1) | (x[i+1] & 0x80 ? 1 : 0); } x[15] = (x[15] << 1); } /************************************************************************* * shift_right *************************************************************************/ static void shift_right(unsigned char *x) /* 128-bit shift-right by 1 bit: *x >>= 1 */ { int i; for (i = 15; i > 0; i--) { x[i] = (x[i] >> 1) | (x[i-1] & 1 ? 0x80u : 0); } x[0] = (x[0] >> 1); } /************************************************************************* * ntz *************************************************************************/ static int ntz(unsigned i) /* Count the number of trailing zeroes in integer i. */ { #if (_MSC_VER && _M_IX86) /* Only non-C sop */ __asm bsf eax, i #elif (__GNUC__ && __i386__) int rval; asm volatile("bsf %1, %0" : "=r" (rval) : "g" (i)); return rval; #else int rval = 0; while ((i & 1) == 0) { i >>= 1; rval++; } return rval; #endif } /************************************************************************* * ocb_aes_init *************************************************************************/ keystruct * /* Init'd keystruct or NULL */ ocb_aes_init(void *enc_key, /* AES key */ unsigned tag_len, /* Length of tags to be used */ keystruct *key) /* OCB key structure. NULL means */ /* Allocate/init new, non-NULL */ /* means init existing structure */ { unsigned char tmp[16] = {0,}; unsigned first_bit, last_bit, i; if (key == NULL) key = (keystruct *)malloc(sizeof(keystruct)); if (key != NULL) { memset(key, 0, sizeof(keystruct)); /* Initialize AES keys. (Note that if one is only going to encrypt, key->rdk can be eliminated */ rijndaelKeySetupEnc(key->rek, (unsigned char *)enc_key, AES_KEY_BITLEN); rijndaelKeySetupDec(key->rdk, (unsigned char *)enc_key, AES_KEY_BITLEN); /* Precompute L[i]-values. L[0] is synonym of L */ rijndaelEncrypt (key->rek, AES_ROUNDS, tmp, tmp); for (i = 0; i <= PRE_COMP_BLOCKS; i++) { memcpy(key->L + i, tmp, 16); /* Copy tmp to L[i] */ first_bit = tmp[0] & 0x80u; /* and multiply tmp by x */ shift_left(tmp); if (first_bit) tmp[15] ^= 0x87; } /* Precompute L_inv = L . x^{-1} */ memcpy(tmp, key->L, 16); last_bit = tmp[15] & 0x01; shift_right(tmp); if (last_bit) { tmp[0] ^= 0x80; tmp[15] ^= 0x43; } memcpy(key->L_inv, tmp, 16); /* Set tag length used for this session */ key->tag_len = tag_len; } return key; } /************************************************************************* * pmac_aes -- move to a separate file when everything final *************************************************************************/ void pmac_aes (keystruct *key, /* Initialized key struct */ void *in, /* Buffer for (incoming) message */ unsigned in_len, /* Byte length of message */ void *tag) /* 16-byte buffer for generated tag */ { unsigned i; /* Block counter */ unsigned char tmp[16]; /* temporary buffer */ block *in_blk; /* Block-typed alias to in */ block Offset; /* Offset (Z[i]) for current block */ block checksum; /* Checksum for computing tag */ /* * Initializations */ i = 1; /* Start with first block */ in_blk = (block *)in - 1; /* Offset so in_blk[1] is first block. */ memset(checksum, 0, 16); /* Initlize the checksum and */ memset(Offset, 0, 16); /* current Offset to the zero block */ /* * Process blocks 1 .. m-1. */ while (in_len > 16) { /* Update Offset (Z[i] from Z[i-1]) */ xor_block(Offset, key->L + ntz(i), Offset); xor_block(tmp, Offset, in_blk + i); /* xor input block with Z[i] */ rijndaelEncrypt(key->rek, AES_ROUNDS, tmp, tmp); xor_block(checksum, checksum, tmp); /* Update checksum */ in_len -= 16; /* and the loop variables */ i++; } /* * Process block m */ if (in_len == 16) { /* full final block */ xor_block(checksum, checksum, in_blk + i); xor_block(checksum, checksum, key->L_inv); } else { /* short final block */ memset(tmp, 0, 16); memcpy(tmp, in_blk + i, in_len); tmp[in_len] = 0x80; xor_block(checksum, checksum, tmp); } rijndaelEncrypt(key->rek, AES_ROUNDS, checksum, (unsigned char *)tag); } /************************************************************************* * ocb_aes_encrypt *************************************************************************/ void ocb_aes_encrypt(keystruct *key, /* Initialized key struct */ void *nonce, /* 16-byte nonce */ void *pt, /* Buffer for (incoming) plaintext */ unsigned pt_len, /* Byte length of pt */ void *ct, /* Buffer for (outgoing) ciphertext */ void *tag) /* Buffer for generated tag */ { unsigned i; /* Block counter */ block tmp, tmp2; /* temporary buffers */ block *pt_blk, *ct_blk; /* block-typed aliases for pt / ct */ block Offset; /* Offset (Z[i]) for current block */ block checksum; /* Checksum for computing tag */ /* * Initializations */ i = 1; /* Start with first block */ pt_blk = (block *)pt - 1; /* These are adjusted so, for example, */ ct_blk = (block *)ct - 1; /* pt_blk[1] refers to the first block */ memset(checksum, 0, 16); /* Zero the checksum */ /* Calculate R, aka Z[0] */ xor_block(Offset, nonce, key->L); rijndaelEncrypt (key->rek, AES_ROUNDS, Offset, Offset); /* * Process blocks 1 .. m-1 */ while (pt_len > 16) { /* Update the Offset (Z[i] from Z[i-1]) */ xor_block(Offset, key->L + ntz(i), Offset); /* xor the plaintext block block with Z[i] */ xor_block(tmp, Offset, pt_blk + i); /* Encipher the block */ rijndaelEncrypt (key->rek, AES_ROUNDS, tmp, tmp); /* xor Z[i] again, writing result to ciphertext pointer */ xor_block(ct_blk + i, Offset, tmp); /* Update checksum */ xor_block(checksum, checksum, pt_blk + i); /* Update loop variables */ pt_len -= 16; i++; } /* * Process block m */ /* Update Offset (Z[m] from Z[m-1]) */ xor_block(Offset, key->L + ntz(i), Offset); /* xor L . x^{-1} and Z[m] */ xor_block(tmp, Offset, key->L_inv); /* Add in final block bit-length */ tmp[15] ^= (pt_len << 3); rijndaelEncrypt (key->rek, AES_ROUNDS, tmp, tmp); /* xor 'pt' with block-cipher output, copy valid bytes to 'ct' */ memcpy(tmp2, pt_blk + i, pt_len); xor_block(tmp2, tmp2, tmp); memcpy(ct_blk + i, tmp2, pt_len); /* Add to checksum the pt_len bytes of plaintext followed by */ /* the last (16 - pt_len) bytes of block-cipher output */ memcpy(tmp, pt_blk + i, pt_len); xor_block(checksum, checksum, tmp); /* * Calculate tag */ xor_block(checksum, checksum, Offset); rijndaelEncrypt(key->rek, AES_ROUNDS, checksum, tmp); memcpy(tag, tmp, key->tag_len); } /************************************************************************* * ocb_aes_decrypt *************************************************************************/ int /* Returns 0 iff tag is incorrect */ ocb_aes_decrypt(keystruct *key, /* Initialized key struct */ void *nonce, /* 16-byte nonce */ void *ct, /* Buffer for (incoming) ciphertext */ unsigned ct_len, /* Byte length of ct */ void *pt, /* Buffer for (outgoing) plaintext */ void *tag) /* Tag to be verified */ { unsigned i; /* Block counter */ block tmp, tmp2; /* temporary buffers */ block *ct_blk, *pt_blk; /* block-typed aliases for ct / pt */ block Offset; /* Offset (Z[i]) for current block */ block checksum; /* Checksum for computing tag */ /* * Initializations */ i = 1; /* Start with first block */ ct_blk = (block *)ct - 1; /* These are adjusted so, for example, */ pt_blk = (block *)pt - 1; /* ct_blk[1] refers to the first block */ /* Zero checksum */ memset(checksum, 0, 16); /* Calculate R, aka Z[0] */ xor_block(Offset, nonce, key->L); rijndaelEncrypt (key->rek, AES_ROUNDS, Offset, Offset); /* * Process blocks 1 .. m-1 */ while (ct_len > 16) { /* Update Offset (Z[i] from Z[i-1]) */ xor_block(Offset, key->L + ntz(i), Offset); /* xor ciphertext block with Z[i] */ xor_block(tmp, Offset, ct_blk + i); /* Decipher the next block-cipher block */ rijndaelDecrypt (key->rdk, AES_ROUNDS, tmp, tmp); /* xor Z[i] again, writing result to plaintext ponter */ xor_block(pt_blk + i, Offset, tmp); /* Update checksum */ xor_block(checksum, checksum, pt_blk + i); /* Update loop variables */ ct_len -= 16; i++; } /* * Process block m */ /* Update Offset (Z[m] from Z[m-1]) */ xor_block(Offset, key->L + ntz(i), Offset); /* xor L . x^{-1} and Z[m] */ xor_block(tmp, Offset, key->L_inv); /* Add in final block bit-length */ tmp[15] ^= (ct_len << 3); rijndaelEncrypt (key->rek, AES_ROUNDS, tmp, tmp); /* Form the final ciphertext block, C[m] */ memset(tmp2, 0, 16); memcpy(tmp2, ct_blk + i, ct_len); xor_block(tmp, tmp2, tmp); memcpy(pt_blk + i, tmp, ct_len); /* After the xor above, tmp will have ct_len bytes of plaintext */ /* then (16 - ct_len) block-cipher bytes, perfect for checksum. */ xor_block(checksum, checksum, tmp); /* * Calculate tag */ xor_block(checksum, checksum, Offset); rijndaelEncrypt(key->rek, AES_ROUNDS, checksum, tmp); return (memcmp(tag, tmp, key->tag_len) == 0 ? 1 : 0); } /************************************************************************* * ocb_done *************************************************************************/ keystruct * ocb_done(keystruct *key) { if (key) { memset(key, 0, sizeof(keystruct)); free(key); } return NULL; } tcpcrypt-0.5/contrib/cmac.h0000644000175200017520000000616612742073006015012 0ustar sorbosorbo/* crypto/cmac/cmac.h */ /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL * project. */ /* ==================================================================== * Copyright (c) 2010 The OpenSSL Project. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. All advertising materials mentioning features or use of this * software must display the following acknowledgment: * "This product includes software developed by the OpenSSL Project * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" * * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to * endorse or promote products derived from this software without * prior written permission. For written permission, please contact * licensing@OpenSSL.org. * * 5. Products derived from this software may not be called "OpenSSL" * nor may "OpenSSL" appear in their names without prior written * permission of the OpenSSL Project. * * 6. Redistributions of any form whatsoever must retain the following * acknowledgment: * "This product includes software developed by the OpenSSL Project * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" * * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED * OF THE POSSIBILITY OF SUCH DAMAGE. * ==================================================================== */ #ifndef HEADER_CMAC_H #define HEADER_CMAC_H #ifdef __cplusplus extern "C" { #endif #include /* Opaque */ typedef struct CMAC_CTX_st CMAC_CTX; CMAC_CTX *CMAC_CTX_new(void); void CMAC_CTX_cleanup(CMAC_CTX *ctx); void CMAC_CTX_free(CMAC_CTX *ctx); EVP_CIPHER_CTX *CMAC_CTX_get0_cipher_ctx(CMAC_CTX *ctx); int CMAC_Init(CMAC_CTX *ctx, const void *key, size_t keylen, const EVP_CIPHER *cipher, ENGINE *impl); int CMAC_Update(CMAC_CTX *ctx, const void *data, size_t dlen); int CMAC_Final(CMAC_CTX *ctx, unsigned char *out, size_t *poutlen); int CMAC_resume(CMAC_CTX *ctx); #ifdef __cplusplus } #endif #endif tcpcrypt-0.5/contrib/.gitignore0000644000175200017520000000001012742073006015704 0ustar sorbosorbo*.o *.d tcpcrypt-0.5/contrib/rijndael-alg-fst-ni.c0000644000175200017520000012555212742073006017632 0ustar sorbosorbo/** * rijndael-alg-fst.c * * @version 3.0 (December 2000) * * Optimised ANSI C code for the Rijndael cipher (now AES) * * @author Vincent Rijmen * @author Antoon Bosselaers * @author Paulo Barreto * * This code is hereby placed in the public domain. * * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ''AS IS'' AND ANY EXPRESS * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include #include #include "rijndael-alg-fst.h" /* Te0[x] = S [x].[02, 01, 01, 03]; Te1[x] = S [x].[03, 02, 01, 01]; Te2[x] = S [x].[01, 03, 02, 01]; Te3[x] = S [x].[01, 01, 03, 02]; Te4[x] = S [x].[01, 01, 01, 01]; Td0[x] = Si[x].[0e, 09, 0d, 0b]; Td1[x] = Si[x].[0b, 0e, 09, 0d]; Td2[x] = Si[x].[0d, 0b, 0e, 09]; Td3[x] = Si[x].[09, 0d, 0b, 0e]; Td4[x] = Si[x].[01, 01, 01, 01]; */ static const u32 Te0[256] = { 0xc66363a5U, 0xf87c7c84U, 0xee777799U, 0xf67b7b8dU, 0xfff2f20dU, 0xd66b6bbdU, 0xde6f6fb1U, 0x91c5c554U, 0x60303050U, 0x02010103U, 0xce6767a9U, 0x562b2b7dU, 0xe7fefe19U, 0xb5d7d762U, 0x4dababe6U, 0xec76769aU, 0x8fcaca45U, 0x1f82829dU, 0x89c9c940U, 0xfa7d7d87U, 0xeffafa15U, 0xb25959ebU, 0x8e4747c9U, 0xfbf0f00bU, 0x41adadecU, 0xb3d4d467U, 0x5fa2a2fdU, 0x45afafeaU, 0x239c9cbfU, 0x53a4a4f7U, 0xe4727296U, 0x9bc0c05bU, 0x75b7b7c2U, 0xe1fdfd1cU, 0x3d9393aeU, 0x4c26266aU, 0x6c36365aU, 0x7e3f3f41U, 0xf5f7f702U, 0x83cccc4fU, 0x6834345cU, 0x51a5a5f4U, 0xd1e5e534U, 0xf9f1f108U, 0xe2717193U, 0xabd8d873U, 0x62313153U, 0x2a15153fU, 0x0804040cU, 0x95c7c752U, 0x46232365U, 0x9dc3c35eU, 0x30181828U, 0x379696a1U, 0x0a05050fU, 0x2f9a9ab5U, 0x0e070709U, 0x24121236U, 0x1b80809bU, 0xdfe2e23dU, 0xcdebeb26U, 0x4e272769U, 0x7fb2b2cdU, 0xea75759fU, 0x1209091bU, 0x1d83839eU, 0x582c2c74U, 0x341a1a2eU, 0x361b1b2dU, 0xdc6e6eb2U, 0xb45a5aeeU, 0x5ba0a0fbU, 0xa45252f6U, 0x763b3b4dU, 0xb7d6d661U, 0x7db3b3ceU, 0x5229297bU, 0xdde3e33eU, 0x5e2f2f71U, 0x13848497U, 0xa65353f5U, 0xb9d1d168U, 0x00000000U, 0xc1eded2cU, 0x40202060U, 0xe3fcfc1fU, 0x79b1b1c8U, 0xb65b5bedU, 0xd46a6abeU, 0x8dcbcb46U, 0x67bebed9U, 0x7239394bU, 0x944a4adeU, 0x984c4cd4U, 0xb05858e8U, 0x85cfcf4aU, 0xbbd0d06bU, 0xc5efef2aU, 0x4faaaae5U, 0xedfbfb16U, 0x864343c5U, 0x9a4d4dd7U, 0x66333355U, 0x11858594U, 0x8a4545cfU, 0xe9f9f910U, 0x04020206U, 0xfe7f7f81U, 0xa05050f0U, 0x783c3c44U, 0x259f9fbaU, 0x4ba8a8e3U, 0xa25151f3U, 0x5da3a3feU, 0x804040c0U, 0x058f8f8aU, 0x3f9292adU, 0x219d9dbcU, 0x70383848U, 0xf1f5f504U, 0x63bcbcdfU, 0x77b6b6c1U, 0xafdada75U, 0x42212163U, 0x20101030U, 0xe5ffff1aU, 0xfdf3f30eU, 0xbfd2d26dU, 0x81cdcd4cU, 0x180c0c14U, 0x26131335U, 0xc3ecec2fU, 0xbe5f5fe1U, 0x359797a2U, 0x884444ccU, 0x2e171739U, 0x93c4c457U, 0x55a7a7f2U, 0xfc7e7e82U, 0x7a3d3d47U, 0xc86464acU, 0xba5d5de7U, 0x3219192bU, 0xe6737395U, 0xc06060a0U, 0x19818198U, 0x9e4f4fd1U, 0xa3dcdc7fU, 0x44222266U, 0x542a2a7eU, 0x3b9090abU, 0x0b888883U, 0x8c4646caU, 0xc7eeee29U, 0x6bb8b8d3U, 0x2814143cU, 0xa7dede79U, 0xbc5e5ee2U, 0x160b0b1dU, 0xaddbdb76U, 0xdbe0e03bU, 0x64323256U, 0x743a3a4eU, 0x140a0a1eU, 0x924949dbU, 0x0c06060aU, 0x4824246cU, 0xb85c5ce4U, 0x9fc2c25dU, 0xbdd3d36eU, 0x43acacefU, 0xc46262a6U, 0x399191a8U, 0x319595a4U, 0xd3e4e437U, 0xf279798bU, 0xd5e7e732U, 0x8bc8c843U, 0x6e373759U, 0xda6d6db7U, 0x018d8d8cU, 0xb1d5d564U, 0x9c4e4ed2U, 0x49a9a9e0U, 0xd86c6cb4U, 0xac5656faU, 0xf3f4f407U, 0xcfeaea25U, 0xca6565afU, 0xf47a7a8eU, 0x47aeaee9U, 0x10080818U, 0x6fbabad5U, 0xf0787888U, 0x4a25256fU, 0x5c2e2e72U, 0x381c1c24U, 0x57a6a6f1U, 0x73b4b4c7U, 0x97c6c651U, 0xcbe8e823U, 0xa1dddd7cU, 0xe874749cU, 0x3e1f1f21U, 0x964b4bddU, 0x61bdbddcU, 0x0d8b8b86U, 0x0f8a8a85U, 0xe0707090U, 0x7c3e3e42U, 0x71b5b5c4U, 0xcc6666aaU, 0x904848d8U, 0x06030305U, 0xf7f6f601U, 0x1c0e0e12U, 0xc26161a3U, 0x6a35355fU, 0xae5757f9U, 0x69b9b9d0U, 0x17868691U, 0x99c1c158U, 0x3a1d1d27U, 0x279e9eb9U, 0xd9e1e138U, 0xebf8f813U, 0x2b9898b3U, 0x22111133U, 0xd26969bbU, 0xa9d9d970U, 0x078e8e89U, 0x339494a7U, 0x2d9b9bb6U, 0x3c1e1e22U, 0x15878792U, 0xc9e9e920U, 0x87cece49U, 0xaa5555ffU, 0x50282878U, 0xa5dfdf7aU, 0x038c8c8fU, 0x59a1a1f8U, 0x09898980U, 0x1a0d0d17U, 0x65bfbfdaU, 0xd7e6e631U, 0x844242c6U, 0xd06868b8U, 0x824141c3U, 0x299999b0U, 0x5a2d2d77U, 0x1e0f0f11U, 0x7bb0b0cbU, 0xa85454fcU, 0x6dbbbbd6U, 0x2c16163aU, }; static const u32 Te1[256] = { 0xa5c66363U, 0x84f87c7cU, 0x99ee7777U, 0x8df67b7bU, 0x0dfff2f2U, 0xbdd66b6bU, 0xb1de6f6fU, 0x5491c5c5U, 0x50603030U, 0x03020101U, 0xa9ce6767U, 0x7d562b2bU, 0x19e7fefeU, 0x62b5d7d7U, 0xe64dababU, 0x9aec7676U, 0x458fcacaU, 0x9d1f8282U, 0x4089c9c9U, 0x87fa7d7dU, 0x15effafaU, 0xebb25959U, 0xc98e4747U, 0x0bfbf0f0U, 0xec41adadU, 0x67b3d4d4U, 0xfd5fa2a2U, 0xea45afafU, 0xbf239c9cU, 0xf753a4a4U, 0x96e47272U, 0x5b9bc0c0U, 0xc275b7b7U, 0x1ce1fdfdU, 0xae3d9393U, 0x6a4c2626U, 0x5a6c3636U, 0x417e3f3fU, 0x02f5f7f7U, 0x4f83ccccU, 0x5c683434U, 0xf451a5a5U, 0x34d1e5e5U, 0x08f9f1f1U, 0x93e27171U, 0x73abd8d8U, 0x53623131U, 0x3f2a1515U, 0x0c080404U, 0x5295c7c7U, 0x65462323U, 0x5e9dc3c3U, 0x28301818U, 0xa1379696U, 0x0f0a0505U, 0xb52f9a9aU, 0x090e0707U, 0x36241212U, 0x9b1b8080U, 0x3ddfe2e2U, 0x26cdebebU, 0x694e2727U, 0xcd7fb2b2U, 0x9fea7575U, 0x1b120909U, 0x9e1d8383U, 0x74582c2cU, 0x2e341a1aU, 0x2d361b1bU, 0xb2dc6e6eU, 0xeeb45a5aU, 0xfb5ba0a0U, 0xf6a45252U, 0x4d763b3bU, 0x61b7d6d6U, 0xce7db3b3U, 0x7b522929U, 0x3edde3e3U, 0x715e2f2fU, 0x97138484U, 0xf5a65353U, 0x68b9d1d1U, 0x00000000U, 0x2cc1ededU, 0x60402020U, 0x1fe3fcfcU, 0xc879b1b1U, 0xedb65b5bU, 0xbed46a6aU, 0x468dcbcbU, 0xd967bebeU, 0x4b723939U, 0xde944a4aU, 0xd4984c4cU, 0xe8b05858U, 0x4a85cfcfU, 0x6bbbd0d0U, 0x2ac5efefU, 0xe54faaaaU, 0x16edfbfbU, 0xc5864343U, 0xd79a4d4dU, 0x55663333U, 0x94118585U, 0xcf8a4545U, 0x10e9f9f9U, 0x06040202U, 0x81fe7f7fU, 0xf0a05050U, 0x44783c3cU, 0xba259f9fU, 0xe34ba8a8U, 0xf3a25151U, 0xfe5da3a3U, 0xc0804040U, 0x8a058f8fU, 0xad3f9292U, 0xbc219d9dU, 0x48703838U, 0x04f1f5f5U, 0xdf63bcbcU, 0xc177b6b6U, 0x75afdadaU, 0x63422121U, 0x30201010U, 0x1ae5ffffU, 0x0efdf3f3U, 0x6dbfd2d2U, 0x4c81cdcdU, 0x14180c0cU, 0x35261313U, 0x2fc3ececU, 0xe1be5f5fU, 0xa2359797U, 0xcc884444U, 0x392e1717U, 0x5793c4c4U, 0xf255a7a7U, 0x82fc7e7eU, 0x477a3d3dU, 0xacc86464U, 0xe7ba5d5dU, 0x2b321919U, 0x95e67373U, 0xa0c06060U, 0x98198181U, 0xd19e4f4fU, 0x7fa3dcdcU, 0x66442222U, 0x7e542a2aU, 0xab3b9090U, 0x830b8888U, 0xca8c4646U, 0x29c7eeeeU, 0xd36bb8b8U, 0x3c281414U, 0x79a7dedeU, 0xe2bc5e5eU, 0x1d160b0bU, 0x76addbdbU, 0x3bdbe0e0U, 0x56643232U, 0x4e743a3aU, 0x1e140a0aU, 0xdb924949U, 0x0a0c0606U, 0x6c482424U, 0xe4b85c5cU, 0x5d9fc2c2U, 0x6ebdd3d3U, 0xef43acacU, 0xa6c46262U, 0xa8399191U, 0xa4319595U, 0x37d3e4e4U, 0x8bf27979U, 0x32d5e7e7U, 0x438bc8c8U, 0x596e3737U, 0xb7da6d6dU, 0x8c018d8dU, 0x64b1d5d5U, 0xd29c4e4eU, 0xe049a9a9U, 0xb4d86c6cU, 0xfaac5656U, 0x07f3f4f4U, 0x25cfeaeaU, 0xafca6565U, 0x8ef47a7aU, 0xe947aeaeU, 0x18100808U, 0xd56fbabaU, 0x88f07878U, 0x6f4a2525U, 0x725c2e2eU, 0x24381c1cU, 0xf157a6a6U, 0xc773b4b4U, 0x5197c6c6U, 0x23cbe8e8U, 0x7ca1ddddU, 0x9ce87474U, 0x213e1f1fU, 0xdd964b4bU, 0xdc61bdbdU, 0x860d8b8bU, 0x850f8a8aU, 0x90e07070U, 0x427c3e3eU, 0xc471b5b5U, 0xaacc6666U, 0xd8904848U, 0x05060303U, 0x01f7f6f6U, 0x121c0e0eU, 0xa3c26161U, 0x5f6a3535U, 0xf9ae5757U, 0xd069b9b9U, 0x91178686U, 0x5899c1c1U, 0x273a1d1dU, 0xb9279e9eU, 0x38d9e1e1U, 0x13ebf8f8U, 0xb32b9898U, 0x33221111U, 0xbbd26969U, 0x70a9d9d9U, 0x89078e8eU, 0xa7339494U, 0xb62d9b9bU, 0x223c1e1eU, 0x92158787U, 0x20c9e9e9U, 0x4987ceceU, 0xffaa5555U, 0x78502828U, 0x7aa5dfdfU, 0x8f038c8cU, 0xf859a1a1U, 0x80098989U, 0x171a0d0dU, 0xda65bfbfU, 0x31d7e6e6U, 0xc6844242U, 0xb8d06868U, 0xc3824141U, 0xb0299999U, 0x775a2d2dU, 0x111e0f0fU, 0xcb7bb0b0U, 0xfca85454U, 0xd66dbbbbU, 0x3a2c1616U, }; static const u32 Te2[256] = { 0x63a5c663U, 0x7c84f87cU, 0x7799ee77U, 0x7b8df67bU, 0xf20dfff2U, 0x6bbdd66bU, 0x6fb1de6fU, 0xc55491c5U, 0x30506030U, 0x01030201U, 0x67a9ce67U, 0x2b7d562bU, 0xfe19e7feU, 0xd762b5d7U, 0xabe64dabU, 0x769aec76U, 0xca458fcaU, 0x829d1f82U, 0xc94089c9U, 0x7d87fa7dU, 0xfa15effaU, 0x59ebb259U, 0x47c98e47U, 0xf00bfbf0U, 0xadec41adU, 0xd467b3d4U, 0xa2fd5fa2U, 0xafea45afU, 0x9cbf239cU, 0xa4f753a4U, 0x7296e472U, 0xc05b9bc0U, 0xb7c275b7U, 0xfd1ce1fdU, 0x93ae3d93U, 0x266a4c26U, 0x365a6c36U, 0x3f417e3fU, 0xf702f5f7U, 0xcc4f83ccU, 0x345c6834U, 0xa5f451a5U, 0xe534d1e5U, 0xf108f9f1U, 0x7193e271U, 0xd873abd8U, 0x31536231U, 0x153f2a15U, 0x040c0804U, 0xc75295c7U, 0x23654623U, 0xc35e9dc3U, 0x18283018U, 0x96a13796U, 0x050f0a05U, 0x9ab52f9aU, 0x07090e07U, 0x12362412U, 0x809b1b80U, 0xe23ddfe2U, 0xeb26cdebU, 0x27694e27U, 0xb2cd7fb2U, 0x759fea75U, 0x091b1209U, 0x839e1d83U, 0x2c74582cU, 0x1a2e341aU, 0x1b2d361bU, 0x6eb2dc6eU, 0x5aeeb45aU, 0xa0fb5ba0U, 0x52f6a452U, 0x3b4d763bU, 0xd661b7d6U, 0xb3ce7db3U, 0x297b5229U, 0xe33edde3U, 0x2f715e2fU, 0x84971384U, 0x53f5a653U, 0xd168b9d1U, 0x00000000U, 0xed2cc1edU, 0x20604020U, 0xfc1fe3fcU, 0xb1c879b1U, 0x5bedb65bU, 0x6abed46aU, 0xcb468dcbU, 0xbed967beU, 0x394b7239U, 0x4ade944aU, 0x4cd4984cU, 0x58e8b058U, 0xcf4a85cfU, 0xd06bbbd0U, 0xef2ac5efU, 0xaae54faaU, 0xfb16edfbU, 0x43c58643U, 0x4dd79a4dU, 0x33556633U, 0x85941185U, 0x45cf8a45U, 0xf910e9f9U, 0x02060402U, 0x7f81fe7fU, 0x50f0a050U, 0x3c44783cU, 0x9fba259fU, 0xa8e34ba8U, 0x51f3a251U, 0xa3fe5da3U, 0x40c08040U, 0x8f8a058fU, 0x92ad3f92U, 0x9dbc219dU, 0x38487038U, 0xf504f1f5U, 0xbcdf63bcU, 0xb6c177b6U, 0xda75afdaU, 0x21634221U, 0x10302010U, 0xff1ae5ffU, 0xf30efdf3U, 0xd26dbfd2U, 0xcd4c81cdU, 0x0c14180cU, 0x13352613U, 0xec2fc3ecU, 0x5fe1be5fU, 0x97a23597U, 0x44cc8844U, 0x17392e17U, 0xc45793c4U, 0xa7f255a7U, 0x7e82fc7eU, 0x3d477a3dU, 0x64acc864U, 0x5de7ba5dU, 0x192b3219U, 0x7395e673U, 0x60a0c060U, 0x81981981U, 0x4fd19e4fU, 0xdc7fa3dcU, 0x22664422U, 0x2a7e542aU, 0x90ab3b90U, 0x88830b88U, 0x46ca8c46U, 0xee29c7eeU, 0xb8d36bb8U, 0x143c2814U, 0xde79a7deU, 0x5ee2bc5eU, 0x0b1d160bU, 0xdb76addbU, 0xe03bdbe0U, 0x32566432U, 0x3a4e743aU, 0x0a1e140aU, 0x49db9249U, 0x060a0c06U, 0x246c4824U, 0x5ce4b85cU, 0xc25d9fc2U, 0xd36ebdd3U, 0xacef43acU, 0x62a6c462U, 0x91a83991U, 0x95a43195U, 0xe437d3e4U, 0x798bf279U, 0xe732d5e7U, 0xc8438bc8U, 0x37596e37U, 0x6db7da6dU, 0x8d8c018dU, 0xd564b1d5U, 0x4ed29c4eU, 0xa9e049a9U, 0x6cb4d86cU, 0x56faac56U, 0xf407f3f4U, 0xea25cfeaU, 0x65afca65U, 0x7a8ef47aU, 0xaee947aeU, 0x08181008U, 0xbad56fbaU, 0x7888f078U, 0x256f4a25U, 0x2e725c2eU, 0x1c24381cU, 0xa6f157a6U, 0xb4c773b4U, 0xc65197c6U, 0xe823cbe8U, 0xdd7ca1ddU, 0x749ce874U, 0x1f213e1fU, 0x4bdd964bU, 0xbddc61bdU, 0x8b860d8bU, 0x8a850f8aU, 0x7090e070U, 0x3e427c3eU, 0xb5c471b5U, 0x66aacc66U, 0x48d89048U, 0x03050603U, 0xf601f7f6U, 0x0e121c0eU, 0x61a3c261U, 0x355f6a35U, 0x57f9ae57U, 0xb9d069b9U, 0x86911786U, 0xc15899c1U, 0x1d273a1dU, 0x9eb9279eU, 0xe138d9e1U, 0xf813ebf8U, 0x98b32b98U, 0x11332211U, 0x69bbd269U, 0xd970a9d9U, 0x8e89078eU, 0x94a73394U, 0x9bb62d9bU, 0x1e223c1eU, 0x87921587U, 0xe920c9e9U, 0xce4987ceU, 0x55ffaa55U, 0x28785028U, 0xdf7aa5dfU, 0x8c8f038cU, 0xa1f859a1U, 0x89800989U, 0x0d171a0dU, 0xbfda65bfU, 0xe631d7e6U, 0x42c68442U, 0x68b8d068U, 0x41c38241U, 0x99b02999U, 0x2d775a2dU, 0x0f111e0fU, 0xb0cb7bb0U, 0x54fca854U, 0xbbd66dbbU, 0x163a2c16U, }; static const u32 Te3[256] = { 0x6363a5c6U, 0x7c7c84f8U, 0x777799eeU, 0x7b7b8df6U, 0xf2f20dffU, 0x6b6bbdd6U, 0x6f6fb1deU, 0xc5c55491U, 0x30305060U, 0x01010302U, 0x6767a9ceU, 0x2b2b7d56U, 0xfefe19e7U, 0xd7d762b5U, 0xababe64dU, 0x76769aecU, 0xcaca458fU, 0x82829d1fU, 0xc9c94089U, 0x7d7d87faU, 0xfafa15efU, 0x5959ebb2U, 0x4747c98eU, 0xf0f00bfbU, 0xadadec41U, 0xd4d467b3U, 0xa2a2fd5fU, 0xafafea45U, 0x9c9cbf23U, 0xa4a4f753U, 0x727296e4U, 0xc0c05b9bU, 0xb7b7c275U, 0xfdfd1ce1U, 0x9393ae3dU, 0x26266a4cU, 0x36365a6cU, 0x3f3f417eU, 0xf7f702f5U, 0xcccc4f83U, 0x34345c68U, 0xa5a5f451U, 0xe5e534d1U, 0xf1f108f9U, 0x717193e2U, 0xd8d873abU, 0x31315362U, 0x15153f2aU, 0x04040c08U, 0xc7c75295U, 0x23236546U, 0xc3c35e9dU, 0x18182830U, 0x9696a137U, 0x05050f0aU, 0x9a9ab52fU, 0x0707090eU, 0x12123624U, 0x80809b1bU, 0xe2e23ddfU, 0xebeb26cdU, 0x2727694eU, 0xb2b2cd7fU, 0x75759feaU, 0x09091b12U, 0x83839e1dU, 0x2c2c7458U, 0x1a1a2e34U, 0x1b1b2d36U, 0x6e6eb2dcU, 0x5a5aeeb4U, 0xa0a0fb5bU, 0x5252f6a4U, 0x3b3b4d76U, 0xd6d661b7U, 0xb3b3ce7dU, 0x29297b52U, 0xe3e33eddU, 0x2f2f715eU, 0x84849713U, 0x5353f5a6U, 0xd1d168b9U, 0x00000000U, 0xeded2cc1U, 0x20206040U, 0xfcfc1fe3U, 0xb1b1c879U, 0x5b5bedb6U, 0x6a6abed4U, 0xcbcb468dU, 0xbebed967U, 0x39394b72U, 0x4a4ade94U, 0x4c4cd498U, 0x5858e8b0U, 0xcfcf4a85U, 0xd0d06bbbU, 0xefef2ac5U, 0xaaaae54fU, 0xfbfb16edU, 0x4343c586U, 0x4d4dd79aU, 0x33335566U, 0x85859411U, 0x4545cf8aU, 0xf9f910e9U, 0x02020604U, 0x7f7f81feU, 0x5050f0a0U, 0x3c3c4478U, 0x9f9fba25U, 0xa8a8e34bU, 0x5151f3a2U, 0xa3a3fe5dU, 0x4040c080U, 0x8f8f8a05U, 0x9292ad3fU, 0x9d9dbc21U, 0x38384870U, 0xf5f504f1U, 0xbcbcdf63U, 0xb6b6c177U, 0xdada75afU, 0x21216342U, 0x10103020U, 0xffff1ae5U, 0xf3f30efdU, 0xd2d26dbfU, 0xcdcd4c81U, 0x0c0c1418U, 0x13133526U, 0xecec2fc3U, 0x5f5fe1beU, 0x9797a235U, 0x4444cc88U, 0x1717392eU, 0xc4c45793U, 0xa7a7f255U, 0x7e7e82fcU, 0x3d3d477aU, 0x6464acc8U, 0x5d5de7baU, 0x19192b32U, 0x737395e6U, 0x6060a0c0U, 0x81819819U, 0x4f4fd19eU, 0xdcdc7fa3U, 0x22226644U, 0x2a2a7e54U, 0x9090ab3bU, 0x8888830bU, 0x4646ca8cU, 0xeeee29c7U, 0xb8b8d36bU, 0x14143c28U, 0xdede79a7U, 0x5e5ee2bcU, 0x0b0b1d16U, 0xdbdb76adU, 0xe0e03bdbU, 0x32325664U, 0x3a3a4e74U, 0x0a0a1e14U, 0x4949db92U, 0x06060a0cU, 0x24246c48U, 0x5c5ce4b8U, 0xc2c25d9fU, 0xd3d36ebdU, 0xacacef43U, 0x6262a6c4U, 0x9191a839U, 0x9595a431U, 0xe4e437d3U, 0x79798bf2U, 0xe7e732d5U, 0xc8c8438bU, 0x3737596eU, 0x6d6db7daU, 0x8d8d8c01U, 0xd5d564b1U, 0x4e4ed29cU, 0xa9a9e049U, 0x6c6cb4d8U, 0x5656faacU, 0xf4f407f3U, 0xeaea25cfU, 0x6565afcaU, 0x7a7a8ef4U, 0xaeaee947U, 0x08081810U, 0xbabad56fU, 0x787888f0U, 0x25256f4aU, 0x2e2e725cU, 0x1c1c2438U, 0xa6a6f157U, 0xb4b4c773U, 0xc6c65197U, 0xe8e823cbU, 0xdddd7ca1U, 0x74749ce8U, 0x1f1f213eU, 0x4b4bdd96U, 0xbdbddc61U, 0x8b8b860dU, 0x8a8a850fU, 0x707090e0U, 0x3e3e427cU, 0xb5b5c471U, 0x6666aaccU, 0x4848d890U, 0x03030506U, 0xf6f601f7U, 0x0e0e121cU, 0x6161a3c2U, 0x35355f6aU, 0x5757f9aeU, 0xb9b9d069U, 0x86869117U, 0xc1c15899U, 0x1d1d273aU, 0x9e9eb927U, 0xe1e138d9U, 0xf8f813ebU, 0x9898b32bU, 0x11113322U, 0x6969bbd2U, 0xd9d970a9U, 0x8e8e8907U, 0x9494a733U, 0x9b9bb62dU, 0x1e1e223cU, 0x87879215U, 0xe9e920c9U, 0xcece4987U, 0x5555ffaaU, 0x28287850U, 0xdfdf7aa5U, 0x8c8c8f03U, 0xa1a1f859U, 0x89898009U, 0x0d0d171aU, 0xbfbfda65U, 0xe6e631d7U, 0x4242c684U, 0x6868b8d0U, 0x4141c382U, 0x9999b029U, 0x2d2d775aU, 0x0f0f111eU, 0xb0b0cb7bU, 0x5454fca8U, 0xbbbbd66dU, 0x16163a2cU, }; static const u32 Te4[256] = { 0x63636363U, 0x7c7c7c7cU, 0x77777777U, 0x7b7b7b7bU, 0xf2f2f2f2U, 0x6b6b6b6bU, 0x6f6f6f6fU, 0xc5c5c5c5U, 0x30303030U, 0x01010101U, 0x67676767U, 0x2b2b2b2bU, 0xfefefefeU, 0xd7d7d7d7U, 0xababababU, 0x76767676U, 0xcacacacaU, 0x82828282U, 0xc9c9c9c9U, 0x7d7d7d7dU, 0xfafafafaU, 0x59595959U, 0x47474747U, 0xf0f0f0f0U, 0xadadadadU, 0xd4d4d4d4U, 0xa2a2a2a2U, 0xafafafafU, 0x9c9c9c9cU, 0xa4a4a4a4U, 0x72727272U, 0xc0c0c0c0U, 0xb7b7b7b7U, 0xfdfdfdfdU, 0x93939393U, 0x26262626U, 0x36363636U, 0x3f3f3f3fU, 0xf7f7f7f7U, 0xccccccccU, 0x34343434U, 0xa5a5a5a5U, 0xe5e5e5e5U, 0xf1f1f1f1U, 0x71717171U, 0xd8d8d8d8U, 0x31313131U, 0x15151515U, 0x04040404U, 0xc7c7c7c7U, 0x23232323U, 0xc3c3c3c3U, 0x18181818U, 0x96969696U, 0x05050505U, 0x9a9a9a9aU, 0x07070707U, 0x12121212U, 0x80808080U, 0xe2e2e2e2U, 0xebebebebU, 0x27272727U, 0xb2b2b2b2U, 0x75757575U, 0x09090909U, 0x83838383U, 0x2c2c2c2cU, 0x1a1a1a1aU, 0x1b1b1b1bU, 0x6e6e6e6eU, 0x5a5a5a5aU, 0xa0a0a0a0U, 0x52525252U, 0x3b3b3b3bU, 0xd6d6d6d6U, 0xb3b3b3b3U, 0x29292929U, 0xe3e3e3e3U, 0x2f2f2f2fU, 0x84848484U, 0x53535353U, 0xd1d1d1d1U, 0x00000000U, 0xededededU, 0x20202020U, 0xfcfcfcfcU, 0xb1b1b1b1U, 0x5b5b5b5bU, 0x6a6a6a6aU, 0xcbcbcbcbU, 0xbebebebeU, 0x39393939U, 0x4a4a4a4aU, 0x4c4c4c4cU, 0x58585858U, 0xcfcfcfcfU, 0xd0d0d0d0U, 0xefefefefU, 0xaaaaaaaaU, 0xfbfbfbfbU, 0x43434343U, 0x4d4d4d4dU, 0x33333333U, 0x85858585U, 0x45454545U, 0xf9f9f9f9U, 0x02020202U, 0x7f7f7f7fU, 0x50505050U, 0x3c3c3c3cU, 0x9f9f9f9fU, 0xa8a8a8a8U, 0x51515151U, 0xa3a3a3a3U, 0x40404040U, 0x8f8f8f8fU, 0x92929292U, 0x9d9d9d9dU, 0x38383838U, 0xf5f5f5f5U, 0xbcbcbcbcU, 0xb6b6b6b6U, 0xdadadadaU, 0x21212121U, 0x10101010U, 0xffffffffU, 0xf3f3f3f3U, 0xd2d2d2d2U, 0xcdcdcdcdU, 0x0c0c0c0cU, 0x13131313U, 0xececececU, 0x5f5f5f5fU, 0x97979797U, 0x44444444U, 0x17171717U, 0xc4c4c4c4U, 0xa7a7a7a7U, 0x7e7e7e7eU, 0x3d3d3d3dU, 0x64646464U, 0x5d5d5d5dU, 0x19191919U, 0x73737373U, 0x60606060U, 0x81818181U, 0x4f4f4f4fU, 0xdcdcdcdcU, 0x22222222U, 0x2a2a2a2aU, 0x90909090U, 0x88888888U, 0x46464646U, 0xeeeeeeeeU, 0xb8b8b8b8U, 0x14141414U, 0xdedededeU, 0x5e5e5e5eU, 0x0b0b0b0bU, 0xdbdbdbdbU, 0xe0e0e0e0U, 0x32323232U, 0x3a3a3a3aU, 0x0a0a0a0aU, 0x49494949U, 0x06060606U, 0x24242424U, 0x5c5c5c5cU, 0xc2c2c2c2U, 0xd3d3d3d3U, 0xacacacacU, 0x62626262U, 0x91919191U, 0x95959595U, 0xe4e4e4e4U, 0x79797979U, 0xe7e7e7e7U, 0xc8c8c8c8U, 0x37373737U, 0x6d6d6d6dU, 0x8d8d8d8dU, 0xd5d5d5d5U, 0x4e4e4e4eU, 0xa9a9a9a9U, 0x6c6c6c6cU, 0x56565656U, 0xf4f4f4f4U, 0xeaeaeaeaU, 0x65656565U, 0x7a7a7a7aU, 0xaeaeaeaeU, 0x08080808U, 0xbabababaU, 0x78787878U, 0x25252525U, 0x2e2e2e2eU, 0x1c1c1c1cU, 0xa6a6a6a6U, 0xb4b4b4b4U, 0xc6c6c6c6U, 0xe8e8e8e8U, 0xddddddddU, 0x74747474U, 0x1f1f1f1fU, 0x4b4b4b4bU, 0xbdbdbdbdU, 0x8b8b8b8bU, 0x8a8a8a8aU, 0x70707070U, 0x3e3e3e3eU, 0xb5b5b5b5U, 0x66666666U, 0x48484848U, 0x03030303U, 0xf6f6f6f6U, 0x0e0e0e0eU, 0x61616161U, 0x35353535U, 0x57575757U, 0xb9b9b9b9U, 0x86868686U, 0xc1c1c1c1U, 0x1d1d1d1dU, 0x9e9e9e9eU, 0xe1e1e1e1U, 0xf8f8f8f8U, 0x98989898U, 0x11111111U, 0x69696969U, 0xd9d9d9d9U, 0x8e8e8e8eU, 0x94949494U, 0x9b9b9b9bU, 0x1e1e1e1eU, 0x87878787U, 0xe9e9e9e9U, 0xcecececeU, 0x55555555U, 0x28282828U, 0xdfdfdfdfU, 0x8c8c8c8cU, 0xa1a1a1a1U, 0x89898989U, 0x0d0d0d0dU, 0xbfbfbfbfU, 0xe6e6e6e6U, 0x42424242U, 0x68686868U, 0x41414141U, 0x99999999U, 0x2d2d2d2dU, 0x0f0f0f0fU, 0xb0b0b0b0U, 0x54545454U, 0xbbbbbbbbU, 0x16161616U, }; static const u32 Td0[256] = { 0x51f4a750U, 0x7e416553U, 0x1a17a4c3U, 0x3a275e96U, 0x3bab6bcbU, 0x1f9d45f1U, 0xacfa58abU, 0x4be30393U, 0x2030fa55U, 0xad766df6U, 0x88cc7691U, 0xf5024c25U, 0x4fe5d7fcU, 0xc52acbd7U, 0x26354480U, 0xb562a38fU, 0xdeb15a49U, 0x25ba1b67U, 0x45ea0e98U, 0x5dfec0e1U, 0xc32f7502U, 0x814cf012U, 0x8d4697a3U, 0x6bd3f9c6U, 0x038f5fe7U, 0x15929c95U, 0xbf6d7aebU, 0x955259daU, 0xd4be832dU, 0x587421d3U, 0x49e06929U, 0x8ec9c844U, 0x75c2896aU, 0xf48e7978U, 0x99583e6bU, 0x27b971ddU, 0xbee14fb6U, 0xf088ad17U, 0xc920ac66U, 0x7dce3ab4U, 0x63df4a18U, 0xe51a3182U, 0x97513360U, 0x62537f45U, 0xb16477e0U, 0xbb6bae84U, 0xfe81a01cU, 0xf9082b94U, 0x70486858U, 0x8f45fd19U, 0x94de6c87U, 0x527bf8b7U, 0xab73d323U, 0x724b02e2U, 0xe31f8f57U, 0x6655ab2aU, 0xb2eb2807U, 0x2fb5c203U, 0x86c57b9aU, 0xd33708a5U, 0x302887f2U, 0x23bfa5b2U, 0x02036abaU, 0xed16825cU, 0x8acf1c2bU, 0xa779b492U, 0xf307f2f0U, 0x4e69e2a1U, 0x65daf4cdU, 0x0605bed5U, 0xd134621fU, 0xc4a6fe8aU, 0x342e539dU, 0xa2f355a0U, 0x058ae132U, 0xa4f6eb75U, 0x0b83ec39U, 0x4060efaaU, 0x5e719f06U, 0xbd6e1051U, 0x3e218af9U, 0x96dd063dU, 0xdd3e05aeU, 0x4de6bd46U, 0x91548db5U, 0x71c45d05U, 0x0406d46fU, 0x605015ffU, 0x1998fb24U, 0xd6bde997U, 0x894043ccU, 0x67d99e77U, 0xb0e842bdU, 0x07898b88U, 0xe7195b38U, 0x79c8eedbU, 0xa17c0a47U, 0x7c420fe9U, 0xf8841ec9U, 0x00000000U, 0x09808683U, 0x322bed48U, 0x1e1170acU, 0x6c5a724eU, 0xfd0efffbU, 0x0f853856U, 0x3daed51eU, 0x362d3927U, 0x0a0fd964U, 0x685ca621U, 0x9b5b54d1U, 0x24362e3aU, 0x0c0a67b1U, 0x9357e70fU, 0xb4ee96d2U, 0x1b9b919eU, 0x80c0c54fU, 0x61dc20a2U, 0x5a774b69U, 0x1c121a16U, 0xe293ba0aU, 0xc0a02ae5U, 0x3c22e043U, 0x121b171dU, 0x0e090d0bU, 0xf28bc7adU, 0x2db6a8b9U, 0x141ea9c8U, 0x57f11985U, 0xaf75074cU, 0xee99ddbbU, 0xa37f60fdU, 0xf701269fU, 0x5c72f5bcU, 0x44663bc5U, 0x5bfb7e34U, 0x8b432976U, 0xcb23c6dcU, 0xb6edfc68U, 0xb8e4f163U, 0xd731dccaU, 0x42638510U, 0x13972240U, 0x84c61120U, 0x854a247dU, 0xd2bb3df8U, 0xaef93211U, 0xc729a16dU, 0x1d9e2f4bU, 0xdcb230f3U, 0x0d8652ecU, 0x77c1e3d0U, 0x2bb3166cU, 0xa970b999U, 0x119448faU, 0x47e96422U, 0xa8fc8cc4U, 0xa0f03f1aU, 0x567d2cd8U, 0x223390efU, 0x87494ec7U, 0xd938d1c1U, 0x8ccaa2feU, 0x98d40b36U, 0xa6f581cfU, 0xa57ade28U, 0xdab78e26U, 0x3fadbfa4U, 0x2c3a9de4U, 0x5078920dU, 0x6a5fcc9bU, 0x547e4662U, 0xf68d13c2U, 0x90d8b8e8U, 0x2e39f75eU, 0x82c3aff5U, 0x9f5d80beU, 0x69d0937cU, 0x6fd52da9U, 0xcf2512b3U, 0xc8ac993bU, 0x10187da7U, 0xe89c636eU, 0xdb3bbb7bU, 0xcd267809U, 0x6e5918f4U, 0xec9ab701U, 0x834f9aa8U, 0xe6956e65U, 0xaaffe67eU, 0x21bccf08U, 0xef15e8e6U, 0xbae79bd9U, 0x4a6f36ceU, 0xea9f09d4U, 0x29b07cd6U, 0x31a4b2afU, 0x2a3f2331U, 0xc6a59430U, 0x35a266c0U, 0x744ebc37U, 0xfc82caa6U, 0xe090d0b0U, 0x33a7d815U, 0xf104984aU, 0x41ecdaf7U, 0x7fcd500eU, 0x1791f62fU, 0x764dd68dU, 0x43efb04dU, 0xccaa4d54U, 0xe49604dfU, 0x9ed1b5e3U, 0x4c6a881bU, 0xc12c1fb8U, 0x4665517fU, 0x9d5eea04U, 0x018c355dU, 0xfa877473U, 0xfb0b412eU, 0xb3671d5aU, 0x92dbd252U, 0xe9105633U, 0x6dd64713U, 0x9ad7618cU, 0x37a10c7aU, 0x59f8148eU, 0xeb133c89U, 0xcea927eeU, 0xb761c935U, 0xe11ce5edU, 0x7a47b13cU, 0x9cd2df59U, 0x55f2733fU, 0x1814ce79U, 0x73c737bfU, 0x53f7cdeaU, 0x5ffdaa5bU, 0xdf3d6f14U, 0x7844db86U, 0xcaaff381U, 0xb968c43eU, 0x3824342cU, 0xc2a3405fU, 0x161dc372U, 0xbce2250cU, 0x283c498bU, 0xff0d9541U, 0x39a80171U, 0x080cb3deU, 0xd8b4e49cU, 0x6456c190U, 0x7bcb8461U, 0xd532b670U, 0x486c5c74U, 0xd0b85742U, }; static const u32 Td1[256] = { 0x5051f4a7U, 0x537e4165U, 0xc31a17a4U, 0x963a275eU, 0xcb3bab6bU, 0xf11f9d45U, 0xabacfa58U, 0x934be303U, 0x552030faU, 0xf6ad766dU, 0x9188cc76U, 0x25f5024cU, 0xfc4fe5d7U, 0xd7c52acbU, 0x80263544U, 0x8fb562a3U, 0x49deb15aU, 0x6725ba1bU, 0x9845ea0eU, 0xe15dfec0U, 0x02c32f75U, 0x12814cf0U, 0xa38d4697U, 0xc66bd3f9U, 0xe7038f5fU, 0x9515929cU, 0xebbf6d7aU, 0xda955259U, 0x2dd4be83U, 0xd3587421U, 0x2949e069U, 0x448ec9c8U, 0x6a75c289U, 0x78f48e79U, 0x6b99583eU, 0xdd27b971U, 0xb6bee14fU, 0x17f088adU, 0x66c920acU, 0xb47dce3aU, 0x1863df4aU, 0x82e51a31U, 0x60975133U, 0x4562537fU, 0xe0b16477U, 0x84bb6baeU, 0x1cfe81a0U, 0x94f9082bU, 0x58704868U, 0x198f45fdU, 0x8794de6cU, 0xb7527bf8U, 0x23ab73d3U, 0xe2724b02U, 0x57e31f8fU, 0x2a6655abU, 0x07b2eb28U, 0x032fb5c2U, 0x9a86c57bU, 0xa5d33708U, 0xf2302887U, 0xb223bfa5U, 0xba02036aU, 0x5ced1682U, 0x2b8acf1cU, 0x92a779b4U, 0xf0f307f2U, 0xa14e69e2U, 0xcd65daf4U, 0xd50605beU, 0x1fd13462U, 0x8ac4a6feU, 0x9d342e53U, 0xa0a2f355U, 0x32058ae1U, 0x75a4f6ebU, 0x390b83ecU, 0xaa4060efU, 0x065e719fU, 0x51bd6e10U, 0xf93e218aU, 0x3d96dd06U, 0xaedd3e05U, 0x464de6bdU, 0xb591548dU, 0x0571c45dU, 0x6f0406d4U, 0xff605015U, 0x241998fbU, 0x97d6bde9U, 0xcc894043U, 0x7767d99eU, 0xbdb0e842U, 0x8807898bU, 0x38e7195bU, 0xdb79c8eeU, 0x47a17c0aU, 0xe97c420fU, 0xc9f8841eU, 0x00000000U, 0x83098086U, 0x48322bedU, 0xac1e1170U, 0x4e6c5a72U, 0xfbfd0effU, 0x560f8538U, 0x1e3daed5U, 0x27362d39U, 0x640a0fd9U, 0x21685ca6U, 0xd19b5b54U, 0x3a24362eU, 0xb10c0a67U, 0x0f9357e7U, 0xd2b4ee96U, 0x9e1b9b91U, 0x4f80c0c5U, 0xa261dc20U, 0x695a774bU, 0x161c121aU, 0x0ae293baU, 0xe5c0a02aU, 0x433c22e0U, 0x1d121b17U, 0x0b0e090dU, 0xadf28bc7U, 0xb92db6a8U, 0xc8141ea9U, 0x8557f119U, 0x4caf7507U, 0xbbee99ddU, 0xfda37f60U, 0x9ff70126U, 0xbc5c72f5U, 0xc544663bU, 0x345bfb7eU, 0x768b4329U, 0xdccb23c6U, 0x68b6edfcU, 0x63b8e4f1U, 0xcad731dcU, 0x10426385U, 0x40139722U, 0x2084c611U, 0x7d854a24U, 0xf8d2bb3dU, 0x11aef932U, 0x6dc729a1U, 0x4b1d9e2fU, 0xf3dcb230U, 0xec0d8652U, 0xd077c1e3U, 0x6c2bb316U, 0x99a970b9U, 0xfa119448U, 0x2247e964U, 0xc4a8fc8cU, 0x1aa0f03fU, 0xd8567d2cU, 0xef223390U, 0xc787494eU, 0xc1d938d1U, 0xfe8ccaa2U, 0x3698d40bU, 0xcfa6f581U, 0x28a57adeU, 0x26dab78eU, 0xa43fadbfU, 0xe42c3a9dU, 0x0d507892U, 0x9b6a5fccU, 0x62547e46U, 0xc2f68d13U, 0xe890d8b8U, 0x5e2e39f7U, 0xf582c3afU, 0xbe9f5d80U, 0x7c69d093U, 0xa96fd52dU, 0xb3cf2512U, 0x3bc8ac99U, 0xa710187dU, 0x6ee89c63U, 0x7bdb3bbbU, 0x09cd2678U, 0xf46e5918U, 0x01ec9ab7U, 0xa8834f9aU, 0x65e6956eU, 0x7eaaffe6U, 0x0821bccfU, 0xe6ef15e8U, 0xd9bae79bU, 0xce4a6f36U, 0xd4ea9f09U, 0xd629b07cU, 0xaf31a4b2U, 0x312a3f23U, 0x30c6a594U, 0xc035a266U, 0x37744ebcU, 0xa6fc82caU, 0xb0e090d0U, 0x1533a7d8U, 0x4af10498U, 0xf741ecdaU, 0x0e7fcd50U, 0x2f1791f6U, 0x8d764dd6U, 0x4d43efb0U, 0x54ccaa4dU, 0xdfe49604U, 0xe39ed1b5U, 0x1b4c6a88U, 0xb8c12c1fU, 0x7f466551U, 0x049d5eeaU, 0x5d018c35U, 0x73fa8774U, 0x2efb0b41U, 0x5ab3671dU, 0x5292dbd2U, 0x33e91056U, 0x136dd647U, 0x8c9ad761U, 0x7a37a10cU, 0x8e59f814U, 0x89eb133cU, 0xeecea927U, 0x35b761c9U, 0xede11ce5U, 0x3c7a47b1U, 0x599cd2dfU, 0x3f55f273U, 0x791814ceU, 0xbf73c737U, 0xea53f7cdU, 0x5b5ffdaaU, 0x14df3d6fU, 0x867844dbU, 0x81caaff3U, 0x3eb968c4U, 0x2c382434U, 0x5fc2a340U, 0x72161dc3U, 0x0cbce225U, 0x8b283c49U, 0x41ff0d95U, 0x7139a801U, 0xde080cb3U, 0x9cd8b4e4U, 0x906456c1U, 0x617bcb84U, 0x70d532b6U, 0x74486c5cU, 0x42d0b857U, }; static const u32 Td2[256] = { 0xa75051f4U, 0x65537e41U, 0xa4c31a17U, 0x5e963a27U, 0x6bcb3babU, 0x45f11f9dU, 0x58abacfaU, 0x03934be3U, 0xfa552030U, 0x6df6ad76U, 0x769188ccU, 0x4c25f502U, 0xd7fc4fe5U, 0xcbd7c52aU, 0x44802635U, 0xa38fb562U, 0x5a49deb1U, 0x1b6725baU, 0x0e9845eaU, 0xc0e15dfeU, 0x7502c32fU, 0xf012814cU, 0x97a38d46U, 0xf9c66bd3U, 0x5fe7038fU, 0x9c951592U, 0x7aebbf6dU, 0x59da9552U, 0x832dd4beU, 0x21d35874U, 0x692949e0U, 0xc8448ec9U, 0x896a75c2U, 0x7978f48eU, 0x3e6b9958U, 0x71dd27b9U, 0x4fb6bee1U, 0xad17f088U, 0xac66c920U, 0x3ab47dceU, 0x4a1863dfU, 0x3182e51aU, 0x33609751U, 0x7f456253U, 0x77e0b164U, 0xae84bb6bU, 0xa01cfe81U, 0x2b94f908U, 0x68587048U, 0xfd198f45U, 0x6c8794deU, 0xf8b7527bU, 0xd323ab73U, 0x02e2724bU, 0x8f57e31fU, 0xab2a6655U, 0x2807b2ebU, 0xc2032fb5U, 0x7b9a86c5U, 0x08a5d337U, 0x87f23028U, 0xa5b223bfU, 0x6aba0203U, 0x825ced16U, 0x1c2b8acfU, 0xb492a779U, 0xf2f0f307U, 0xe2a14e69U, 0xf4cd65daU, 0xbed50605U, 0x621fd134U, 0xfe8ac4a6U, 0x539d342eU, 0x55a0a2f3U, 0xe132058aU, 0xeb75a4f6U, 0xec390b83U, 0xefaa4060U, 0x9f065e71U, 0x1051bd6eU, 0x8af93e21U, 0x063d96ddU, 0x05aedd3eU, 0xbd464de6U, 0x8db59154U, 0x5d0571c4U, 0xd46f0406U, 0x15ff6050U, 0xfb241998U, 0xe997d6bdU, 0x43cc8940U, 0x9e7767d9U, 0x42bdb0e8U, 0x8b880789U, 0x5b38e719U, 0xeedb79c8U, 0x0a47a17cU, 0x0fe97c42U, 0x1ec9f884U, 0x00000000U, 0x86830980U, 0xed48322bU, 0x70ac1e11U, 0x724e6c5aU, 0xfffbfd0eU, 0x38560f85U, 0xd51e3daeU, 0x3927362dU, 0xd9640a0fU, 0xa621685cU, 0x54d19b5bU, 0x2e3a2436U, 0x67b10c0aU, 0xe70f9357U, 0x96d2b4eeU, 0x919e1b9bU, 0xc54f80c0U, 0x20a261dcU, 0x4b695a77U, 0x1a161c12U, 0xba0ae293U, 0x2ae5c0a0U, 0xe0433c22U, 0x171d121bU, 0x0d0b0e09U, 0xc7adf28bU, 0xa8b92db6U, 0xa9c8141eU, 0x198557f1U, 0x074caf75U, 0xddbbee99U, 0x60fda37fU, 0x269ff701U, 0xf5bc5c72U, 0x3bc54466U, 0x7e345bfbU, 0x29768b43U, 0xc6dccb23U, 0xfc68b6edU, 0xf163b8e4U, 0xdccad731U, 0x85104263U, 0x22401397U, 0x112084c6U, 0x247d854aU, 0x3df8d2bbU, 0x3211aef9U, 0xa16dc729U, 0x2f4b1d9eU, 0x30f3dcb2U, 0x52ec0d86U, 0xe3d077c1U, 0x166c2bb3U, 0xb999a970U, 0x48fa1194U, 0x642247e9U, 0x8cc4a8fcU, 0x3f1aa0f0U, 0x2cd8567dU, 0x90ef2233U, 0x4ec78749U, 0xd1c1d938U, 0xa2fe8ccaU, 0x0b3698d4U, 0x81cfa6f5U, 0xde28a57aU, 0x8e26dab7U, 0xbfa43fadU, 0x9de42c3aU, 0x920d5078U, 0xcc9b6a5fU, 0x4662547eU, 0x13c2f68dU, 0xb8e890d8U, 0xf75e2e39U, 0xaff582c3U, 0x80be9f5dU, 0x937c69d0U, 0x2da96fd5U, 0x12b3cf25U, 0x993bc8acU, 0x7da71018U, 0x636ee89cU, 0xbb7bdb3bU, 0x7809cd26U, 0x18f46e59U, 0xb701ec9aU, 0x9aa8834fU, 0x6e65e695U, 0xe67eaaffU, 0xcf0821bcU, 0xe8e6ef15U, 0x9bd9bae7U, 0x36ce4a6fU, 0x09d4ea9fU, 0x7cd629b0U, 0xb2af31a4U, 0x23312a3fU, 0x9430c6a5U, 0x66c035a2U, 0xbc37744eU, 0xcaa6fc82U, 0xd0b0e090U, 0xd81533a7U, 0x984af104U, 0xdaf741ecU, 0x500e7fcdU, 0xf62f1791U, 0xd68d764dU, 0xb04d43efU, 0x4d54ccaaU, 0x04dfe496U, 0xb5e39ed1U, 0x881b4c6aU, 0x1fb8c12cU, 0x517f4665U, 0xea049d5eU, 0x355d018cU, 0x7473fa87U, 0x412efb0bU, 0x1d5ab367U, 0xd25292dbU, 0x5633e910U, 0x47136dd6U, 0x618c9ad7U, 0x0c7a37a1U, 0x148e59f8U, 0x3c89eb13U, 0x27eecea9U, 0xc935b761U, 0xe5ede11cU, 0xb13c7a47U, 0xdf599cd2U, 0x733f55f2U, 0xce791814U, 0x37bf73c7U, 0xcdea53f7U, 0xaa5b5ffdU, 0x6f14df3dU, 0xdb867844U, 0xf381caafU, 0xc43eb968U, 0x342c3824U, 0x405fc2a3U, 0xc372161dU, 0x250cbce2U, 0x498b283cU, 0x9541ff0dU, 0x017139a8U, 0xb3de080cU, 0xe49cd8b4U, 0xc1906456U, 0x84617bcbU, 0xb670d532U, 0x5c74486cU, 0x5742d0b8U, }; static const u32 Td3[256] = { 0xf4a75051U, 0x4165537eU, 0x17a4c31aU, 0x275e963aU, 0xab6bcb3bU, 0x9d45f11fU, 0xfa58abacU, 0xe303934bU, 0x30fa5520U, 0x766df6adU, 0xcc769188U, 0x024c25f5U, 0xe5d7fc4fU, 0x2acbd7c5U, 0x35448026U, 0x62a38fb5U, 0xb15a49deU, 0xba1b6725U, 0xea0e9845U, 0xfec0e15dU, 0x2f7502c3U, 0x4cf01281U, 0x4697a38dU, 0xd3f9c66bU, 0x8f5fe703U, 0x929c9515U, 0x6d7aebbfU, 0x5259da95U, 0xbe832dd4U, 0x7421d358U, 0xe0692949U, 0xc9c8448eU, 0xc2896a75U, 0x8e7978f4U, 0x583e6b99U, 0xb971dd27U, 0xe14fb6beU, 0x88ad17f0U, 0x20ac66c9U, 0xce3ab47dU, 0xdf4a1863U, 0x1a3182e5U, 0x51336097U, 0x537f4562U, 0x6477e0b1U, 0x6bae84bbU, 0x81a01cfeU, 0x082b94f9U, 0x48685870U, 0x45fd198fU, 0xde6c8794U, 0x7bf8b752U, 0x73d323abU, 0x4b02e272U, 0x1f8f57e3U, 0x55ab2a66U, 0xeb2807b2U, 0xb5c2032fU, 0xc57b9a86U, 0x3708a5d3U, 0x2887f230U, 0xbfa5b223U, 0x036aba02U, 0x16825cedU, 0xcf1c2b8aU, 0x79b492a7U, 0x07f2f0f3U, 0x69e2a14eU, 0xdaf4cd65U, 0x05bed506U, 0x34621fd1U, 0xa6fe8ac4U, 0x2e539d34U, 0xf355a0a2U, 0x8ae13205U, 0xf6eb75a4U, 0x83ec390bU, 0x60efaa40U, 0x719f065eU, 0x6e1051bdU, 0x218af93eU, 0xdd063d96U, 0x3e05aeddU, 0xe6bd464dU, 0x548db591U, 0xc45d0571U, 0x06d46f04U, 0x5015ff60U, 0x98fb2419U, 0xbde997d6U, 0x4043cc89U, 0xd99e7767U, 0xe842bdb0U, 0x898b8807U, 0x195b38e7U, 0xc8eedb79U, 0x7c0a47a1U, 0x420fe97cU, 0x841ec9f8U, 0x00000000U, 0x80868309U, 0x2bed4832U, 0x1170ac1eU, 0x5a724e6cU, 0x0efffbfdU, 0x8538560fU, 0xaed51e3dU, 0x2d392736U, 0x0fd9640aU, 0x5ca62168U, 0x5b54d19bU, 0x362e3a24U, 0x0a67b10cU, 0x57e70f93U, 0xee96d2b4U, 0x9b919e1bU, 0xc0c54f80U, 0xdc20a261U, 0x774b695aU, 0x121a161cU, 0x93ba0ae2U, 0xa02ae5c0U, 0x22e0433cU, 0x1b171d12U, 0x090d0b0eU, 0x8bc7adf2U, 0xb6a8b92dU, 0x1ea9c814U, 0xf1198557U, 0x75074cafU, 0x99ddbbeeU, 0x7f60fda3U, 0x01269ff7U, 0x72f5bc5cU, 0x663bc544U, 0xfb7e345bU, 0x4329768bU, 0x23c6dccbU, 0xedfc68b6U, 0xe4f163b8U, 0x31dccad7U, 0x63851042U, 0x97224013U, 0xc6112084U, 0x4a247d85U, 0xbb3df8d2U, 0xf93211aeU, 0x29a16dc7U, 0x9e2f4b1dU, 0xb230f3dcU, 0x8652ec0dU, 0xc1e3d077U, 0xb3166c2bU, 0x70b999a9U, 0x9448fa11U, 0xe9642247U, 0xfc8cc4a8U, 0xf03f1aa0U, 0x7d2cd856U, 0x3390ef22U, 0x494ec787U, 0x38d1c1d9U, 0xcaa2fe8cU, 0xd40b3698U, 0xf581cfa6U, 0x7ade28a5U, 0xb78e26daU, 0xadbfa43fU, 0x3a9de42cU, 0x78920d50U, 0x5fcc9b6aU, 0x7e466254U, 0x8d13c2f6U, 0xd8b8e890U, 0x39f75e2eU, 0xc3aff582U, 0x5d80be9fU, 0xd0937c69U, 0xd52da96fU, 0x2512b3cfU, 0xac993bc8U, 0x187da710U, 0x9c636ee8U, 0x3bbb7bdbU, 0x267809cdU, 0x5918f46eU, 0x9ab701ecU, 0x4f9aa883U, 0x956e65e6U, 0xffe67eaaU, 0xbccf0821U, 0x15e8e6efU, 0xe79bd9baU, 0x6f36ce4aU, 0x9f09d4eaU, 0xb07cd629U, 0xa4b2af31U, 0x3f23312aU, 0xa59430c6U, 0xa266c035U, 0x4ebc3774U, 0x82caa6fcU, 0x90d0b0e0U, 0xa7d81533U, 0x04984af1U, 0xecdaf741U, 0xcd500e7fU, 0x91f62f17U, 0x4dd68d76U, 0xefb04d43U, 0xaa4d54ccU, 0x9604dfe4U, 0xd1b5e39eU, 0x6a881b4cU, 0x2c1fb8c1U, 0x65517f46U, 0x5eea049dU, 0x8c355d01U, 0x877473faU, 0x0b412efbU, 0x671d5ab3U, 0xdbd25292U, 0x105633e9U, 0xd647136dU, 0xd7618c9aU, 0xa10c7a37U, 0xf8148e59U, 0x133c89ebU, 0xa927eeceU, 0x61c935b7U, 0x1ce5ede1U, 0x47b13c7aU, 0xd2df599cU, 0xf2733f55U, 0x14ce7918U, 0xc737bf73U, 0xf7cdea53U, 0xfdaa5b5fU, 0x3d6f14dfU, 0x44db8678U, 0xaff381caU, 0x68c43eb9U, 0x24342c38U, 0xa3405fc2U, 0x1dc37216U, 0xe2250cbcU, 0x3c498b28U, 0x0d9541ffU, 0xa8017139U, 0x0cb3de08U, 0xb4e49cd8U, 0x56c19064U, 0xcb84617bU, 0x32b670d5U, 0x6c5c7448U, 0xb85742d0U, }; static const u32 Td4[256] = { 0x52525252U, 0x09090909U, 0x6a6a6a6aU, 0xd5d5d5d5U, 0x30303030U, 0x36363636U, 0xa5a5a5a5U, 0x38383838U, 0xbfbfbfbfU, 0x40404040U, 0xa3a3a3a3U, 0x9e9e9e9eU, 0x81818181U, 0xf3f3f3f3U, 0xd7d7d7d7U, 0xfbfbfbfbU, 0x7c7c7c7cU, 0xe3e3e3e3U, 0x39393939U, 0x82828282U, 0x9b9b9b9bU, 0x2f2f2f2fU, 0xffffffffU, 0x87878787U, 0x34343434U, 0x8e8e8e8eU, 0x43434343U, 0x44444444U, 0xc4c4c4c4U, 0xdedededeU, 0xe9e9e9e9U, 0xcbcbcbcbU, 0x54545454U, 0x7b7b7b7bU, 0x94949494U, 0x32323232U, 0xa6a6a6a6U, 0xc2c2c2c2U, 0x23232323U, 0x3d3d3d3dU, 0xeeeeeeeeU, 0x4c4c4c4cU, 0x95959595U, 0x0b0b0b0bU, 0x42424242U, 0xfafafafaU, 0xc3c3c3c3U, 0x4e4e4e4eU, 0x08080808U, 0x2e2e2e2eU, 0xa1a1a1a1U, 0x66666666U, 0x28282828U, 0xd9d9d9d9U, 0x24242424U, 0xb2b2b2b2U, 0x76767676U, 0x5b5b5b5bU, 0xa2a2a2a2U, 0x49494949U, 0x6d6d6d6dU, 0x8b8b8b8bU, 0xd1d1d1d1U, 0x25252525U, 0x72727272U, 0xf8f8f8f8U, 0xf6f6f6f6U, 0x64646464U, 0x86868686U, 0x68686868U, 0x98989898U, 0x16161616U, 0xd4d4d4d4U, 0xa4a4a4a4U, 0x5c5c5c5cU, 0xccccccccU, 0x5d5d5d5dU, 0x65656565U, 0xb6b6b6b6U, 0x92929292U, 0x6c6c6c6cU, 0x70707070U, 0x48484848U, 0x50505050U, 0xfdfdfdfdU, 0xededededU, 0xb9b9b9b9U, 0xdadadadaU, 0x5e5e5e5eU, 0x15151515U, 0x46464646U, 0x57575757U, 0xa7a7a7a7U, 0x8d8d8d8dU, 0x9d9d9d9dU, 0x84848484U, 0x90909090U, 0xd8d8d8d8U, 0xababababU, 0x00000000U, 0x8c8c8c8cU, 0xbcbcbcbcU, 0xd3d3d3d3U, 0x0a0a0a0aU, 0xf7f7f7f7U, 0xe4e4e4e4U, 0x58585858U, 0x05050505U, 0xb8b8b8b8U, 0xb3b3b3b3U, 0x45454545U, 0x06060606U, 0xd0d0d0d0U, 0x2c2c2c2cU, 0x1e1e1e1eU, 0x8f8f8f8fU, 0xcacacacaU, 0x3f3f3f3fU, 0x0f0f0f0fU, 0x02020202U, 0xc1c1c1c1U, 0xafafafafU, 0xbdbdbdbdU, 0x03030303U, 0x01010101U, 0x13131313U, 0x8a8a8a8aU, 0x6b6b6b6bU, 0x3a3a3a3aU, 0x91919191U, 0x11111111U, 0x41414141U, 0x4f4f4f4fU, 0x67676767U, 0xdcdcdcdcU, 0xeaeaeaeaU, 0x97979797U, 0xf2f2f2f2U, 0xcfcfcfcfU, 0xcecececeU, 0xf0f0f0f0U, 0xb4b4b4b4U, 0xe6e6e6e6U, 0x73737373U, 0x96969696U, 0xacacacacU, 0x74747474U, 0x22222222U, 0xe7e7e7e7U, 0xadadadadU, 0x35353535U, 0x85858585U, 0xe2e2e2e2U, 0xf9f9f9f9U, 0x37373737U, 0xe8e8e8e8U, 0x1c1c1c1cU, 0x75757575U, 0xdfdfdfdfU, 0x6e6e6e6eU, 0x47474747U, 0xf1f1f1f1U, 0x1a1a1a1aU, 0x71717171U, 0x1d1d1d1dU, 0x29292929U, 0xc5c5c5c5U, 0x89898989U, 0x6f6f6f6fU, 0xb7b7b7b7U, 0x62626262U, 0x0e0e0e0eU, 0xaaaaaaaaU, 0x18181818U, 0xbebebebeU, 0x1b1b1b1bU, 0xfcfcfcfcU, 0x56565656U, 0x3e3e3e3eU, 0x4b4b4b4bU, 0xc6c6c6c6U, 0xd2d2d2d2U, 0x79797979U, 0x20202020U, 0x9a9a9a9aU, 0xdbdbdbdbU, 0xc0c0c0c0U, 0xfefefefeU, 0x78787878U, 0xcdcdcdcdU, 0x5a5a5a5aU, 0xf4f4f4f4U, 0x1f1f1f1fU, 0xddddddddU, 0xa8a8a8a8U, 0x33333333U, 0x88888888U, 0x07070707U, 0xc7c7c7c7U, 0x31313131U, 0xb1b1b1b1U, 0x12121212U, 0x10101010U, 0x59595959U, 0x27272727U, 0x80808080U, 0xececececU, 0x5f5f5f5fU, 0x60606060U, 0x51515151U, 0x7f7f7f7fU, 0xa9a9a9a9U, 0x19191919U, 0xb5b5b5b5U, 0x4a4a4a4aU, 0x0d0d0d0dU, 0x2d2d2d2dU, 0xe5e5e5e5U, 0x7a7a7a7aU, 0x9f9f9f9fU, 0x93939393U, 0xc9c9c9c9U, 0x9c9c9c9cU, 0xefefefefU, 0xa0a0a0a0U, 0xe0e0e0e0U, 0x3b3b3b3bU, 0x4d4d4d4dU, 0xaeaeaeaeU, 0x2a2a2a2aU, 0xf5f5f5f5U, 0xb0b0b0b0U, 0xc8c8c8c8U, 0xebebebebU, 0xbbbbbbbbU, 0x3c3c3c3cU, 0x83838383U, 0x53535353U, 0x99999999U, 0x61616161U, 0x17171717U, 0x2b2b2b2bU, 0x04040404U, 0x7e7e7e7eU, 0xbabababaU, 0x77777777U, 0xd6d6d6d6U, 0x26262626U, 0xe1e1e1e1U, 0x69696969U, 0x14141414U, 0x63636363U, 0x55555555U, 0x21212121U, 0x0c0c0c0cU, 0x7d7d7d7dU, }; static const u32 rcon[] = { 0x01000000, 0x02000000, 0x04000000, 0x08000000, 0x10000000, 0x20000000, 0x40000000, 0x80000000, 0x1B000000, 0x36000000, /* for 128-bit blocks, Rijndael never uses more than 10 rcon values */ }; #define SWAP(x) (_lrotl(x, 8) & 0x00ff00ff | _lrotr(x, 8) & 0xff00ff00) #ifdef _MSC_VER #define GETU32(p) SWAP(*((u32 *)(p))) #define PUTU32(ct, st) { *((u32 *)(ct)) = SWAP((st)); } #else #define GETU32(pt) (((u32)(pt)[0] << 24) ^ ((u32)(pt)[1] << 16) ^ ((u32)(pt)[2] << 8) ^ ((u32)(pt)[3])) #define PUTU32(ct, st) { (ct)[0] = (u8)((st) >> 24); (ct)[1] = (u8)((st) >> 16); (ct)[2] = (u8)((st) >> 8); (ct)[3] = (u8)(st); } #endif #include void aesni_encrypt(const unsigned char *in, unsigned char *out, const AES_KEY *key); int aesni_set_encrypt_key(const unsigned char *userKey, int bits, AES_KEY *key); /** * Expand the cipher key into the encryption key schedule. * * @return the number of rounds for the given cipher key size. */ int rijndaelKeySetupEnc(u32 rk[/*4*(Nr + 1)*/], const u8 cipherKey[], int keyBits) { return rijndaelKeySetupDec(rk, cipherKey, keyBits); } /** * Expand the cipher key into the decryption key schedule. * * @return the number of rounds for the given cipher key size. */ int rijndaelKeySetupDec(u32 rk[/*4*(Nr + 1)*/], const u8 cipherKey[], int keyBits) { AES_KEY *key, **k2; key = malloc(sizeof(*key)); if (!key) return -1; aesni_set_encrypt_key(cipherKey, keyBits, key); k2 = (AES_KEY**) rk; *k2 = key; return 0; /* XXX */ } void do_aes(AES_KEY *k, void *in, void *out) { aesni_encrypt(in, out, k); } void rijndaelEncrypt(const u32 rk[/*4*(Nr + 1)*/], int Nr, const u8 pt[16], u8 ct[16]) { AES_KEY **k = (AES_KEY**) rk; do_aes(*k, pt, ct); } void rijndaelDecrypt(const u32 rk[/*4*(Nr + 1)*/], int Nr, const u8 ct[16], u8 pt[16]) { AES_KEY **k = (AES_KEY**) rk; do_aes(*k, ct, pt); } #ifdef INTERMEDIATE_VALUE_KAT void rijndaelEncryptRound(const u32 rk[/*4*(Nr + 1)*/], int Nr, u8 block[16], int rounds) { int r; u32 s0, s1, s2, s3, t0, t1, t2, t3; /* * map byte array block to cipher state * and add initial round key: */ s0 = GETU32(block ) ^ rk[0]; s1 = GETU32(block + 4) ^ rk[1]; s2 = GETU32(block + 8) ^ rk[2]; s3 = GETU32(block + 12) ^ rk[3]; rk += 4; /* * Nr - 1 full rounds: */ for (r = (rounds < Nr ? rounds : Nr - 1); r > 0; r--) { t0 = Te0[(s0 >> 24) ] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >> 8) & 0xff] ^ Te3[(s3 ) & 0xff] ^ rk[0]; t1 = Te0[(s1 >> 24) ] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >> 8) & 0xff] ^ Te3[(s0 ) & 0xff] ^ rk[1]; t2 = Te0[(s2 >> 24) ] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >> 8) & 0xff] ^ Te3[(s1 ) & 0xff] ^ rk[2]; t3 = Te0[(s3 >> 24) ] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >> 8) & 0xff] ^ Te3[(s2 ) & 0xff] ^ rk[3]; s0 = t0; s1 = t1; s2 = t2; s3 = t3; rk += 4; } /* * apply last round and * map cipher state to byte array block: */ if (rounds == Nr) { t0 = (Te4[(s0 >> 24) ] & 0xff000000) ^ (Te4[(s1 >> 16) & 0xff] & 0x00ff0000) ^ (Te4[(s2 >> 8) & 0xff] & 0x0000ff00) ^ (Te4[(s3 ) & 0xff] & 0x000000ff) ^ rk[0]; t1 = (Te4[(s1 >> 24) ] & 0xff000000) ^ (Te4[(s2 >> 16) & 0xff] & 0x00ff0000) ^ (Te4[(s3 >> 8) & 0xff] & 0x0000ff00) ^ (Te4[(s0 ) & 0xff] & 0x000000ff) ^ rk[1]; t2 = (Te4[(s2 >> 24) ] & 0xff000000) ^ (Te4[(s3 >> 16) & 0xff] & 0x00ff0000) ^ (Te4[(s0 >> 8) & 0xff] & 0x0000ff00) ^ (Te4[(s1 ) & 0xff] & 0x000000ff) ^ rk[2]; t3 = (Te4[(s3 >> 24) ] & 0xff000000) ^ (Te4[(s0 >> 16) & 0xff] & 0x00ff0000) ^ (Te4[(s1 >> 8) & 0xff] & 0x0000ff00) ^ (Te4[(s2 ) & 0xff] & 0x000000ff) ^ rk[3]; s0 = t0; s1 = t1; s2 = t2; s3 = t3; } PUTU32(block , s0); PUTU32(block + 4, s1); PUTU32(block + 8, s2); PUTU32(block + 12, s3); } void rijndaelDecryptRound(const u32 rk[/*4*(Nr + 1)*/], int Nr, u8 block[16], int rounds) { int r; u32 s0, s1, s2, s3, t0, t1, t2, t3; /* * map byte array block to cipher state * and add initial round key: */ s0 = GETU32(block ) ^ rk[0]; s1 = GETU32(block + 4) ^ rk[1]; s2 = GETU32(block + 8) ^ rk[2]; s3 = GETU32(block + 12) ^ rk[3]; rk += 4; /* * Nr - 1 full rounds: */ for (r = (rounds < Nr ? rounds : Nr) - 1; r > 0; r--) { t0 = Td0[(s0 >> 24) ] ^ Td1[(s3 >> 16) & 0xff] ^ Td2[(s2 >> 8) & 0xff] ^ Td3[(s1 ) & 0xff] ^ rk[0]; t1 = Td0[(s1 >> 24) ] ^ Td1[(s0 >> 16) & 0xff] ^ Td2[(s3 >> 8) & 0xff] ^ Td3[(s2 ) & 0xff] ^ rk[1]; t2 = Td0[(s2 >> 24) ] ^ Td1[(s1 >> 16) & 0xff] ^ Td2[(s0 >> 8) & 0xff] ^ Td3[(s3 ) & 0xff] ^ rk[2]; t3 = Td0[(s3 >> 24) ] ^ Td1[(s2 >> 16) & 0xff] ^ Td2[(s1 >> 8) & 0xff] ^ Td3[(s0 ) & 0xff] ^ rk[3]; s0 = t0; s1 = t1; s2 = t2; s3 = t3; rk += 4; } /* * complete the last round and * map cipher state to byte array block: */ t0 = (Td4[(s0 >> 24) ] & 0xff000000) ^ (Td4[(s3 >> 16) & 0xff] & 0x00ff0000) ^ (Td4[(s2 >> 8) & 0xff] & 0x0000ff00) ^ (Td4[(s1 ) & 0xff] & 0x000000ff); t1 = (Td4[(s1 >> 24) ] & 0xff000000) ^ (Td4[(s0 >> 16) & 0xff] & 0x00ff0000) ^ (Td4[(s3 >> 8) & 0xff] & 0x0000ff00) ^ (Td4[(s2 ) & 0xff] & 0x000000ff); t2 = (Td4[(s2 >> 24) ] & 0xff000000) ^ (Td4[(s1 >> 16) & 0xff] & 0x00ff0000) ^ (Td4[(s0 >> 8) & 0xff] & 0x0000ff00) ^ (Td4[(s3 ) & 0xff] & 0x000000ff); t3 = (Td4[(s3 >> 24) ] & 0xff000000) ^ (Td4[(s2 >> 16) & 0xff] & 0x00ff0000) ^ (Td4[(s1 >> 8) & 0xff] & 0x0000ff00) ^ (Td4[(s0 ) & 0xff] & 0x000000ff); if (rounds == Nr) { t0 ^= rk[0]; t1 ^= rk[1]; t2 ^= rk[2]; t3 ^= rk[3]; } PUTU32(block , t0); PUTU32(block + 4, t1); PUTU32(block + 8, t2); PUTU32(block + 12, t3); } #endif /* INTERMEDIATE_VALUE_KAT */ tcpcrypt-0.5/contrib/umac.c0000644000175200017520000021035712742073006015026 0ustar sorbosorbo/* ----------------------------------------------------------------------- * * umac.c -- C Implementation UMAC Message Authentication * * Version 0.92 of draft-krovetz-umac-07.txt -- 2006 February 21 * * For a full description of UMAC message authentication see the UMAC * world-wide-web page at http://www.cs.ucdavis.edu/~rogaway/umac * Please report bugs and suggestions to the UMAC webpage. * * Copyright (c) 1999-2006 Ted Krovetz * * Permission to use, copy, modify, and distribute this software and * its documentation for any purpose and with or without fee, is hereby * granted provided that the above copyright notice appears in all copies * and in supporting documentation, and that the name of the copyright * holder not be used in advertising or publicity pertaining to * distribution of the software without specific, written prior permission. * * Comments should be directed to Ted Krovetz (tdk@acm.org) * * ---------------------------------------------------------------------- */ /* ////////////////////// IMPORTANT NOTES ///////////////////////////////// * * 1) This version does not work properly on messages larger than 16MB * * 2) If you set the switch to use SSE2, then all data must be 16-byte * aligned * * 3) When calling the function umac(), it is assumed that msg is in * a writable buffer of length divisible by 32 bytes. The message itself * does not have to fill the entire buffer, but bytes beyond msg may be * zeroed. * * 4) Two free AES implementations are supported by this implementation of * UMAC. Paulo Barreto's version is in the public domain and can be found * at http://www.esat.kuleuven.ac.be/~rijmen/rijndael/ (search for * "Barreto"). The only two files needed are rijndael-alg-fst.c and * rijndael-alg-fst.h. Brian Gladman's version is distributed with the GNU * Public lisence at http://fp.gladman.plus.com/AES/index.htm. It * includes a fast IA-32 assembly version. * * 5) With FORCE_C_ONLY flags set to 0, incorrect results are sometimes * produced under gcc with optimizations set -O3 or higher. Dunno why. * /////////////////////////////////////////////////////////////////////// */ /* ---------------------------------------------------------------------- */ /* --- User Switches ---------------------------------------------------- */ /* ---------------------------------------------------------------------- */ #define UMAC_OUTPUT_LEN 8 /* Alowable: 4, 8, 12, 16 */ #define FORCE_C_ONLY 1 /* ANSI C and 64-bit integers req'd */ #define GLADMAN_AES 0 /* Change to 1 to use Gladman's AES */ #define SSE2 1 /* Is SSE2 is available? */ #define RUN_TESTS 0 /* Run basic correctness/speed tests */ /* ---------------------------------------------------------------------- */ /* -- Global Includes --------------------------------------------------- */ /* ---------------------------------------------------------------------- */ #include "umac.h" #include #include #include #if GLADMAN_AES #include "aes.h" #else #include "rijndael-alg-fst.h" #endif /* ---------------------------------------------------------------------- */ /* --- Primitive Data Types --- */ /* ---------------------------------------------------------------------- */ /* The following assumptions may need change on your system */ typedef unsigned char UINT8; /* 1 byte */ typedef unsigned short UINT16; /* 2 byte */ typedef unsigned int UINT32; /* 4 byte */ typedef unsigned long long UINT64; /* 8 bytes */ typedef unsigned long UWORD; /* Register */ /* ---------------------------------------------------------------------- */ /* --- Constants ------------------------------------------------ */ /* ---------------------------------------------------------------------- */ #define UMAC_KEY_LEN 16 /* UMAC takes 16 bytes of external key */ /* GNU gcc and Microsoft Visual C++ (and copycats) on IA-32 are supported * with some assembly */ #define GCC_X86 (__GNUC__ && __i386__) /* GCC on IA-32 */ #define MSC_X86 (_M_IX86) /* Microsoft on IA-32 */ /* Message "words" are read from memory in an endian-specific manner. */ /* For this implementation to behave correctly, __LITTLE_ENDIAN__ must */ /* be set true if the host computer is little-endian. */ #ifndef __LITTLE_ENDIAN__ #if __i386__ || __alpha__ || _M_IX86 || __LITTLE_ENDIAN #define __LITTLE_ENDIAN__ 1 #else #define __LITTLE_ENDIAN__ 0 #endif #endif /* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */ /* ----- Architecture Specific ------------------------------------------ */ /* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */ #if (MSC_X86) #pragma warning(disable: 4731) /* Turn off "ebp manipulation" warning */ #pragma warning(disable: 4311) /* Turn off "pointer trunc" warning */ #if (__MWERKS__) #define mmword xmmword /* Metrowerks C 3.03 doesn't recognize mmword */ #endif #endif /* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */ /* ----- Primitive Routines --------------------------------------------- */ /* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */ /* --- 32-bit by 32-bit to 64-bit Multiplication ------------------------ */ /* ---------------------------------------------------------------------- */ #define MUL64(a,b) ((UINT64)((UINT64)(UINT32)(a) * (UINT64)(UINT32)(b))) /* ---------------------------------------------------------------------- */ /* --- Endian Conversion --- Forcing assembly on some platforms */ /* ---------------------------------------------------------------------- */ /* Lots of endian reversals happen in UMAC. PowerPC and Intel Architechture * both support efficient endian conversion, but compilers seem unable to * automatically utilize the efficient assembly opcodes. The architechture- * specific versions utilize them. */ #if (MSC_X86 && ! FORCE_C_ONLY) static UINT32 LOAD_UINT32_REVERSED(void *p) { __asm { mov eax, p mov eax, [eax] bswap eax } } static void STORE_UINT32_REVERSED(void *p, UINT32 x) { __asm { mov eax,x bswap eax mov ecx, p mov [ecx], eax } } #elif (GCC_X86 && ! FORCE_C_ONLY) static UINT32 LOAD_UINT32_REVERSED(void *ptr) { UINT32 temp; asm volatile("bswap %0" : "=r" (temp) : "0" (*(UINT32 *)ptr)); return temp; } static void STORE_UINT32_REVERSED(void *ptr, UINT32 x) { asm volatile("bswap %0" : "=r" (*(UINT32 *)ptr) : "0" (x)); } #else static UINT32 LOAD_UINT32_REVERSED(void *ptr) { UINT32 temp = *(UINT32 *)ptr; temp = (temp >> 24) | ((temp & 0x00FF0000) >> 8 ) | ((temp & 0x0000FF00) << 8 ) | (temp << 24); return (UINT32)temp; } static void STORE_UINT32_REVERSED(void *ptr, UINT32 x) { UINT32 i = (UINT32)x; *(UINT32 *)ptr = (i >> 24) | ((i & 0x00FF0000) >> 8 ) | ((i & 0x0000FF00) << 8 ) | (i << 24); } #endif /* The following definitions use the above reversal-primitives to do the right * thing on endian specific load and stores. */ #if (__LITTLE_ENDIAN__) #define LOAD_UINT32_LITTLE(ptr) (*(UINT32 *)(ptr)) #define STORE_UINT32_BIG(ptr,x) STORE_UINT32_REVERSED(ptr,x) #else #define LOAD_UINT32_LITTLE(ptr) LOAD_UINT32_REVERSED(ptr) #define STORE_UINT32_BIG(ptr,x) (*(UINT32 *)(ptr) = (UINT32)(x)) #endif /* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */ /* ----- Begin KDF & PDF Section ---------------------------------------- */ /* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */ /* UMAC uses AES with 16 byte block and key lengths */ #define AES_BLOCK_LEN 16 #if GLADMAN_AES typedef aes_encrypt_ctx aes_int_key[1]; /* AES internal */ #define aes_encryption(in,out,int_key) \ aes_encrypt((in),(out),(int_key)) #define aes_key_setup(key,int_key) \ aes_encrypt_key128((key),(int_key)) #else #define AES_ROUNDS ((UMAC_KEY_LEN / 4) + 6) typedef UINT8 aes_int_key[AES_ROUNDS+1][4][4]; /* AES internal */ #define aes_encryption(in,out,int_key) \ rijndaelEncrypt((u32 *)(int_key), AES_ROUNDS, (u8 *)(in), (u8 *)(out)) #define aes_key_setup(key,int_key) \ rijndaelKeySetupEnc((u32 *)(int_key), (const unsigned char *)(key), \ UMAC_KEY_LEN*8) #endif /* The user-supplied UMAC key is stretched using AES in a counter * mode to supply all random bits needed by UMAC. The kdf function takes * an AES internal key representation 'key' and writes a stream of * 'nbytes' bytes to the memory pointed at by 'buffer_ptr'. Each distinct * 'index' causes a distinct byte stream. */ void kdf(void *buffer_ptr, aes_int_key key, UINT8 index, int nbytes) { UINT8 in_buf[AES_BLOCK_LEN] = {0}; UINT8 out_buf[AES_BLOCK_LEN]; UINT8 *dst_buf = (UINT8 *)buffer_ptr; int i; /* Setup the initial value */ in_buf[AES_BLOCK_LEN-9] = index; in_buf[AES_BLOCK_LEN-1] = i = 1; while (nbytes >= AES_BLOCK_LEN) { aes_encryption(in_buf, out_buf, key); memcpy(dst_buf,out_buf,AES_BLOCK_LEN); in_buf[AES_BLOCK_LEN-1] = ++i; nbytes -= AES_BLOCK_LEN; dst_buf += AES_BLOCK_LEN; } if (nbytes) { aes_encryption(in_buf, out_buf, key); memcpy(dst_buf,out_buf,nbytes); } } /* The final UHASH result is XOR'd with the output of a pseudorandom * function. Here, we use AES to generate random output and * xor the appropriate bytes depending on the last bits of nonce. * This scheme is optimized for sequential, increasing big-endian nonces. */ typedef struct { UINT8 cache[AES_BLOCK_LEN]; /* Previous AES output is saved */ UINT8 nonce[AES_BLOCK_LEN]; /* The AES input making above cache */ aes_int_key prf_key; /* Expanded AES key for PDF */ } pdf_ctx; static void pdf_init(pdf_ctx *pc, aes_int_key prf_key) { UINT8 buf[UMAC_KEY_LEN]; kdf(buf, prf_key, 0, UMAC_KEY_LEN); aes_key_setup(buf, pc->prf_key); /* Initialize pdf and cache */ memset(pc->nonce, 0, sizeof(pc->nonce)); aes_encryption(pc->nonce, pc->cache, pc->prf_key); } static void pdf_gen_xor(pdf_ctx *pc, UINT8 nonce[8], UINT8 buf[8]) { /* 'index' indicates that we'll be using the 0th or 1st eight bytes * of the AES output. If last time around we returned the index-1st * element, then we may have the result in the cache already. */ #if (UMAC_OUTPUT_LEN == 4) #define LOW_BIT_MASK 3 #elif (UMAC_OUTPUT_LEN == 8) #define LOW_BIT_MASK 1 #elif (UMAC_OUTPUT_LEN > 8) #define LOW_BIT_MASK 0 #endif UINT8 tmp_nonce_lo[4]; int index = nonce[7] & LOW_BIT_MASK; *(UINT32 *)tmp_nonce_lo = ((UINT32 *)nonce)[1]; tmp_nonce_lo[3] &= ~LOW_BIT_MASK; /* zero last bit */ if ( (((UINT32 *)tmp_nonce_lo)[0] != ((UINT32 *)pc->nonce)[1]) || (((UINT32 *)nonce)[0] != ((UINT32 *)pc->nonce)[0]) ) { ((UINT32 *)pc->nonce)[0] = ((UINT32 *)nonce)[0]; ((UINT32 *)pc->nonce)[1] = ((UINT32 *)tmp_nonce_lo)[0]; aes_encryption(pc->nonce, pc->cache, pc->prf_key); } #if (UMAC_OUTPUT_LEN == 4) *((UINT32 *)buf) ^= ((UINT32 *)pc->cache)[index]; #elif (UMAC_OUTPUT_LEN == 8) *((UINT64 *)buf) ^= ((UINT64 *)pc->cache)[index]; #elif (UMAC_OUTPUT_LEN == 12) ((UINT64 *)buf)[0] ^= ((UINT64 *)pc->cache)[0]; ((UINT32 *)buf)[2] ^= ((UINT32 *)pc->cache)[2]; #elif (UMAC_OUTPUT_LEN == 16) ((UINT64 *)buf)[0] ^= ((UINT64 *)pc->cache)[0]; ((UINT64 *)buf)[1] ^= ((UINT64 *)pc->cache)[1]; #endif } /* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */ /* ----- Begin NH Hash Section ------------------------------------------ */ /* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */ /* The NH-based hash functions used in UMAC are described in the UMAC paper * and specification, both of which can be found at the UMAC website. * The interface to this implementation has two * versions, one expects the entire message being hashed to be passed * in a single buffer and returns the hash result immediately. The second * allows the message to be passed in a sequence of buffers. In the * muliple-buffer interface, the client calls the routine nh_update() as * many times as necessary. When there is no more data to be fed to the * hash, the client calls nh_final() which calculates the hash output. * Before beginning another hash calculation the nh_reset() routine * must be called. The single-buffer routine, nh(), is equivalent to * the sequence of calls nh_update() and nh_final(); however it is * optimized and should be prefered whenever the multiple-buffer interface * is not necessary. When using either interface, it is the client's * responsability to pass no more than L1_KEY_LEN bytes per hash result. * * The routine nh_init() initializes the nh_ctx data structure and * must be called once, before any other PDF routine. */ /* The "nh_aux" routines do the actual NH hashing work. They * expect buffers to be multiples of L1_PAD_BOUNDARY. These routines * produce output for all STREAMS NH iterations in one call, * allowing the parallel implementation of the streams. */ #define STREAMS (UMAC_OUTPUT_LEN / 4) /* Number of times hash is applied */ #define L1_KEY_LEN 1024 /* Internal key bytes */ #define L1_KEY_SHIFT 16 /* Toeplitz key shift between streams */ #define L1_PAD_BOUNDARY 32 /* pad message to boundary multiple */ #define ALLOC_BOUNDARY 16 /* Keep buffers aligned to this */ #define HASH_BUF_BYTES 64 /* nh_aux_hb buffer multiple */ typedef struct { UINT8 nh_key [L1_KEY_LEN + L1_KEY_SHIFT * (STREAMS - 1)]; /* NH Key */ UINT8 data [HASH_BUF_BYTES]; /* Incomming data buffer */ int next_data_empty; /* Bookeeping variable for data buffer. */ int bytes_hashed; /* Bytes (out of L1_KEY_LEN) incorperated. */ UINT64 state[STREAMS]; /* on-line state */ } nh_ctx; /* ---------------------------------------------------------------------- */ #if ( ! FORCE_C_ONLY && ( GCC_X86 || MSC_X86 ) ) /* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */ #if ( SSE2 ) /* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */ #if ( MSC_X86 ) /* ---------------------------------------------------------------------- */ /* This macro uses movdqa which requires 16-byte aligned data and key. */ #define NH_STEP_1(n) \ movdqa xmm2, n[ecx] \ __asm movdqa xmm0, n[eax] \ __asm movdqa xmm3, n+16[ecx] \ __asm movdqa xmm1, n+16[eax] \ __asm paddd xmm2, xmm0 \ __asm paddd xmm3, xmm1 \ __asm movdqa xmm5, xmm2 \ __asm pmuludq xmm2, xmm3 \ __asm psrldq xmm3, 4 \ __asm paddq xmm6, xmm2 \ __asm psrldq xmm5, 4 \ __asm pmuludq xmm3, xmm5 \ __asm paddq xmm6, xmm3 static void nh_aux_1(void *kp, void *dp, void *hp, UINT32 dlen) { __asm{ mov edx, dlen mov ebx, hp mov ecx, kp mov eax, dp sub edx, 128 movq xmm6, mmword ptr [ebx] jb label2 label1: NH_STEP_1(0) NH_STEP_1(32) NH_STEP_1(64) NH_STEP_1(96) add eax, 128 add ecx, 128 sub edx, 128 jnb label1 label2: add edx,128 je label4 label3: NH_STEP_1(0) add eax, 32 add ecx, 32 sub edx, 32 jne label3 label4: movdqa xmm0,xmm6 psrldq xmm0, 8 paddq xmm6, xmm0 movq mmword ptr [ebx], xmm6 } } /* This macro uses movdqa which requires 16-byte aligned data and key. */ #define NH_STEP_2(n) \ movdqa xmm0, n[eax] \ __asm movdqa xmm3, n+16[ecx] \ __asm movdqa xmm1, n+16[eax] \ __asm paddd xmm2, xmm0 \ __asm movdqa xmm4, xmm3 \ __asm paddd xmm3, xmm1 \ __asm movdqa xmm5, xmm2 \ __asm pmuludq xmm2, xmm3 \ __asm psrldq xmm3, 4 \ __asm paddq xmm6, xmm2 \ __asm movdqa xmm2, n+32[ecx] \ __asm psrldq xmm5, 4 \ __asm pmuludq xmm3, xmm5 \ __asm paddd xmm1, xmm2 \ __asm paddd xmm4, xmm0 \ __asm paddq xmm6, xmm3 \ __asm movdqa xmm3, xmm4 \ __asm pmuludq xmm4, xmm1 \ __asm psrldq xmm1, 4 \ __asm psrldq xmm3, 4 \ __asm pmuludq xmm3, xmm1 \ __asm paddq xmm7, xmm4 \ __asm paddq xmm7, xmm3 static void nh_aux_2(void *kp, void *dp, void *hp, UINT32 dlen) /* Perform 2 streams simultaneously */ { __asm{ mov edx, dlen mov ebx, hp mov ecx, kp mov eax, dp sub edx, 128 movq xmm6, mmword ptr [ebx] movq xmm7, mmword ptr 8[ebx] movdqa xmm2, [ecx] jb label2 label1: NH_STEP_2(0) NH_STEP_2(32) NH_STEP_2(64) NH_STEP_2(96) add eax, 128 add ecx, 128 sub edx, 128 jnb label1 label2: add edx,128 je label4 label3: NH_STEP_2(0) add eax, 32 add ecx, 32 sub edx, 32 jne label3 label4: movdqa xmm0,xmm6 movdqa xmm1,xmm7 psrldq xmm0, 8 psrldq xmm1, 8 paddq xmm6, xmm0 paddq xmm7, xmm1 movq mmword ptr [ebx], xmm6 movq mmword ptr 8[ebx], xmm7 } } /* ---------------------------------------------------------------------- */ #elif (GCC_X86) /* ---------------------------------------------------------------------- */ #define NH_STEP_1(n) \ "movdqa "#n"(%0), %%xmm2\n\t" \ "movdqa "#n"(%1), %%xmm0\n\t" \ "movdqa "#n"+16(%0), %%xmm3\n\t" \ "movdqa "#n"+16(%1), %%xmm1\n\t" \ "paddd %%xmm0, %%xmm2\n\t" \ "paddd %%xmm1, %%xmm3\n\t" \ "movdqa %%xmm2, %%xmm5\n\t" \ "pmuludq %%xmm3, %%xmm2\n\t" \ "psrldq $4, %%xmm3\n\t" \ "paddq %%xmm2, %%xmm6\n\t" \ "psrldq $4, %%xmm5\n\t" \ "pmuludq %%xmm5, %%xmm3\n\t" \ "paddq %%xmm3, %%xmm6\n\t" static void nh_aux_1(void *kp, void *dp, void *hp, UINT32 dlen) { UINT32 d1,d2,d3; asm volatile ( "sub $128, %2\n\t" "movq (%3), %%xmm6\n\t" "jb 2f\n\t" ".align 4,0x90\n" "1:\n\t" NH_STEP_1(0) NH_STEP_1(32) NH_STEP_1(64) NH_STEP_1(96) "add $128, %1\n\t" "add $128, %0\n\t" "sub $128, %2\n\t" "jnb 1b\n\t" ".align 4,0x90\n" "2:\n\t" "add $128, %2\n\t" "je 4f\n\t" ".align 4,0x90\n" "3:\n\t" NH_STEP_1(0) "add $32, %1\n\t" "add $32, %0\n\t" "sub $32, %2\n\t" "jne 3b\n\t" ".align 4,0x90\n" "4:\n\t" "movdqa %%xmm6, %%xmm0\n\t" "psrldq $8, %%xmm0\n\t" "paddq %%xmm0, %%xmm6\n\t" "movq %%xmm6, (%3)" : "+r" (kp), "+r" (dp), "+r" (dlen) : "r" (hp) : "memory"); } #define NH_STEP_2(n) \ "movdqa "#n"(%1), %%xmm0\n\t" \ "movdqa "#n"+16(%0), %%xmm3\n\t" \ "movdqa "#n"+16(%1), %%xmm1\n\t" \ "paddd %%xmm0, %%xmm2\n\t" \ "movdqa %%xmm3, %%xmm4\n\t" \ "paddd %%xmm1, %%xmm3\n\t" \ "movdqa %%xmm2, %%xmm5\n\t" \ "pmuludq %%xmm3, %%xmm2\n\t" \ "psrldq $4, %%xmm3\n\t" \ "paddq %%xmm2, %%xmm6\n\t" \ "movdqa "#n"+32(%0), %%xmm2\n\t" \ "psrldq $4, %%xmm5\n\t" \ "pmuludq %%xmm5, %%xmm3\n\t" \ "paddd %%xmm2, %%xmm1\n\t" \ "paddd %%xmm0, %%xmm4\n\t" \ "paddq %%xmm3, %%xmm6\n\t" \ "movdqa %%xmm4, %%xmm3\n\t" \ "pmuludq %%xmm1, %%xmm4\n\t" \ "psrldq $4, %%xmm1\n\t" \ "psrldq $4, %%xmm3\n\t" \ "pmuludq %%xmm1, %%xmm3\n\t" \ "paddq %%xmm4, %%xmm7\n\t" \ "paddq %%xmm3, %%xmm7\n\t" static void nh_aux_2(void *kp, void *dp, void *hp, UINT32 dlen) { UINT32 d1,d2,d3; asm volatile ( "sub $128, %2\n\t" "movq (%3), %%xmm6\n\t" "movq 8(%3), %%xmm7\n\t" "movdqa (%0), %%xmm2\n\t" "jb 2f\n\t" ".align 4,0x90\n" "1:\n\t" NH_STEP_2(0) NH_STEP_2(32) NH_STEP_2(64) NH_STEP_2(96) "add $128, %1\n\t" "add $128, %0\n\t" "sub $128, %2\n\t" "jnb 1b\n\t" ".align 4,0x90\n" "2:\n\t" "add $128, %2\n\t" "je 4f\n\t" ".align 4,0x90\n" "3:\n\t" NH_STEP_2(0) "add $32, %1\n\t" "add $32, %0\n\t" "sub $32, %2\n\t" "jne 3b\n\t" ".align 4,0x90\n" "4:\n\t" "movdqa %%xmm6, %%xmm0\n\t" "movdqa %%xmm7, %%xmm1\n\t" "psrldq $8, %%xmm0\n\t" "psrldq $8, %%xmm1\n\t" "paddq %%xmm0, %%xmm6\n\t" "paddq %%xmm1, %%xmm7\n\t" "movq %%xmm6, (%3)\n\t" "movq %%xmm7, 8(%3)" : "+r" (kp), "+r" (dp), "+r" (dlen) : "r" (hp) : "memory"); } /* ---------------------------------------------------------------------- */ #endif /* MSC GCC Sections for SSE2, not C */ /* ---------------------------------------------------------------------- */ static void nh_aux(void *kp, void *dp, void *hp, UINT32 dlen) /* NH hashing primitive. 128 bits are written at hp by performing two */ /* passes over the data with the second key being the toeplitz shift of */ /* the first. */ { #if (UMAC_OUTPUT_LEN == 4) nh_aux_1(kp,dp,hp,dlen); #elif (UMAC_OUTPUT_LEN == 8) nh_aux_2(kp,dp,hp,dlen); #elif (UMAC_OUTPUT_LEN == 12) nh_aux_2(kp,dp,hp,dlen); nh_aux_1((UINT8 *)kp+32,dp,(UINT8 *)hp+16,dlen); #elif (UMAC_OUTPUT_LEN == 16) nh_aux_2(kp,dp,hp,dlen); nh_aux_2((UINT8 *)kp+32,dp,(UINT8 *)hp+16,dlen); #endif } /* ---------------------------------------------------------------------- */ #else /* not SSE2 */ /* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */ #if ( MSC_X86 ) /* ---------------------------------------------------------------------- */ #define NH_STEP(n) \ mov eax,n[ebx] \ __asm mov edx,n+16[ebx] \ __asm add eax,n[ecx] \ __asm add edx,n+16[ecx] \ __asm mul edx \ __asm add esi,eax \ __asm adc edi,edx static void nh_aux_1(void *kp, void *dp, void *hp, UINT32 dlen) { __asm{ push ebp mov ecx,kp mov ebx,dp mov eax,hp mov ebp,dlen sub ebp,128 mov esi,[eax] mov edi,4[eax] jb label2 /* if 0 */ label1: NH_STEP(0) NH_STEP(4) NH_STEP(8) NH_STEP(12) NH_STEP(32) NH_STEP(36) NH_STEP(40) NH_STEP(44) NH_STEP(64) NH_STEP(68) NH_STEP(72) NH_STEP(76) NH_STEP(96) NH_STEP(100) NH_STEP(104) NH_STEP(108) add ecx,128 add ebx,128 sub ebp,128 jnb label1 label2: add ebp,128 je label4 label3: NH_STEP(0) NH_STEP(4) NH_STEP(8) NH_STEP(12) add ecx,32 add ebx,32 sub ebp,32 jne label3 label4: pop ebp mov eax,hp mov [eax],esi mov 4[eax],edi } } /* ---------------------------------------------------------------------- */ #elif ( GCC_X86 ) /* ---------------------------------------------------------------------- */ #define NH_STEP(n) \ "movl "#n"(%%ebx),%%eax\n\t" \ "movl "#n"+16(%%ebx),%%edx\n\t" \ "addl "#n"(%%ecx),%%eax\n\t" \ "addl "#n"+16(%%ecx),%%edx\n\t" \ "mull %%edx\n\t" \ "addl %%eax,%%esi\n\t" \ "adcl %%edx,%%edi\n\t" static void nh_aux_1(void *kp, void *dp, void *hp, UINT32 dlen) /* NH hashing primitive. Previous (partial) hash result is loaded and */ /* then stored via hp pointer. The length of the data pointed at by dp is */ /* guaranteed to be divisible by HASH_BUF_BYTES (64), which means we can */ /* optimize by unrolling the loop. 64 bits are written at hp. */ { UINT32 *p = (UINT32 *)hp; asm volatile ( "\n\t" "pushl %%eax\n\t" "pushl %%ebp\n\t" "subl $128,%%eax\n\t" "movl %%eax,%%ebp\n\t" "jb 2f\n\t" ".align 4,0x90\n" "1:\n\t" NH_STEP(0) NH_STEP(4) NH_STEP(8) NH_STEP(12) NH_STEP(32) NH_STEP(36) NH_STEP(40) NH_STEP(44) NH_STEP(64) NH_STEP(68) NH_STEP(72) NH_STEP(76) NH_STEP(96) NH_STEP(100) NH_STEP(104) NH_STEP(108) "addl $128,%%ecx\n\t" "addl $128,%%ebx\n\t" "subl $128,%%ebp\n\t" "jnb 1b\n\t" ".align 4\n" "2:\n\t" "addl $128,%%ebp\n\t" "je 4f\n\t" ".align 4,0x90\n" "3:\n\t" NH_STEP(0) NH_STEP(4) NH_STEP(8) NH_STEP(12) "addl $32,%%ecx\n\t" "addl $32,%%ebx\n\t" "subl $32,%%ebp\n\t" "jne 3b\n\t" ".align 4\n" "4:\n\t" "popl %%ebp\n\t" "popl %%eax" : "+S" (p[0]), "+D" (p[1]), "+c" (kp), "+b" (dp) : "a" (dlen) : "edx", "memory"); } /* ---------------------------------------------------------------------- */ #endif /* GCC or MSC, not SSE2, not C */ /* ---------------------------------------------------------------------- */ static void nh_aux(void *kp, void *dp, void *hp, UINT32 dlen) /* NH hashing primitive. 128 bits are written at hp by performing two */ /* passes over the data with the second key being the toeplitz shift of */ /* the first. */ { nh_aux_1(kp,dp,hp,dlen); #if (UMAC_OUTPUT_LEN >= 8) nh_aux_1((UINT8 *)kp+16,dp,(UINT8 *)hp+8,dlen); #endif #if (UMAC_OUTPUT_LEN >= 12) nh_aux_1((UINT8 *)kp+32,dp,(UINT8 *)hp+16,dlen); #endif #if (UMAC_OUTPUT_LEN == 16) nh_aux_1((UINT8 *)kp+48,dp,(UINT8 *)hp+24,dlen); #endif } /* ---------------------------------------------------------------------- */ #endif /* SSE2 */ /* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */ #else /* FORCE_C_ONLY */ /* ---------------------------------------------------------------------- */ #if (UMAC_OUTPUT_LEN == 4) static void nh_aux(void *kp, void *dp, void *hp, UINT32 dlen) /* NH hashing primitive. Previous (partial) hash result is loaded and * then stored via hp pointer. The length of the data pointed at by "dp", * "dlen", is guaranteed to be divisible by L1_PAD_BOUNDARY (32). Key * is expected to be endian compensated in memory at key setup. */ { UINT64 h; UWORD c = dlen / 32; UINT32 *k = (UINT32 *)kp; UINT32 *d = (UINT32 *)dp; UINT32 d0,d1,d2,d3,d4,d5,d6,d7; UINT32 k0,k1,k2,k3,k4,k5,k6,k7; h = *((UINT64 *)hp); do { d0 = LOAD_UINT32_LITTLE(d+0); d1 = LOAD_UINT32_LITTLE(d+1); d2 = LOAD_UINT32_LITTLE(d+2); d3 = LOAD_UINT32_LITTLE(d+3); d4 = LOAD_UINT32_LITTLE(d+4); d5 = LOAD_UINT32_LITTLE(d+5); d6 = LOAD_UINT32_LITTLE(d+6); d7 = LOAD_UINT32_LITTLE(d+7); k0 = *(k+0); k1 = *(k+1); k2 = *(k+2); k3 = *(k+3); k4 = *(k+4); k5 = *(k+5); k6 = *(k+6); k7 = *(k+7); h += MUL64((k0 + d0), (k4 + d4)); h += MUL64((k1 + d1), (k5 + d5)); h += MUL64((k2 + d2), (k6 + d6)); h += MUL64((k3 + d3), (k7 + d7)); d += 8; k += 8; } while (--c); *((UINT64 *)hp) = h; } #elif (UMAC_OUTPUT_LEN == 8) static void nh_aux(void *kp, void *dp, void *hp, UINT32 dlen) /* Same as previous nh_aux, but two streams are handled in one pass, * reading and writing 16 bytes of hash-state per call. */ { UINT64 h1,h2; UWORD c = dlen / 32; UINT32 *k = (UINT32 *)kp; UINT32 *d = (UINT32 *)dp; UINT32 d0,d1,d2,d3,d4,d5,d6,d7; UINT32 k0,k1,k2,k3,k4,k5,k6,k7, k8,k9,k10,k11; h1 = *((UINT64 *)hp); h2 = *((UINT64 *)hp + 1); k0 = *(k+0); k1 = *(k+1); k2 = *(k+2); k3 = *(k+3); do { d0 = LOAD_UINT32_LITTLE(d+0); d1 = LOAD_UINT32_LITTLE(d+1); d2 = LOAD_UINT32_LITTLE(d+2); d3 = LOAD_UINT32_LITTLE(d+3); d4 = LOAD_UINT32_LITTLE(d+4); d5 = LOAD_UINT32_LITTLE(d+5); d6 = LOAD_UINT32_LITTLE(d+6); d7 = LOAD_UINT32_LITTLE(d+7); k4 = *(k+4); k5 = *(k+5); k6 = *(k+6); k7 = *(k+7); k8 = *(k+8); k9 = *(k+9); k10 = *(k+10); k11 = *(k+11); h1 += MUL64((k0 + d0), (k4 + d4)); h2 += MUL64((k4 + d0), (k8 + d4)); h1 += MUL64((k1 + d1), (k5 + d5)); h2 += MUL64((k5 + d1), (k9 + d5)); h1 += MUL64((k2 + d2), (k6 + d6)); h2 += MUL64((k6 + d2), (k10 + d6)); h1 += MUL64((k3 + d3), (k7 + d7)); h2 += MUL64((k7 + d3), (k11 + d7)); k0 = k8; k1 = k9; k2 = k10; k3 = k11; d += 8; k += 8; } while (--c); ((UINT64 *)hp)[0] = h1; ((UINT64 *)hp)[1] = h2; } #elif (UMAC_OUTPUT_LEN == 12) static void nh_aux(void *kp, void *dp, void *hp, UINT32 dlen) /* Same as previous nh_aux, but two streams are handled in one pass, * reading and writing 24 bytes of hash-state per call. */ { UINT64 h1,h2,h3; UWORD c = dlen / 32; UINT32 *k = (UINT32 *)kp; UINT32 *d = (UINT32 *)dp; UINT32 d0,d1,d2,d3,d4,d5,d6,d7; UINT32 k0,k1,k2,k3,k4,k5,k6,k7, k8,k9,k10,k11,k12,k13,k14,k15; h1 = *((UINT64 *)hp); h2 = *((UINT64 *)hp + 1); h3 = *((UINT64 *)hp + 2); k0 = *(k+0); k1 = *(k+1); k2 = *(k+2); k3 = *(k+3); k4 = *(k+4); k5 = *(k+5); k6 = *(k+6); k7 = *(k+7); do { d0 = LOAD_UINT32_LITTLE(d+0); d1 = LOAD_UINT32_LITTLE(d+1); d2 = LOAD_UINT32_LITTLE(d+2); d3 = LOAD_UINT32_LITTLE(d+3); d4 = LOAD_UINT32_LITTLE(d+4); d5 = LOAD_UINT32_LITTLE(d+5); d6 = LOAD_UINT32_LITTLE(d+6); d7 = LOAD_UINT32_LITTLE(d+7); k8 = *(k+8); k9 = *(k+9); k10 = *(k+10); k11 = *(k+11); k12 = *(k+12); k13 = *(k+13); k14 = *(k+14); k15 = *(k+15); h1 += MUL64((k0 + d0), (k4 + d4)); h2 += MUL64((k4 + d0), (k8 + d4)); h3 += MUL64((k8 + d0), (k12 + d4)); h1 += MUL64((k1 + d1), (k5 + d5)); h2 += MUL64((k5 + d1), (k9 + d5)); h3 += MUL64((k9 + d1), (k13 + d5)); h1 += MUL64((k2 + d2), (k6 + d6)); h2 += MUL64((k6 + d2), (k10 + d6)); h3 += MUL64((k10 + d2), (k14 + d6)); h1 += MUL64((k3 + d3), (k7 + d7)); h2 += MUL64((k7 + d3), (k11 + d7)); h3 += MUL64((k11 + d3), (k15 + d7)); k0 = k8; k1 = k9; k2 = k10; k3 = k11; k4 = k12; k5 = k13; k6 = k14; k7 = k15; d += 8; k += 8; } while (--c); ((UINT64 *)hp)[0] = h1; ((UINT64 *)hp)[1] = h2; ((UINT64 *)hp)[2] = h3; } #elif (UMAC_OUTPUT_LEN == 16) static void nh_aux(void *kp, void *dp, void *hp, UINT32 dlen) /* Same as previous nh_aux, but two streams are handled in one pass, * reading and writing 24 bytes of hash-state per call. */ { UINT64 h1,h2,h3,h4; UWORD c = dlen / 32; UINT32 *k = (UINT32 *)kp; UINT32 *d = (UINT32 *)dp; UINT32 d0,d1,d2,d3,d4,d5,d6,d7; UINT32 k0,k1,k2,k3,k4,k5,k6,k7, k8,k9,k10,k11,k12,k13,k14,k15, k16,k17,k18,k19; h1 = *((UINT64 *)hp); h2 = *((UINT64 *)hp + 1); h3 = *((UINT64 *)hp + 2); h4 = *((UINT64 *)hp + 3); k0 = *(k+0); k1 = *(k+1); k2 = *(k+2); k3 = *(k+3); k4 = *(k+4); k5 = *(k+5); k6 = *(k+6); k7 = *(k+7); do { d0 = LOAD_UINT32_LITTLE(d+0); d1 = LOAD_UINT32_LITTLE(d+1); d2 = LOAD_UINT32_LITTLE(d+2); d3 = LOAD_UINT32_LITTLE(d+3); d4 = LOAD_UINT32_LITTLE(d+4); d5 = LOAD_UINT32_LITTLE(d+5); d6 = LOAD_UINT32_LITTLE(d+6); d7 = LOAD_UINT32_LITTLE(d+7); k8 = *(k+8); k9 = *(k+9); k10 = *(k+10); k11 = *(k+11); k12 = *(k+12); k13 = *(k+13); k14 = *(k+14); k15 = *(k+15); k16 = *(k+16); k17 = *(k+17); k18 = *(k+18); k19 = *(k+19); h1 += MUL64((k0 + d0), (k4 + d4)); h2 += MUL64((k4 + d0), (k8 + d4)); h3 += MUL64((k8 + d0), (k12 + d4)); h4 += MUL64((k12 + d0), (k16 + d4)); h1 += MUL64((k1 + d1), (k5 + d5)); h2 += MUL64((k5 + d1), (k9 + d5)); h3 += MUL64((k9 + d1), (k13 + d5)); h4 += MUL64((k13 + d1), (k17 + d5)); h1 += MUL64((k2 + d2), (k6 + d6)); h2 += MUL64((k6 + d2), (k10 + d6)); h3 += MUL64((k10 + d2), (k14 + d6)); h4 += MUL64((k14 + d2), (k18 + d6)); h1 += MUL64((k3 + d3), (k7 + d7)); h2 += MUL64((k7 + d3), (k11 + d7)); h3 += MUL64((k11 + d3), (k15 + d7)); h4 += MUL64((k15 + d3), (k19 + d7)); k0 = k8; k1 = k9; k2 = k10; k3 = k11; k4 = k12; k5 = k13; k6 = k14; k7 = k15; k8 = k16; k9 = k17; k10 = k18; k11 = k19; d += 8; k += 8; } while (--c); ((UINT64 *)hp)[0] = h1; ((UINT64 *)hp)[1] = h2; ((UINT64 *)hp)[2] = h3; ((UINT64 *)hp)[3] = h4; } /* ---------------------------------------------------------------------- */ #endif /* UMAC_OUTPUT_LENGTH */ /* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */ #endif /* FORCE_C_ONLY */ /* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */ static void nh_transform(nh_ctx *hc, UINT8 *buf, UINT32 nbytes) /* This function is a wrapper for the primitive NH hash functions. It takes * as argument "hc" the current hash context and a buffer which must be a * multiple of L1_PAD_BOUNDARY. The key passed to nh_aux is offset * appropriately according to how much message has been hashed already. */ { UINT8 *key; key = hc->nh_key + hc->bytes_hashed; nh_aux(key, buf, hc->state, nbytes); } /* ---------------------------------------------------------------------- */ static void endian_convert(void *buf, UWORD bpw, UINT32 num_bytes) /* We endian convert the keys on little-endian computers to */ /* compensate for the lack of big-endian memory reads during hashing. */ { UWORD iters = num_bytes / bpw; if (bpw == 4) { UINT32 *p = (UINT32 *)buf; do { *p = LOAD_UINT32_REVERSED(p); p++; } while (--iters); } else if (bpw == 8) { UINT32 *p = (UINT32 *)buf; UINT32 t; do { t = LOAD_UINT32_REVERSED(p+1); p[1] = LOAD_UINT32_REVERSED(p); p[0] = t; p += 2; } while (--iters); } } #if (__LITTLE_ENDIAN__) #define endian_convert_if_le(x,y,z) endian_convert((x),(y),(z)) #else #define endian_convert_if_le(x,y,z) do{}while(0) /* Do nothing */ #endif /* ---------------------------------------------------------------------- */ static void nh_reset(nh_ctx *hc) /* Reset nh_ctx to ready for hashing of new data */ { hc->bytes_hashed = 0; hc->next_data_empty = 0; hc->state[0] = 0; #if (UMAC_OUTPUT_LEN >= 8) hc->state[1] = 0; #endif #if (UMAC_OUTPUT_LEN >= 12) hc->state[2] = 0; #endif #if (UMAC_OUTPUT_LEN == 16) hc->state[3] = 0; #endif } /* ---------------------------------------------------------------------- */ static void nh_init(nh_ctx *hc, aes_int_key prf_key) /* Generate nh_key, endian convert and reset to be ready for hashing. */ { kdf(hc->nh_key, prf_key, 1, sizeof(hc->nh_key)); endian_convert_if_le(hc->nh_key, 4, sizeof(hc->nh_key)); nh_reset(hc); } /* ---------------------------------------------------------------------- */ static void nh_update(nh_ctx *hc, UINT8 *buf, UINT32 nbytes) /* Incorporate nbytes of data into a nh_ctx, buffer whatever is not an */ /* even multiple of HASH_BUF_BYTES. */ { UINT32 i,j; j = hc->next_data_empty; if ((j + nbytes) >= HASH_BUF_BYTES) { if (j) { i = HASH_BUF_BYTES - j; memcpy(hc->data+j, buf, i); nh_transform(hc,hc->data,HASH_BUF_BYTES); nbytes -= i; buf += i; hc->bytes_hashed += HASH_BUF_BYTES; } if (nbytes >= HASH_BUF_BYTES) { i = nbytes & ~(HASH_BUF_BYTES - 1); nh_transform(hc, buf, i); nbytes -= i; buf += i; hc->bytes_hashed += i; } j = 0; } memcpy(hc->data + j, buf, nbytes); hc->next_data_empty = j + nbytes; } /* ---------------------------------------------------------------------- */ static void zero_pad(UINT8 *p, int nbytes) { /* Write "nbytes" of zeroes, beginning at "p" */ if (nbytes >= (int)sizeof(UWORD)) { while ((ptrdiff_t)p % sizeof(UWORD)) { *p = 0; nbytes--; p++; } while (nbytes >= (int)sizeof(UWORD)) { *(UWORD *)p = 0; nbytes -= sizeof(UWORD); p += sizeof(UWORD); } } while (nbytes) { *p = 0; nbytes--; p++; } } /* ---------------------------------------------------------------------- */ static void nh_final(nh_ctx *hc, UINT8 *result) /* After passing some number of data buffers to nh_update() for integration * into an NH context, nh_final is called to produce a hash result. If any * bytes are in the buffer hc->data, incorporate them into the * NH context. Finally, add into the NH accumulation "state" the total number * of bits hashed. The resulting numbers are written to the buffer "result". * If nh_update was never called, L1_PAD_BOUNDARY zeroes are incorporated. */ { int nh_len, nbits; if (hc->next_data_empty != 0) { nh_len = ((hc->next_data_empty + (L1_PAD_BOUNDARY - 1)) & ~(L1_PAD_BOUNDARY - 1)); zero_pad(hc->data + hc->next_data_empty, nh_len - hc->next_data_empty); nh_transform(hc, hc->data, nh_len); hc->bytes_hashed += hc->next_data_empty; } else if (hc->bytes_hashed == 0) { nh_len = L1_PAD_BOUNDARY; zero_pad(hc->data, L1_PAD_BOUNDARY); nh_transform(hc, hc->data, nh_len); } nbits = (hc->bytes_hashed << 3); ((UINT64 *)result)[0] = ((UINT64 *)hc->state)[0] + nbits; #if (UMAC_OUTPUT_LEN >= 8) ((UINT64 *)result)[1] = ((UINT64 *)hc->state)[1] + nbits; #endif #if (UMAC_OUTPUT_LEN >= 12) ((UINT64 *)result)[2] = ((UINT64 *)hc->state)[2] + nbits; #endif #if (UMAC_OUTPUT_LEN == 16) ((UINT64 *)result)[3] = ((UINT64 *)hc->state)[3] + nbits; #endif nh_reset(hc); } /* ---------------------------------------------------------------------- */ static void nh(nh_ctx *hc, UINT8 *buf, UINT32 padded_len, UINT32 unpadded_len, UINT8 *result) /* All-in-one nh_update() and nh_final() equivalent. * Assumes that padded_len is divisible by L1_PAD_BOUNDARY and result is * well aligned */ { UINT32 nbits; /* Initialize the hash state */ nbits = (unpadded_len << 3); ((UINT64 *)result)[0] = nbits; #if (UMAC_OUTPUT_LEN >= 8) ((UINT64 *)result)[1] = nbits; #endif #if (UMAC_OUTPUT_LEN >= 12) ((UINT64 *)result)[2] = nbits; #endif #if (UMAC_OUTPUT_LEN == 16) ((UINT64 *)result)[3] = nbits; #endif nh_aux(hc->nh_key, buf, result, padded_len); } /* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */ /* ----- Begin UHASH Section -------------------------------------------- */ /* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */ /* UHASH is a multi-layered algorithm. Data presented to UHASH is first * hashed by NH. The NH output is then hashed by a polynomial-hash layer * unless the initial data to be hashed is short. After the polynomial- * layer, an inner-product hash is used to produce the final UHASH output. * * UHASH provides two interfaces, one all-at-once and another where data * buffers are presented sequentially. In the sequential interface, the * UHASH client calls the routine uhash_update() as many times as necessary. * When there is no more data to be fed to UHASH, the client calls * uhash_final() which * calculates the UHASH output. Before beginning another UHASH calculation * the uhash_reset() routine must be called. The all-at-once UHASH routine, * uhash(), is equivalent to the sequence of calls uhash_update() and * uhash_final(); however it is optimized and should be * used whenever the sequential interface is not necessary. * * The routine uhash_init() initializes the uhash_ctx data structure and * must be called once, before any other UHASH routine. */ /* ---------------------------------------------------------------------- */ /* ----- Constants and uhash_ctx ---------------------------------------- */ /* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */ /* ----- Poly hash and Inner-Product hash Constants --------------------- */ /* ---------------------------------------------------------------------- */ /* Primes and masks */ #define p36 ((UINT64)0x0000000FFFFFFFFBull) /* 2^36 - 5 */ #define p64 ((UINT64)0xFFFFFFFFFFFFFFC5ull) /* 2^64 - 59 */ #define m36 ((UINT64)0x0000000FFFFFFFFFull) /* The low 36 of 64 bits */ /* ---------------------------------------------------------------------- */ typedef struct uhash_ctx { nh_ctx hash; /* Hash context for L1 NH hash */ UINT64 poly_key_8[STREAMS]; /* p64 poly keys */ UINT64 poly_accum[STREAMS]; /* poly hash result */ UINT64 ip_keys[STREAMS*4]; /* Inner-product keys */ UINT32 ip_trans[STREAMS]; /* Inner-product translation */ UINT32 msg_len; /* Total length of data passed */ /* to uhash */ } uhash_ctx; /* ---------------------------------------------------------------------- */ /* The polynomial hashes use Horner's rule to evaluate a polynomial one * word at a time. As described in the specification, poly32 and poly64 * require keys from special domains. The following impelementations exploit * the special domains to avoid overflow. The results are not guaranteed to * be within Z_p32 and Z_p64, but the Inner-Product hash implementation * patches any errant values. */ static UINT64 poly64(UINT64 cur, UINT64 key, UINT64 data) { UINT32 key_hi = (UINT32)(key >> 32), key_lo = (UINT32)key, cur_hi = (UINT32)(cur >> 32), cur_lo = (UINT32)cur, x_lo, x_hi; UINT64 X,T,res; X = MUL64(key_hi, cur_lo) + MUL64(cur_hi, key_lo); x_lo = (UINT32)X; x_hi = (UINT32)(X >> 32); res = (MUL64(key_hi, cur_hi) + x_hi) * 59 + MUL64(key_lo, cur_lo); T = ((UINT64)x_lo << 32); res += T; if (res < T) res += 59; res += data; if (res < data) res += 59; return res; } /* Although UMAC is specified to use a ramped polynomial hash scheme, this * impelemtation does not handle all ramp levels. Because we don't handle * the ramp up to p128 modulus in this implementation, we are limited to * 2^14 poly_hash() invocations per stream (for a total capacity of 2^24 * bytes input to UMAC per tag, ie. 16MB). */ static void poly_hash(uhash_ctx_t hc, UINT32 data_in[]) { int i; UINT64 *data=(UINT64*)data_in; for (i = 0; i < STREAMS; i++) { if ((UINT32)(data[i] >> 32) == 0xfffffffful) { hc->poly_accum[i] = poly64(hc->poly_accum[i], hc->poly_key_8[i], p64 - 1); hc->poly_accum[i] = poly64(hc->poly_accum[i], hc->poly_key_8[i], (data[i] - 59)); } else { hc->poly_accum[i] = poly64(hc->poly_accum[i], hc->poly_key_8[i], data[i]); } } } /* ---------------------------------------------------------------------- */ /* The final step in UHASH is an inner-product hash. The poly hash * produces a result not neccesarily WORD_LEN bytes long. The inner- * product hash breaks the polyhash output into 16-bit chunks and * multiplies each with a 36 bit key. */ #if (MSC_X86 && ! FORCE_C_ONLY) static UINT64 ip_aux(UINT64 t, UINT64 *ipkp, UINT64 data) { UINT32 data_hi = (UINT32)(data >> 32), data_lo = (UINT32)(data), t_hi = (UINT32)(t >> 32), t_lo = (UINT32)(t); __asm{ mov edi, ipkp mov ebx,data_hi mov ecx,data_lo mov esi, t_lo mov edx, t_hi push ebp mov ebp,edx mov eax,ebx shr eax,16 mul DWORD PTR 0[edi] add esi,eax adc ebp,edx mov eax,ebx shr eax,16 mul DWORD PTR 4[edi] add ebp,eax movzx eax,bx mul DWORD PTR 8[edi] add esi,eax adc ebp,edx movzx eax,bx mul DWORD PTR 12[edi] add ebp,eax mov eax,ecx shr eax,16 mul DWORD PTR 16[edi] add esi,eax adc ebp,edx mov eax,ecx shr eax,16 mul DWORD PTR 20[edi] add ebp,eax movzx eax,cx mul DWORD PTR 24[edi] add esi,eax adc ebp,edx movzx eax,cx mul DWORD PTR 28[edi] lea edx,[eax+ebp] mov eax,esi pop ebp /* MSVC returns UINT64 in edx:eax */ } } static UINT32 ip_reduce_p36(UINT64 t) { UINT32 t_hi = (UINT32)(t >> 32), t_lo = (UINT32)(t); __asm{ mov edx,t_hi mov eax,t_lo mov edi,edx and edx,15 shr edi,4 lea edi,[edi+edi*4] add eax,edi adc edx,0 cmp edx,0xf jb skip_sub ja do_sub cmp eax,0xfffffffb jb skip_sub do_sub: sub eax, 0xfffffffb /* sbb edx, 0xf We don't return the high word */ skip_sub: } } #elif (GCC_X86 && ! FORCE_C_ONLY) static UINT64 ip_aux(UINT64 t, UINT64 *ipkp, UINT64 data) { UINT32 dummy1, dummy2; asm volatile( "pushl %%ebp\n\t" "movl %%eax,%%esi\n\t" "movl %%edx,%%ebp\n\t" "movl %%ebx,%%eax\n\t" "shrl $16,%%eax\n\t" "mull 0(%%edi)\n\t" "addl %%eax,%%esi\n\t" "adcl %%edx,%%ebp\n\t" "movl %%ebx,%%eax\n\t" "shrl $16,%%eax\n\t" "mull 4(%%edi)\n\t" "addl %%eax,%%ebp\n\t" "movzwl %%bx,%%eax\n\t" "mull 8(%%edi)\n\t" "addl %%eax,%%esi\n\t" "adcl %%edx,%%ebp\n\t" "movzwl %%bx,%%eax\n\t" "mull 12(%%edi)\n\t" "addl %%eax,%%ebp\n\t" "movl %%ecx,%%eax\n\t" "shrl $16,%%eax\n\t" "mull 16(%%edi)\n\t" "addl %%eax,%%esi\n\t" "adcl %%edx,%%ebp\n\t" "movl %%ecx,%%eax\n\t" "shrl $16,%%eax\n\t" "mull 20(%%edi)\n\t" "addl %%eax,%%ebp\n\t" "movzwl %%cx,%%eax\n\t" "mull 24(%%edi)\n\t" "addl %%eax,%%esi\n\t" "adcl %%edx,%%ebp\n\t" "movzwl %%cx,%%eax\n\t" "mull 28(%%edi)\n\t" "leal (%%eax,%%ebp),%%edx\n\t" "movl %%esi,%%eax\n\t" "popl %%ebp" : "+A"(t), "=b"(dummy1), "=c"(dummy2) : "D"(ipkp), "1"((UINT32)(data>>32)), "2"((UINT32)data) : "esi"); return t; } static UINT32 ip_reduce_p36(UINT64 t) { asm volatile( "movl %%edx,%%edi\n\t" "andl $15,%%edx\n\t" "shrl $4,%%edi\n\t" "leal (%%edi,%%edi,4),%%edi\n\t" "addl %%edi,%%eax\n\t" "adcl $0,%%edx\n\t" : "+A"(t) : : "edi"); if (t >= p36) t -= p36; return (UINT32)(t); } #else static UINT64 ip_aux(UINT64 t, UINT64 *ipkp, UINT64 data) { t = t + ipkp[0] * (UINT64)(UINT16)(data >> 48); t = t + ipkp[1] * (UINT64)(UINT16)(data >> 32); t = t + ipkp[2] * (UINT64)(UINT16)(data >> 16); t = t + ipkp[3] * (UINT64)(UINT16)(data); return t; } static UINT32 ip_reduce_p36(UINT64 t) { /* Divisionless modular reduction */ UINT64 ret; ret = (t & m36) + 5 * (t >> 36); if (ret >= p36) ret -= p36; /* return least significant 32 bits */ return (UINT32)(ret); } #endif /* If the data being hashed by UHASH is no longer than L1_KEY_LEN, then * the polyhash stage is skipped and ip_short is applied directly to the * NH output. */ static void ip_short(uhash_ctx_t ahc, UINT8 *nh_res, char *res) { UINT64 t; UINT64 *nhp = (UINT64 *)nh_res; t = ip_aux(0,ahc->ip_keys, nhp[0]); STORE_UINT32_BIG((UINT32 *)res+0, ip_reduce_p36(t) ^ ahc->ip_trans[0]); #if (UMAC_OUTPUT_LEN >= 8) t = ip_aux(0,ahc->ip_keys+4, nhp[1]); STORE_UINT32_BIG((UINT32 *)res+1, ip_reduce_p36(t) ^ ahc->ip_trans[1]); #endif #if (UMAC_OUTPUT_LEN >= 12) t = ip_aux(0,ahc->ip_keys+8, nhp[2]); STORE_UINT32_BIG((UINT32 *)res+2, ip_reduce_p36(t) ^ ahc->ip_trans[2]); #endif #if (UMAC_OUTPUT_LEN == 16) t = ip_aux(0,ahc->ip_keys+12, nhp[3]); STORE_UINT32_BIG((UINT32 *)res+3, ip_reduce_p36(t) ^ ahc->ip_trans[3]); #endif } /* If the data being hashed by UHASH is longer than L1_KEY_LEN, then * the polyhash stage is not skipped and ip_long is applied to the * polyhash output. */ static void ip_long(uhash_ctx_t ahc, char *res) { int i; UINT64 t; for (i = 0; i < STREAMS; i++) { /* fix polyhash output not in Z_p64 */ if (ahc->poly_accum[i] >= p64) ahc->poly_accum[i] -= p64; t = ip_aux(0,ahc->ip_keys+(i*4), ahc->poly_accum[i]); STORE_UINT32_BIG((UINT32 *)res+i, ip_reduce_p36(t) ^ ahc->ip_trans[i]); } } /* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */ /* Reset uhash context for next hash session */ int uhash_reset(uhash_ctx_t pc) { nh_reset(&pc->hash); pc->msg_len = 0; pc->poly_accum[0] = 1; #if (UMAC_OUTPUT_LEN >= 8) pc->poly_accum[1] = 1; #endif #if (UMAC_OUTPUT_LEN >= 12) pc->poly_accum[2] = 1; #endif #if (UMAC_OUTPUT_LEN == 16) pc->poly_accum[3] = 1; #endif return 1; } /* ---------------------------------------------------------------------- */ /* Given a pointer to the internal key needed by kdf() and a uhash context, * initialize the NH context and generate keys needed for poly and inner- * product hashing. All keys are endian adjusted in memory so that native * loads cause correct keys to be in registers during calculation. */ static void uhash_init(uhash_ctx_t ahc, aes_int_key prf_key) { int i; UINT8 buf[(8*STREAMS+4)*sizeof(UINT64)]; /* Zero the entire uhash context */ memset(ahc, 0, sizeof(uhash_ctx)); /* Initialize the L1 hash */ nh_init(&ahc->hash, prf_key); /* Setup L2 hash variables */ kdf(buf, prf_key, 2, sizeof(buf)); /* Fill buffer with index 1 key */ for (i = 0; i < STREAMS; i++) { /* Fill keys from the buffer, skipping bytes in the buffer not * used by this implementation. Endian reverse the keys if on a * little-endian computer. */ memcpy(ahc->poly_key_8+i, buf+24*i, 8); endian_convert_if_le(ahc->poly_key_8+i, 8, 8); /* Mask the 64-bit keys to their special domain */ ahc->poly_key_8[i] &= ((UINT64)0x01ffffffu << 32) + 0x01ffffffu; ahc->poly_accum[i] = 1; /* Our polyhash prepends a non-zero word */ } /* Setup L3-1 hash variables */ kdf(buf, prf_key, 3, sizeof(buf)); /* Fill buffer with index 2 key */ for (i = 0; i < STREAMS; i++) memcpy(ahc->ip_keys+4*i, buf+(8*i+4)*sizeof(UINT64), 4*sizeof(UINT64)); endian_convert_if_le(ahc->ip_keys, sizeof(UINT64), sizeof(ahc->ip_keys)); for (i = 0; i < STREAMS*4; i++) ahc->ip_keys[i] %= p36; /* Bring into Z_p36 */ /* Setup L3-2 hash variables */ /* Fill buffer with index 4 key */ kdf(ahc->ip_trans, prf_key, 4, STREAMS * sizeof(UINT32)); endian_convert_if_le(ahc->ip_trans, sizeof(UINT32), STREAMS * sizeof(UINT32)); } /* ---------------------------------------------------------------------- */ uhash_ctx_t uhash_alloc(char key[]) { /* Allocate memory and force to a 16-byte boundary. */ uhash_ctx_t ctx; char bytes_to_add; aes_int_key prf_key; ctx = (uhash_ctx_t)malloc(sizeof(uhash_ctx)+ALLOC_BOUNDARY); if (ctx) { if (ALLOC_BOUNDARY) { bytes_to_add = ALLOC_BOUNDARY - ((ptrdiff_t)ctx & (ALLOC_BOUNDARY -1)); ctx = (uhash_ctx_t)((char *)ctx + bytes_to_add); *((char *)ctx - 1) = bytes_to_add; } aes_key_setup(key,prf_key); uhash_init(ctx, prf_key); } return (ctx); } /* ---------------------------------------------------------------------- */ int uhash_free(uhash_ctx_t ctx) { /* Free memory allocated by uhash_alloc */ char bytes_to_sub; if (ctx) { if (ALLOC_BOUNDARY) { bytes_to_sub = *((char *)ctx - 1); ctx = (uhash_ctx_t)((char *)ctx - bytes_to_sub); } free(ctx); } return (1); } /* ---------------------------------------------------------------------- */ int uhash_update(uhash_ctx_t ctx, char *input, long len) /* Given len bytes of data, we parse it into L1_KEY_LEN chunks and * hash each one with NH, calling the polyhash on each NH output. */ { UWORD bytes_hashed, bytes_remaining; UINT8 nh_result[STREAMS*sizeof(UINT64)]; if (ctx->msg_len + len <= L1_KEY_LEN) { nh_update(&ctx->hash, (UINT8 *)input, len); ctx->msg_len += len; } else { bytes_hashed = ctx->msg_len % L1_KEY_LEN; if (ctx->msg_len == L1_KEY_LEN) bytes_hashed = L1_KEY_LEN; if (bytes_hashed + len >= L1_KEY_LEN) { /* If some bytes have been passed to the hash function */ /* then we want to pass at most (L1_KEY_LEN - bytes_hashed) */ /* bytes to complete the current nh_block. */ if (bytes_hashed) { bytes_remaining = (L1_KEY_LEN - bytes_hashed); nh_update(&ctx->hash, (UINT8 *)input, bytes_remaining); nh_final(&ctx->hash, nh_result); ctx->msg_len += bytes_remaining; poly_hash(ctx,(UINT32 *)nh_result); len -= bytes_remaining; input += bytes_remaining; } /* Hash directly from input stream if enough bytes */ while (len >= L1_KEY_LEN) { nh(&ctx->hash, (UINT8 *)input, L1_KEY_LEN, L1_KEY_LEN, nh_result); ctx->msg_len += L1_KEY_LEN; len -= L1_KEY_LEN; input += L1_KEY_LEN; poly_hash(ctx,(UINT32 *)nh_result); } } /* pass remaining < L1_KEY_LEN bytes of input data to NH */ if (len) { nh_update(&ctx->hash, (UINT8 *)input, len); ctx->msg_len += len; } } return (1); } /* ---------------------------------------------------------------------- */ int uhash_final(uhash_ctx_t ctx, char *res) /* Incorporate any pending data, pad, and generate tag */ { UINT8 nh_result[STREAMS*sizeof(UINT64)]; if (ctx->msg_len > L1_KEY_LEN) { if (ctx->msg_len % L1_KEY_LEN) { nh_final(&ctx->hash, nh_result); poly_hash(ctx,(UINT32 *)nh_result); } ip_long(ctx, res); } else { nh_final(&ctx->hash, nh_result); ip_short(ctx,nh_result, res); } uhash_reset(ctx); return (1); } /* ---------------------------------------------------------------------- */ int uhash(uhash_ctx_t ahc, char *msg, long len, char *res) /* assumes that msg is in a writable buffer of length divisible by */ /* L1_PAD_BOUNDARY. Bytes beyond msg[len] may be zeroed. */ { UINT8 nh_result[STREAMS*sizeof(UINT64)]; UINT32 nh_len; int extra_zeroes_needed; /* If the message to be hashed is no longer than L1_HASH_LEN, we skip * the polyhash. */ if (len <= L1_KEY_LEN) { if (len == 0) /* If zero length messages will not */ nh_len = L1_PAD_BOUNDARY; /* be seen, comment out this case */ else nh_len = ((len + (L1_PAD_BOUNDARY - 1)) & ~(L1_PAD_BOUNDARY - 1)); extra_zeroes_needed = nh_len - len; zero_pad((UINT8 *)msg + len, extra_zeroes_needed); nh(&ahc->hash, (UINT8 *)msg, nh_len, len, nh_result); ip_short(ahc,nh_result, res); } else { /* Otherwise, we hash each L1_KEY_LEN chunk with NH, passing the NH * output to poly_hash(). */ do { nh(&ahc->hash, (UINT8 *)msg, L1_KEY_LEN, L1_KEY_LEN, nh_result); poly_hash(ahc,(UINT32 *)nh_result); len -= L1_KEY_LEN; msg += L1_KEY_LEN; } while (len >= L1_KEY_LEN); if (len) { nh_len = ((len + (L1_PAD_BOUNDARY - 1)) & ~(L1_PAD_BOUNDARY - 1)); extra_zeroes_needed = nh_len - len; zero_pad((UINT8 *)msg + len, extra_zeroes_needed); nh(&ahc->hash, (UINT8 *)msg, nh_len, len, nh_result); poly_hash(ahc,(UINT32 *)nh_result); } ip_long(ahc, res); } uhash_reset(ahc); return 1; } /* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */ /* ----- Begin UMAC Section --------------------------------------------- */ /* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */ /* The UMAC interface has two interfaces, an all-at-once interface where * the entire message to be authenticated is passed to UMAC in one buffer, * and a sequential interface where the message is presented a little at a * time. The all-at-once is more optimaized than the sequential version and * should be preferred when the sequential interface is not required. */ typedef struct umac_ctx { uhash_ctx hash; /* Hash function for message compression */ pdf_ctx pdf; /* PDF for hashed output */ } umac_ctx; /* ---------------------------------------------------------------------- */ int umac_reset(umac_ctx_t ctx) /* Reset the hash function to begin a new authentication. */ { uhash_reset(&ctx->hash); return (1); } /* ---------------------------------------------------------------------- */ int umac_delete(umac_ctx_t ctx) /* Deallocate the ctx structure */ { char bytes_to_sub; if (ctx) { if (ALLOC_BOUNDARY) { bytes_to_sub = *((char *)ctx - 1); ctx = (umac_ctx_t)((char *)ctx - bytes_to_sub); } free(ctx); } return (1); } /* ---------------------------------------------------------------------- */ umac_ctx_t umac_new(char key[]) /* Dynamically allocate a umac_ctx struct, initialize variables, * generate subkeys from key. Align to 16-byte boundary. */ { umac_ctx_t ctx; char bytes_to_add; aes_int_key prf_key; ctx = (umac_ctx_t)malloc(sizeof(umac_ctx)+ALLOC_BOUNDARY); if (ctx) { if (ALLOC_BOUNDARY) { bytes_to_add = ALLOC_BOUNDARY - ((ptrdiff_t)ctx & (ALLOC_BOUNDARY - 1)); ctx = (umac_ctx_t)((char *)ctx + bytes_to_add); *((char *)ctx - 1) = bytes_to_add; } aes_key_setup(key,prf_key); pdf_init(&ctx->pdf, prf_key); uhash_init(&ctx->hash, prf_key); } return (ctx); } /* ---------------------------------------------------------------------- */ int umac_final(umac_ctx_t ctx, char tag[], char nonce[8]) /* Incorporate any pending data, pad, and generate tag */ { uhash_final(&ctx->hash, (char *)tag); pdf_gen_xor(&ctx->pdf, (UINT8 *)nonce, (UINT8 *)tag); return (1); } /* ---------------------------------------------------------------------- */ int umac_update(umac_ctx_t ctx, char *input, long len) /* Given len bytes of data, we parse it into L1_KEY_LEN chunks and */ /* hash each one, calling the PDF on the hashed output whenever the hash- */ /* output buffer is full. */ { uhash_update(&ctx->hash, input, len); return (1); } /* ---------------------------------------------------------------------- */ int umac(umac_ctx_t ctx, char *input, long len, char tag[], char nonce[8]) /* All-in-one version simply calls umac_update() and umac_final(). */ { uhash(&ctx->hash, input, len, (char *)tag); pdf_gen_xor(&ctx->pdf, (UINT8 *)nonce, (UINT8 *)tag); return (1); } /* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */ /* ----- End UMAC Section ----------------------------------------------- */ /* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */ /* If RUN_TESTS is defined non-zero, then we define a main() function and */ /* run some verification and speed tests. */ #if RUN_TESTS #include #include static void pbuf(void *buf, UWORD n, char *s) { UWORD i; UINT8 *cp = (UINT8 *)buf; if (n <= 0 || n >= 30) n = 30; if (s) printf("%s: ", s); for (i = 0; i < n; i++) printf("%02X", (unsigned char)cp[i]); printf("\n"); } static void primitive_verify(void) { #if (UMAC_KEY_LEN == 16) UINT8 key[16] = {0}; UINT8 pt[16] = {'\x80',0,/* remainder auto filled with zeroes */}; char res[] = "3AD78E726C1EC02B7EBFE92B23D9EC34"; #elif (UMAC_KEY_LEN == 32) UINT8 key[32] = {0}; UINT8 pt[16] = {'\x80',0,/* remainder auto filled with zeroes */}; char res[] = "DDC6BF79 C1576 D8D9AEB6F9A75FD4E"; #endif aes_int_key k1; aes_key_setup(key, k1); aes_encryption(pt, pt, k1); printf("\nAES Test\n"); pbuf(pt, 16, "Digest is "); printf("Digest should be: %s\n", res); } static void umac_verify(void) { umac_ctx_t ctx; char *data_ptr; int data_len = 32 * 1024; char nonce[] = "abcdefgh"; char tag[21] = {0}; char tag2[21] = {0}; int bytes_over_boundary, i, j; int inc[] = {1,99,512}; int lengths[] = {0,3,1024,32768}; char *results[] = {"4D61E4F5AAB959C8B800A2BE546302AD", "67C1700CA30B532DCD9B970655B47B45", "05CB9405EC38D9F0B356D9E6D5BC5D03", "048C543CB72443A46011A76438BA2AF4"}; /* Initialize Memory and UMAC */ data_ptr = (char *)malloc(data_len + 48); if (data_ptr == 0) return; bytes_over_boundary = (ptrdiff_t)data_ptr & (16 - 1); if (bytes_over_boundary != 0) data_ptr += (16 - bytes_over_boundary); memset(data_ptr, 'a', data_len); ctx = umac_new("abcdefghijklmnop"); printf("Testing known vectors.\n\n"); printf("Msg %-*s Is\n", UMAC_OUTPUT_LEN * 2, "Should be"); printf("--- %-*s --\n", UMAC_OUTPUT_LEN * 2, "---------"); for (i = 0; (unsigned)i < sizeof(lengths)/sizeof(*lengths); i++) { memset(data_ptr, 'a', lengths[i]); umac(ctx, data_ptr, lengths[i], tag, nonce); umac_reset(ctx); printf("'a' * %5d : %.*s ", lengths[i], UMAC_OUTPUT_LEN * 2, results[i]); pbuf(tag, UMAC_OUTPUT_LEN, NULL); } printf("\nVerifying consistancy of single- and" " multiple-call interfaces.\n"); for (i = 1; i < (int)(sizeof(inc)/sizeof(inc[0])); i++) { for (j = 0; j <= data_len-inc[i]; j+=inc[i]) umac_update(ctx, data_ptr+j, inc[i]); umac_final(ctx, tag, nonce); umac_reset(ctx); umac(ctx, data_ptr, (data_len/inc[i])*inc[i], tag2, nonce); umac_reset(ctx); nonce[7]++; if (memcmp(tag,tag2,sizeof(tag))) printf("\ninc = %d data_len = %d failed!\n", inc[i], data_len); } printf("Done.\n"); umac_delete(ctx); } static double run_cpb_test(umac_ctx_t ctx, int nbytes, char *data_ptr, int data_len, double hz) { clock_t ticks; double secs; char nonce[8] = {0}; char tag[UMAC_OUTPUT_LEN+1] = {0}; /* extra char for null terminator */ unsigned long total_mbs; unsigned long iters_per_tag, remaining; unsigned long tag_iters, i, j; if (nbytes <= 16) total_mbs = 5; if (nbytes <= 32) total_mbs = 30; else if (nbytes <= 64) total_mbs = 400; else if (nbytes <= 256) total_mbs = 800; else if (nbytes <= 1024) total_mbs = 1600; else total_mbs = 2500; tag_iters = (total_mbs * 1024 * 1024) / (nbytes) + 1; if (nbytes <= data_len) { i = tag_iters; umac(ctx, data_ptr, nbytes, tag, nonce); ticks = clock(); do { umac(ctx, data_ptr, nbytes, tag, nonce); nonce[7] += 1; } while (--i); ticks = clock() - ticks; } else { i = tag_iters; iters_per_tag = nbytes / data_len; remaining = nbytes % data_len; umac_update(ctx, data_ptr, data_len); umac_final(ctx, tag, nonce); ticks = clock(); do { j = iters_per_tag; do { umac_update(ctx, data_ptr, data_len); } while (--j); if (remaining) umac_update(ctx, data_ptr, remaining); umac_final(ctx, tag, nonce); nonce[7] += 1; } while (--i); ticks = clock() - ticks; } secs = (double)ticks / CLOCKS_PER_SEC; return (secs * (hz/(tag_iters*nbytes))); } static void speed_test(void) { umac_ctx_t ctx; char *data_ptr; int data_len; double hz; double cpb; int bytes_over_boundary, i; int length_range_low = 1; int length_range_high = 0; int length_pts[] = {44,64,256,512,552,1024,1500,8*1024,256*1024}; /* hz and data_len must be set appropriately for your system * for optimal results. */ #if (GCC_X86 || MSC_X86) hz = ((double)2000e6); data_len = 4096; #else hz = ((double)1420e6); data_len = 8192; #endif /* Allocate memory and align to 16-byte multiple */ data_ptr = (char *)malloc(data_len + 16); bytes_over_boundary = (ptrdiff_t)data_ptr & (16 - 1); if (bytes_over_boundary != 0) data_ptr += (16 - bytes_over_boundary); for (i = 0; i < data_len; i++) data_ptr[i] = (i*i) % 128; ctx = umac_new("abcdefghijklmnopqrstuvwxyz"); printf("\n"); if (length_range_low < length_range_high) { for (i = length_range_low; i <= length_range_high; i++) { cpb = run_cpb_test(ctx, i, data_ptr, data_len, hz); printf("Authenticating %8d byte messages: %5.2f cpb.\n", i, cpb); } } if (sizeof(length_pts) > 0) { for (i = 0; i < (int)(sizeof(length_pts)/sizeof(int)); i++) { cpb = run_cpb_test(ctx, length_pts[i], data_ptr, data_len, hz); printf("Authenticating %8d byte messages: %5.2f cpb.\n", length_pts[i], cpb); } } umac_delete(ctx); } int main(void) { #if GLADMAN_AES gen_tabs(); #endif umac_verify(); primitive_verify(); speed_test(); /* printf("Push return to continue\n"); getchar(); */ return (1); } #endif tcpcrypt-0.5/contrib/ocb.h0000644000175200017520000001240312742073006014641 0ustar sorbosorbo/* * ocb.h * * Author: Ted Krovetz (tdk@acm.org) * History: 1 April 2000 - first release (TK) - version 0.9 * * OCB-AES-n reference code based on NIST submission "OCB Mode" * (dated 1 April 2000), submitted by Phillip Rogaway, with * auxiliary submitters Mihir Bellare, John Black, and Ted Krovetz. * * This code is freely available, and may be modified as desired. * Please retain the authorship and change history. * Note that OCB mode itself is patent pending. * * This code is NOT optimized for speed; it is only * designed to clarify the algorithm and to provide a point * of comparison for other implementations. * * Limitiations: Assumes a 4-byte integer and pointers are * 32-bit aligned. Acts on a byte string of less than 2^{36} - 16 bytes. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef __OCB__H #define __OCB__H #ifndef AES_KEY_BITLEN #define AES_KEY_BITLEN 128 /* Must be 128, 192, 256 */ #endif #if ((AES_KEY_BITLEN != 128) && \ (AES_KEY_BITLEN != 192) && \ (AES_KEY_BITLEN != 256)) #error Bad -- AES_KEY_BITLEN must be one of 128, 192 or 256!! #endif /* Opaque forward declaration of key structure */ typedef struct _keystruct keystruct; /* * "ocb_aes_init" optionally creates an ocb keystructure in memory * and then initializes it using the supplied "enc_key". "tag_len" * specifies the length of tags that will subsequently be generated * and verified. If "key" is NULL a new structure will be created, but * if "key" is non-NULL, then it is assumed that it points to a previously * allocated structure, and that structure is initialized. "ocb_aes_init" * returns a pointer to the initialized structure, or NULL if an error * occurred. */ keystruct * /* Init'd keystruct or NULL */ ocb_aes_init(void *enc_key, /* AES key */ unsigned tag_len, /* Length of tags to be used */ keystruct *key); /* OCB key structure. NULL means */ /* Allocate/init new, non-NULL */ /* means init existing structure */ /* "ocb_done deallocates a key structure and returns NULL */ keystruct * ocb_done(keystruct *key); /* * "ocb_aes_encrypt takes a key structure, four buffers and a length * parameter as input. "pt_len" bytes that are pointed to by "pt" are * encrypted and written to the buffer pointed to by "ct". A tag of length * "tag_len" (set in ocb_aes_init) is written to the "tag" buffer. "nonce" * must be a 16-byte buffer which changes for each new message being * encrypted. "ocb_aes_encrypt" always returns a value of 1. */ void ocb_aes_encrypt(keystruct *key, /* Initialized key struct */ void *nonce, /* 16-byte nonce */ void *pt, /* Buffer for (incoming) plaintext */ unsigned pt_len, /* Byte length of pt */ void *ct, /* Buffer for (outgoing) ciphertext */ void *tag); /* Buffer for generated tag */ /* * "ocb_aes_decrypt takes a key structure, four buffers and a length * parameter as input. "ct_len" bytes that are pointed to by "ct" are * decrypted and written to the buffer pointed to by "pt". A tag of length * "tag_len" (set in ocb_aes_init) is read from the "tag" buffer. "nonce" * must be a 16-byte buffer which changes for each new message being * encrypted. "ocb_aes_decrypt" returns 0 if the supplied * tag is not correct for the supplied message, otherwise 1 is returned if * the tag is correct. */ int /* Returns 0 iff tag is incorrect */ ocb_aes_decrypt(keystruct *key, /* Initialized key struct */ void *nonce, /* 16-byte nonce */ void *ct, /* Buffer for (incoming) ciphertext */ unsigned ct_len, /* Byte length of ct */ void *pt, /* Buffer for (outgoing) plaintext */ void *tag); /* Tag to be verified */ void pmac_aes (keystruct *key, /* Initialized key struct */ void *in, /* Buffer for (incoming) message */ unsigned in_len, /* Byte length of message */ void *tag); /* 16-byte buffer for generated tag */ #endif /* __OCB__H */ tcpcrypt-0.5/contrib/umac.h0000644000175200017520000001013112742073006015017 0ustar sorbosorbo/* ----------------------------------------------------------------------- * * umac.h -- C Implementation UMAC Message Authentication * * Version 0.90 of draft-krovetz-umac-03.txt -- 2004 October * * For a full description of UMAC message authentication see the UMAC * world-wide-web page at http://www.cs.ucdavis.edu/~rogaway/umac * Please report bugs and suggestions to the UMAC webpage. * * Copyright (c) 1999-2004 Ted Krovetz * * Permission to use, copy, modify, and distribute this software and * its documentation for any purpose and with or without fee, is hereby * granted provided that the above copyright notice appears in all copies * and in supporting documentation, and that the name of the copyright * holder not be used in advertising or publicity pertaining to * distribution of the software without specific, written prior permission. * * Comments should be directed to Ted Krovetz (tdk@acm.org) * * ---------------------------------------------------------------------- */ /* ////////////////////// IMPORTANT NOTES ///////////////////////////////// * * 1) This version does not work properly on messages larger than 16MB * * 2) If you set the switch to use SSE2, then all data must be 16-byte * aligned * * 3) When calling the function umac(), it is assumed that msg is in * a writable buffer of length divisible by 32 bytes. The message itself * does not have to fill the entire buffer, but bytes beyond msg may be * zeroed. * * 4) Two free AES implementations are supported by this implementation of * UMAC. Paulo Barreto's version is in the public domain and can be found * at http://www.esat.kuleuven.ac.be/~rijmen/rijndael/ (search for * "Barreto"). The only two files needed are rijndael-alg-fst.c and * rijndael-alg-fst.h. * Brian Gladman's version is distributed with GNU Public lisence * and can be found at http://fp.gladman.plus.com/AES/index.htm. It * includes a fast IA-32 assembly version. * /////////////////////////////////////////////////////////////////////// */ #ifdef __cplusplus extern "C" { #endif typedef struct umac_ctx *umac_ctx_t; umac_ctx_t umac_new(char key[]); /* Dynamically allocate a umac_ctx struct, initialize variables, * generate subkeys from key. */ int umac_reset(umac_ctx_t ctx); /* Reset a umac_ctx to begin authenicating a new message */ int umac_update(umac_ctx_t ctx, char *input, long len); /* Incorporate len bytes pointed to by input into context ctx */ int umac_final(umac_ctx_t ctx, char tag[], char nonce[8]); /* Incorporate any pending data and the ctr value, and return tag. * This function returns error code if ctr < 0. */ int umac_delete(umac_ctx_t ctx); /* Deallocate the context structure */ int umac(umac_ctx_t ctx, char *input, long len, char tag[], char nonce[8]); /* All-in-one implementation of the functions Reset, Update and Final */ /* uhash.h */ typedef struct uhash_ctx *uhash_ctx_t; /* The uhash_ctx structure is defined by the implementation of the */ /* UHASH functions. */ uhash_ctx_t uhash_alloc(char key[16]); /* Dynamically allocate a uhash_ctx struct and generate subkeys using */ /* the kdf and kdf_key passed in. If kdf_key_len is 0 then RC6 is */ /* used to generate key with a fixed key. If kdf_key_len > 0 but kdf */ /* is NULL then the first 16 bytes pointed at by kdf_key is used as a */ /* key for an RC6 based KDF. */ int uhash_free(uhash_ctx_t ctx); int uhash_set_params(uhash_ctx_t ctx, void *params); int uhash_reset(uhash_ctx_t ctx); int uhash_update(uhash_ctx_t ctx, char *input, long len); int uhash_final(uhash_ctx_t ctx, char ouput[]); int uhash(uhash_ctx_t ctx, char *input, long len, char output[]); #ifdef __cplusplus } #endif tcpcrypt-0.5/lib/0000755000175200017520000000000012742073006013033 5ustar sorbosorbotcpcrypt-0.5/lib/libtcpcrypt.sym0000644000175200017520000000011512742073006016121 0ustar sorbosorbotcpcrypt_getsessid tcpcrypt_getsockopt tcpcrypt_setparam tcpcrypt_setsockopt tcpcrypt-0.5/lib/sockopt.c0000644000175200017520000002310612742073006014663 0ustar sorbosorbo#include #include #include #include #include #include #include #include #include #include #include "shared/socket_address.h" #include "tcpcrypt_ctl.h" #include "config.h" #define MAX_LEN 1200 #define TCP_CRYPT 15 #ifndef SOL_TCP #define SOL_TCP IPPROTO_TCP #endif enum { IMP_UNKNOWN = 0, IMP_USER, IMP_KERNEL, }; struct conf { char *cf_ctl; int cf_s; uint32_t cf_seq; struct socket_address cf_sa; int cf_imp; }; union sockaddr_u { struct sockaddr addr; struct sockaddr_in in; struct sockaddr_in6 in6; struct sockaddr_storage storage; }; static struct conf _conf = { .cf_s = -1, .cf_ctl = TCPCRYPTD_CONTROL_SOCKET, .cf_sa = SOCKET_ADDRESS_NULL }; static void ensure_control_addr_resolved() { struct socket_address sa; int r; static const int error_len = 1000; char error[error_len]; if (!socket_address_is_null(&_conf.cf_sa)) return; r = resolve_socket_address_local(_conf.cf_ctl, &sa, error, error_len); if (r != 0) errx(1, "opening control socket '%s': %s", _conf.cf_ctl, error); memcpy(&_conf.cf_sa, &sa, sizeof(sa)); } void tcpcrypt_setparam(int param, void *val) { switch (param) { case TCPCRYPT_PARAM_CTLPATH: _conf.cf_ctl = strdup(val); socket_address_clear(&_conf.cf_sa); if (_conf.cf_s >= 0) { close(_conf.cf_s); _conf.cf_s = -1; } break; default: printf("Unknown param %d\n", param); break; } } #ifndef __WIN32__ static void bind_local_unix(int s) { struct sockaddr_un sun; socklen_t path_len; memset(&sun, 0, sizeof(sun)); sun.sun_family = AF_UNIX; if (OS_LINUX) { /* request autobind to an abstract unix address */ path_len = 0; } else { /* this makes a mess, and breaks when pids get reused; * for now it is probably best to configure an AF_INET control * socket for non-linux systems */ path_len = snprintf(sun.sun_path, sizeof(sun.sun_path), "/tmp/libtcpcryptd-%d", getpid()) + 1; } if (bind(s, (struct sockaddr *) &sun, sizeof(sa_family_t) + path_len)) err(1, "local bind()"); } #endif /* __WIN32__ */ static void ensure_control_socket_open(void) { if (_conf.cf_s >= 0) return; ensure_control_addr_resolved(); _conf.cf_s = socket(_conf.cf_sa.addr.sa.sa_family, SOCK_DGRAM, 0); if (_conf.cf_s == -1) err(1, "socket()"); #ifndef __WIN32__ if (_conf.cf_sa.addr.sa.sa_family == AF_UNIX) { bind_local_unix(_conf.cf_s); } #endif } /* Sets fields in `struct tcpcrypt_ctl` given in the pointers `ctl_addr` and `ctl_port` from the sockaddr in `ss`. If `ss` is IPv6, attempts a rudimentary IPv6->IPv4 "conversion" for IPv4-compatible/mapped addresses. This will fail on real (non-IPv4-compatible/mapped) IPv6 addresses. Currently, tcpcrypt is *not* IPv6 compatible. */ static void set_ctl_sockaddr(union sockaddr_u *ss, in_addr_t *ctl_addr, uint16_t *ctl_port) { if (ss->storage.ss_family == AF_INET) { *ctl_addr = ss->in.sin_addr.s_addr; *ctl_port = ss->in.sin_port; } else { // AF_INET6 if (IN6_IS_ADDR_V4COMPAT(&ss->in6.sin6_addr) || IN6_IS_ADDR_V4MAPPED(&ss->in6.sin6_addr)) { #ifdef __WIN32__ assert(!"not implemented"); abort(); #else #if !defined s6_addr32 # define s6_addr32 __u6_addr.__u6_addr32 #endif *ctl_addr = ss->in6.sin6_addr.s6_addr32[3]; *ctl_port = ss->in6.sin6_port; #endif /* __WIN32__ */ } else { /* TODO: add IPv6 support */ printf("Non-IPv4-compatible IPv6 addresses not supported." "Behavior of get/set_sockopt call is unreliable.\n"); } } #ifdef DEBUG_IPV6 fprintf(stderr, "* set_ctl_sockaddr: %s:%d\n", inet_ntoa(*ctl_addr), ntohs(*ctl_port)); #endif } static int do_sockopt(uint32_t flags, int s, int level, int optname, void *optval, socklen_t *optlen) { unsigned char *crap; struct tcpcrypt_ctl *ctl; union sockaddr_u ss; socklen_t sl = sizeof ss; int rc, len, i, port; int set = flags & TCC_SET; if (level != IPPROTO_TCP) errx(1, "bad level"); /* XXX */ if (*optlen > MAX_LEN) { if (flags & TCC_SET) errx(1, "setsockopt too long %d", *optlen); *optlen = MAX_LEN; } crap = alloca(sizeof(*ctl) + (*optlen)); ctl = (struct tcpcrypt_ctl*) crap; if (!crap) return -1; memset(ctl, 0, sizeof(*ctl)); ctl->tcc_seq = _conf.cf_seq++; for (i = 0; i < 2; i++) { memset(&ss, 0, sizeof(ss)); if (getsockname(s, (struct sockaddr*) &ss, &sl) == -1) err(1, "getsockname()"); if (ss.storage.ss_family == AF_INET) port = ntohs(ss.in.sin_port); else port = ntohs(ss.in6.sin6_port); if (i == 1) { // printf("forced bind to %d\n", port); break; } if (port) break; /* let's just home the app doesn't call bind again */ ss.in.sin_family = PF_INET; ss.in.sin_port = 0; ss.in.sin_addr.s_addr = INADDR_ANY; if (bind(s, &ss.addr, sizeof(ss)) == -1) err(1, "bind()"); } set_ctl_sockaddr(&ss, &ctl->tcc_src.s_addr, &ctl->tcc_sport); memset(&ss, 0, sl); if (getpeername(s, (struct sockaddr*) &ss, &sl) == 0) { set_ctl_sockaddr(&ss, &ctl->tcc_dst.s_addr, &ctl->tcc_dport); } ctl->tcc_flags = flags; ctl->tcc_opt = optname; ctl->tcc_dlen = *optlen; len = sizeof(*ctl); if (*optlen) { memcpy(crap + len, optval, *optlen); len += *optlen; } ensure_control_socket_open(); #if 0 { char name[1001]; int n = socket_address_pretty(name, 1000, &_conf.cf_sa); name[n] = '\0'; fprintf(stderr, "Control socket: %s\n", name); } #endif rc = sendto(_conf.cf_s, crap, len, 0, &_conf.cf_sa.addr.sa, _conf.cf_sa.addr_len); if (rc == -1) return -1; if (rc != len) errx(1, "short write %d/%d", rc, len); rc = recv(_conf.cf_s, crap, len, 0); if (rc == -1) err(1, "recvmsg()"); if (rc == 0) errx(1, "EOF"); if (rc < sizeof(*ctl) || (rc != sizeof(*ctl) + ctl->tcc_dlen)) errx(1, "short read"); *optlen = ctl->tcc_dlen; if (!set) memcpy(optval, crap + sizeof(*ctl), *optlen); if (ctl->tcc_err) { errno = ctl->tcc_err; ctl->tcc_err = -1; } return ctl->tcc_err; } static void probe_imp() { int s; int opt = TCP_CRYPT_APP_SUPPORT; if (_conf.cf_imp != IMP_UNKNOWN) return; s = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP); if (s == -1) err(1, "socket()"); if (setsockopt(s, SOL_TCP, TCP_CRYPT, &opt, sizeof(opt)) != -1) _conf.cf_imp = IMP_KERNEL; else _conf.cf_imp = IMP_USER; #if 0 printf("Using %d implementation\n", _conf.cf_imp); #endif close(s); } static int setsockopt_kernel(int s, int level, int optname, const void *optval, socklen_t optlen) { unsigned char lame[2048]; if ((optlen + 4) > sizeof(lame)) return -1; memcpy(lame, &optname, sizeof(int)); memcpy(&lame[sizeof(int)], optval, optlen); optlen += sizeof(int); return setsockopt(s, SOL_TCP, TCP_CRYPT, lame, optlen); } static int getsockopt_kernel(int s, int level, int optname, void *optval, socklen_t *optlen) { unsigned char lame[2048]; int rc; if (*optlen > sizeof(lame)) return -1; memcpy(lame, &optname, sizeof(int)); rc = getsockopt(s, SOL_TCP, TCP_CRYPT, lame, optlen); if (rc == -1) return rc; memcpy(optval, lame, *optlen); return 0; } int tcpcrypt_getsockopt(int s, int level, int optname, void *optval, socklen_t *optlen) { probe_imp(); if (_conf.cf_imp == IMP_KERNEL) return getsockopt_kernel(s, level, optname, optval, optlen); return do_sockopt(0, s, level, optname, optval, optlen); } int tcpcrypt_setsockopt(int s, int level, int optname, const void *optval, socklen_t optlen) { probe_imp(); if (_conf.cf_imp == IMP_KERNEL) return setsockopt_kernel(s, level, optname, optval, optlen); return do_sockopt(TCC_SET, s, level, optname, (void*) optval, &optlen); } /* for tcpcrypt_getsessid */ static int __open_socket_for_getsessid() { int s; struct sockaddr_in s_in; #ifdef __WIN32__ WSADATA wsadata; if (WSAStartup(MAKEWORD(1,1), &wsadata) == SOCKET_ERROR) errx(1, "WSAStartup()"); #endif memset(&s_in, 0, sizeof(s_in)); s_in.sin_family = PF_INET; s_in.sin_port = 0; s_in.sin_addr.s_addr = INADDR_ANY; s = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP); if (s == -1) err(1, "socket()"); if (bind(s, (struct sockaddr*) &s_in, sizeof(s_in)) == -1) err(1, "bind()"); return s; } char *tcpcrypt_getsessid(char *remote_ip, uint16_t remote_port, char *local_ip, uint16_t local_port) { /* mostly copied from tcnetstat.c */ static char static_sessid[512]; /* TODO: len */ unsigned char buf[2048]; unsigned int len = sizeof(buf); struct tc_netstat *n = (struct tc_netstat*) buf; int s, sl, i; struct in_addr dip; s = __open_socket_for_getsessid(); #ifndef __WIN32__ if (!inet_aton(remote_ip, &dip)) { /* invalid remote_ip */ return NULL; } #else dip.s_addr = inet_addr(remote_ip); if (dip.s_addr = INADDR_NONE) { /* invalid remote ip */ return NULL; } #endif if (tcpcrypt_getsockopt(s, IPPROTO_TCP, TCP_CRYPT_NETSTAT, buf, &len) == -1) err(1, "tcpcrypt_getsockopt()"); while (len > sizeof(*n)) { sl = ntohs(n->tn_len); assert(len >= sizeof(*n) + sl); /* TODO: also check source ip/port */ if (memcmp(&dip, &n->tn_dip, sizeof(struct in_addr)) == 0 && ntohs(n->tn_dport) == remote_port) { for (i = 0; i < sl; i++) sprintf(&static_sessid[i*2], "%.2X", n->tn_sid[i]); return static_sessid; } sl += sizeof(*n); n = (struct tc_netstat*) ((unsigned long) n + sl); len -= sl; } assert(len == 0); return NULL; } tcpcrypt-0.5/lib/.gitignore0000644000175200017520000000003012742073006015014 0ustar sorbosorbo*.d *.o .*.swp *.so *.a tcpcrypt-0.5/doc/0000755000175200017520000000000012742073006013032 5ustar sorbosorbotcpcrypt-0.5/doc/tcpcrypt-iptables.png0000644000175200017520000167121212742073006017223 0ustar sorbosorbo‰PNG  IHDRђ‘щЙusBIT|dˆ pHYs з зB(›xtEXtSoftwarewww.inkscape.org›ю< IDATxœьнљ{#з}чћї9Е`'ИwГWYЋ%й’b+’;БЬdћ7мю§gžgn–ЩФ™8Žэи‰dЩВe­-ЉwюжZЮ§Ё @›ьV7ЛA}^Z$Б ЈŠѕсїœЏqЮ9DDDDDDDDDф‰fї ˆˆˆˆˆˆˆˆˆШёф‰ˆˆˆˆˆˆˆˆLy"""""""""S@AžˆˆˆˆˆˆˆˆШP'""""""""2ф‰ˆˆˆˆˆˆˆˆLy"""""""""S@AžˆˆˆˆˆˆˆˆШP'""""""""2ф‰ˆˆˆˆˆˆˆˆLџqЏ€ˆˆˆˆˆШЃрўьмЏ‡oхИСeУЋ.)ЛФКє№%Gн23с‹С\Ќ1УG2ƒямшЈ5‘щІ ODDNнрJDDœƒQZуEpc8y5ўйn%OЧпgpПсeУEБ,—Хm.П:uљђœ#ЭŽг”8Iˆ“„Ф9в4ЁEtЛ=z§>qœ’І)Ю9в4%ЩЏу˜4ŽI’”ФeзчбпрПБUЫТ4stŒч†…‡_WcЬи?k,ЕA@xž‡ЕучyжЃ–(—JЅЯZ,пzјО‡яY,рхA С Чc CРТw%чђPаКЭcU|ЩžU‘ГхЄЧЎЧЭ8M‰ˆШ)гЁGDфЫ; AоН–у†Uiй7ŽQœRчH’”8MHг”ЈбщіщіКDqLœ&єЃˆ~д'Šbт4ХЅ)ЉsИAЭГYHWя˜сzИќ /љ`GЯћ!оoЫ+3 ›ПОљК ƒ?k№ŒGр{”ТRт{>ЁяS.•Ј”+јХX‹чyјжцЯёагШŸŸЫ–џЄЄf ђDфS'""rzDDОМƒŸЄуєcX ‘Џ.Uф‰ˆШЉгЁGDdJ<ЄВ?Wј.|7›ЄФIL/Šшїcz§>Н^NЗK”ФY ХYХЫЊЯ†Ћ’+…UržясYƒ1у С=QYbс{sьХЧ^ї З)š–Š<y""rъtш™ч„;с9Ž;0По /k*сˆSG?ъгщіhu:ьЗлД;m:н§(ЦЙŒЩцi3Y`Tьдрxє'\kЈ№Iч^qЯ яРz}лQч )Є…бІr).oюЩцДЦњ>ЕJ…rЉЬLНNЕRЁ„aˆg,^~ЛAИzаIб‡7T<-|ox)"ђеЃ ODDф:єˆˆL‰ђF­FеwIšв":н.;ЛћД:mZ6н^?kB1h6СhxыиАитђOi>ЕГфССЮ†сеЄУp-›ЉpаФУ@^ЙчQъЕ:ЕJ•FНJЕ\Ю†сцзЃИьЋЂ ODž4 ђDDDŽ CˆШcrПЃOЎ ?г "Q’аэїйoЗhЗђрЎл#Šc—fM,RGъВjЎaѓ‰СCqBU Њeиі$y'ЙџqЫp7І;pћ ћ†ЫКiŒЎtYУA3Ќ1F6Џ^9,QЉTЈU+дЋUЪЅoБХОЗУŽМжгмџюyмѓ|b:юŠШTP'""rzDфьBњФs…5ўч+nМN/kV#Šc:нэNvЏKЋгЁгыцнe#т$lжŸ!o.сђNЋДЇЖcлмMоќ' ‡ЏyжTУЦeЁ^ј”Т€jЉLЕZЁZ.SЋ”Љ”KјжŽК5У€АPhЌр>Я#žЃˆШQІх8Ђ ODDN=""Шqt'ђŽЎr…ЏЮAœ&єЂˆ^?bПгfwŸVЋCЗзЃзя“š|žЛ,НcyyT\!w~а oтvsnДCИ „A@ЅRІQЋбЈзЈ–Ћ”J!aру[ƒu€q—ЕЪ8iг‹уVfь-№ˆ‚ого-"ЇkZог ђDDфдща#"ђˆ<Д o4ߘЮ3цЦЎMSG?Žйkwикнe{g—§v‹(‰qЮ`ХXћЅЋџфЩrdХ[ўГЩёišd{ЯgІб`nv–й™ЕJ™аГcЬЈgЦ•5л›KoRxvЬўќЈ*6ф‰œMгђžV'""ЇN‡‘GфЁyf8Œvаy6uа‹"ЖvЖйкоa{oŸNЏGъВ.ЇУ&Х˜Žs#9{yжЙтУ+ЯB9 ™m4X\œЇYoњ>ž1cУmьG_2Ш{Tф‰œMгђžV'""ЇN‡9-ї[‘ѓ(OаПь'п‰жшРPУaЄ2NiЦЎ?z9…0&ŸЫ.JZyзйнЌњЎEФIJъђyѓŠ‹Ÿ’"Й?їіzh'ЯТ_Cіо2ЌпЗ”ТFЕЦlГЩlЃAЕ\Т7y,7 єЬБAоб+#"rІхИЅ ODDN="ršю'œ;ъЖу5F'XNay.яњщœ#,Љ№1xќj™|ЂЩІ˜ЋxМСхnьњшт9˜ђŒЌЋь~ЗЭЮ~‹Н=іі[tК]Ђ4{6йњиC]QЇх„Hт{fИп9.Ћэ4@`}Њ•2zЙFй™ЅА”Uш @yHЇ=UD`zŽ[ ђDDфдща#"гbШ …Ю™a@чpИд‘$ ‰KГЫѓ,%ЛШNz{yМІх}Њ ODDN="ђИныSh ТК4ЏІЫц‡sDБ#‰cчˆг”8Šшv;єЂ>I’цЁ]J’&$IBœІУЫ]œŒ–yЈ†­ИYPg1Y чyјжтљ>žчсY›zрљ>Ѕ0ЄT*†!žБ ч ‚? Ы2й# ЊЂ(yƒJМGЇБЕЛЧ­Лwййл%Хa­ЬАВc‡s™)Ш““ И—:\šтYXœŸgyq‘йFƒ’яgЛЇsУ`-ДРƒЫ/,{’т~ŸїSЮїй,`7ƒŠРƒ5ЌfТя0fєЭЁ))ѕž™*гђ>U'""ЇN‡yм~ ъуЇђq’Хq”ВпiгэvщЧqгыEєњ=т8ЏВs)IчС€VъAšЯ/—§„iУЧ3ЧХ‰yатЭ|~Z[ЈД3c-ж|Я•Аœ…{žG­\ЁR)žЕјЭч 3…%ЖііИЛЖЮкЦ&н8Цйƒy е„Ц*Ш“ћ2ј=Р9‡KѓНЩ90)Ц9*AШьLƒйfk<’8ЪƒѕQјэђ€я7zC ЛС0]cВиЮƒчyјОAф&O™QЌgРRxˆБ”p4€и(Ш™zгђ>U'""ЇN‡9MOІ?Ѕ@’Іyh—ащuщіКєћн^nПOЧФIBšdUvЉsЄ‰ХPapPˆЙЦЊuŠ?оЯЇрА+gўПA~рLє™МКЎјЩжЧ“Uш‹чYќ<М}ŸRЙD))—J”KeТ0Р[[ЌmlВЛПO'Єц№њ“ /Ю“’С =vНШQR—' qчЛЩіы MБЦR*Ѕжњ8—и ѓљ&Чоlљ5ЦgAѕшу иб|“жXМсpuƒЕЯzžOјОgГїO”Ke|пЫo—нЖј…Сцъn+2eІхНЊ ODDN="ђш ТДbнш\?MГаЎзыг‹њtђРЎEєЂˆ^д'ŽЂ8!NœKGЫ&jй џxи­%Ž9ИзчрБ'‡Jƒ&пhј.§šџ˜U#Y|Яј%? CќР'uŽЭMZ.ЉsXЯЯцУ;щК‰œ@ъq“$ Yjt›бРY›Я iMV7БЙЫбcгTœkoјž(^?їL6|нЬ=i Ояaˆ{–0№)…%|kёƒ€0Мln?ЯГг pOф‰5-яKy""rъtш‘uьњ…Џйа;HG”Dy€зЃгэвjwщtЛtћ=z§ˆ8‰ГСАЦйМoХ_шЇх—ћ{ћьuчЌЭf€8Miw;`mж@c8пЈщFбYx]фє ;8ЛС>4xПў§рQэaƒAБУТR ty…ршчС=В@q†ћ>axƒy*Ы”Т€РГ„Ѕчсћ^юYЌ—еЯfC}OмCњ‘™0JИpШWЯДгф‰ˆШЉгЁGDдАк­8'[qx'Y€—87ьКкюєиmэГППЯ~+›я.JвaX7јЧ`иэtќџхьжщВюКIоm7ŽуБЁžч џ єDЮ4—Е‡9иj#MГNеY№—}†xжRђ=Ъх2хR‰ZЕBНZЯ‚Оа'№Вj?ђЙїЦЛVцћ;.PxУvф‰ŒS'""rzDфAн+Ш ІэF}іілььэБЛЛЧ^ЋEœ&ЄƒЩГŒ!5Ѓ ъР иЏЮIьЁтё.Кƒцiš’$I> їfЖ|y"’‚<‘#ша#"'Rœв-Џ3&›Ѕ* • зяБлnГзjГзnгjwшѕzФi:Ќо3Уъ;Ѓд/с`ї_9ЦЈнtўѓx3Рї)…•r…ZЅB­RІ^)S KО=0žоu"жДлф‰ˆШЉгЁGDN$? vœ0ЇŽ^?ЂгэВЛПЧжЮ{­6Н(ЦaАv4пнДќRў$zsp‰|z;чђђНчВКяS-—hдkЬддЋЪЅЁрйQ whiЊЄyhІхxЇ ODDN="rcŸЦ8G”Іьw:llяpw}vЇMšІc1ЦЫ&ЄB!дУ зPфСœ(Ш+\—{)Є)8G9,1гh07лdnІI­\ТЗ;Ј*.Tњ :ьцэЇё39лІхxЇ ODDN="rЮeеx.NЛпэАЖОСњц{э6‘ЌЮAUœћN!д—ЇзPфСїо9фЯ#€I‡яYjх чY˜ŸЅR*с[›цђ`ј‡ y0гrМS'""ЇN‡уЇŽw@т~ŸЭэжЖ6йoЗщї#’œ5У{Mњн[A”ˆыDО”iљ}AэІDDDDфБqУЊ’QQЩ`~Л(ŽйkЕйийfc{‡§N›8u€СXƒ16Пў8 "п‰џx0;~Q~чс%Ю8bчˆ{}њQLЗбъt˜o6™Ÿiроиpлщˆ DфЫR'""""Эщž†чЖн(fgw—еЭ 6ЗwшєћkГД…нМЦфeOЩ_жEф+ц${0Уџ1DЮБГПOЇлЁнiЧГ33TJ!žЕœЊEО"4ДVDDN="R4јLЬ‡')k›лмМs‡эН=RЌ Вs_ŸŠШWШXу GжУЅ”‚Ы++,-ЬSЏ”Б ђDОŒiyя(Ш‘SЇCˆЙМуb tћ1k›[\Пy“vЏOjР“Mш ђDф+e,Ш\†УЄ ёИpю+ч–™ЉUБš*OфK™– OCkEDDDфё2bhuЛЌmnqуЮКН>љlxYЉž=тŽРНЦЉuЭtќЊ."_uYАPŒ№ЮzФЉcuc3ћЌ<ŽFЕBqт9›&ўJ$""""r\^qзюѕXлкцЮк­N—$ПюuBjюyэЁ›№ц""OЂё?LœЕtЂ>ллЌЎoвR—Uё§0щ2™N ђDDDDф‘:ъЄ2uч 'lюьАКОСЮ~ ђ†ŽќФѕШЁ.У[Гў‰ˆb)їrАOEy"2 йЩК9љЊЊ3рhu;мZНC/ъgеЬўbŒ™šљПDфоф‰ˆˆˆШЉЫІ}2ФIТ;ЋьэЗВйŸЌN4EDЦџбтрŸ/ŒБ$)lmяАпъЧЩЉЎˆœ.y""""ђHMЊqЂ8ask‡­н]Ђ$С;v{UˆШY3ˆфŽЋvdМГаntЋс}&|Nіуˆ§v‹(Ž'?ЖЫў‰ШtSзZ9UЮe{§ˆЕ zQ46ž<љJ(†j?іЬш›тpкЩŸgВyGћQD’&УА№№B•ф‰L;y""""rŒ g›ї8œsЯ7'Ђƒ“а$IшtЛlэю8‡C!ž<™ c|,k!gеC‰жЬшsз9.пOЄyЦџHїЪEфЩ  ODDDDŽ1љдюИPч7œuyhзcіл-:Нxў=:гŠ<ЛЇŠ™фK2~8Щ.uь8Š!ЁЉ їDžhš#ODDDDNg EьЗ:‡;0ŠˆШ}3Ў8oоу^y”T‘'""""ט|VxtWьЎ˜—vЧрoШшG1н~/ыRЋГЮщх Хja3>БУњЮdоЌ2УЧЋи‰іўjшўФфяCпzд*U|?-іAWMDžX ђDDDDфЮO|‚˜‡xn4ZЫ9ˆу„~П?жЉVІЯ ~xЈч§OиАОГЙg>’-'‰Уa д*ъе*Очбьтxgs9[ф‰ˆˆˆШCU х.Я Fе?Юв4%IRŒfz™j$RЖtШУЏTд‹ќи}‰.*ЦшdыAрГ07K­\ТїьЁЧpŒ7‘щЅ ODDDDS2ц†Ї’ƒЪС1Ѓ*iuТЩњяcqr”‡^@Ї0яё2и|Oяу^Х†йжZЊ• ч)^іЉыЦпOкк"g‡ў*""""ЇЦжТ0 T*‘КbŠˆ<И”FЕТ…sчЈзjxvђ)ОBr‘ГCy""""r* †AЫ‹аѓ)…!.MLц4Ќ4баЏЧoB‹/5МѓЄM1rѓŒ'ЩН_П4>јRyїЦgјuž&ЧWтоn–lžQчR|c˜eyq…f/џьœмЦфЄнl‹ћЂъ~DžD ђDDDDфЁ™˜5ѓ‰\јT+UsГM–чч˜™Ё„Ysp8<ЎіОhЏyв)Ш‘УŽ*†фпL(ёp&ЏI]оЅж‘ІŽи%И4Х9G/Š1жтy§8cАжb&ЇЫMј.ћqТі>A%хp)цш]kТЃн—ЃжурхcMNPЂtвž'Zю#ЯH&НК‡TQЭ4pОfћ˜5PCцff8ПМDГV#є=Ьp?/.a|0–7Иќ№ЯкCDžd ђDDDDфKpУX.u8)ŽФ9њ§˜$MIв”8ŽщєКєњ}’8ЛМзHSшѕњxОGћЩШ`(II‡“ъО~‰КА“оѕЭ3ю7€{ЈNZRx‚E}m1htЧ’“Œпї­&МЮкў$ryS lћИ4ЁT.БИИР•• T/N{?Ќф_Э .]І}@фIІ ODDDDŽ5ъ”˜Ч:&ћš8G”$$qLЛлЃнюаэѕˆ“˜VЛMП‘Є)išЛt,Iœ#q–BUу=БЮ^eЮЄЪМ‡Й\‘G!MS\šbХї|њ§>ž }k ЮфѓчхЗзо(rvЇ IDDф”ща#ђф;X§4ЈКKœЃ't{=кнn—vЇK?ъE1q’$ Љs$IжШ"[RV­чЌ+nr@ˆ<м„ЁzЃ9ЛђŸ`[=hгŒЧU‘ч MЁ.ёAзчИnX\Uтш лУŽ=~ёБsљі:§їаQыs№2ЙйєйДОЕ”‚€RрS)•ЈUЋдkUЊе*хАDрY,Х=Р і›еv)š–Я*y""rъtшyrЙQŠ0 т4ЅEYxзывjwщєztћ=њQD?ŽIг”4-МЗ aТ0њ0cW:‡дIџtx˜к4lѓGфвьЩAо УшсyвЦ‡рžЮkw’чЊ ябr.sѓЦ9|Я# JaHЙ\ІZЎPЏ”Љ”K”K!чуY›эgƒ§Щi{ˆeZо ђDDфдща#ђмГУРxkЄЮХ)нЈOЛгЅеюАпiбюДщtћYеg ;ќхwј3XєcœзLЙ“5“>ї1$ш9щ>ч џЯo]јџСл1ёКqT08nЄЇйOŸЧƒЏй§оѓЈэ'Ч}oI—rYИ—‚KБ‚  V­PЏUЉUЋTЫЪЅаѓ ќl>НC­-ДE†Іх§  ODDN="+є"„lЃДљзьK”Єtњ}vіїйиоb{wnЏ— лГcМ,~Шчe0…Ч˜амTІ”Ы7І1КŸчN,ЬЭ5щDШЙС.6b=P26Xаб+œйц˜’wXvyiжUР*ог“ЎFцyLМнр}6(t{uѓРЅI—”ЏoёЧЬ/щВџ яaЬpcмћЅ,>ЗС‡ФфЦ йА^НёФ№sљ˜э1ёОљ~j\іч ј>•J…F­ЪL­ЮL­N­\"№В9ѕŠ 2ДеD2гђІ ODDN="С„ /-t#uyѓ‰НV›­-6ЖЗиmЗI]Jš‡v‡+–ЦygSфЅXcАЦ`ŒfH.ЯuвдEWƒgГж(.ПШŸ /1X›gJЧL_Йt4œ1Ч‡'ўЯж7Џvsыn›B><|<ШГЌ7ZG‡!uЃїO1ьђАи<ЁsdЏЩ`ФљјœƒйВЃ^ŸЈз'Ž"ж|? ,…Ѕƒ!eА Вw—s)ы™c_Л4ВЎТ6Вљ{йWx-ГЎгЃuNг3ию8Ќе: Х чnМrџОl7Щ`9–ЌAF­Tb~ЖЩвќЭF#›Goђ,"_YгђІ ODDN="‘…lй‰8ФIТ~ЋЭњж&;{ћДЛ]Ђ8&IГЁГfšœpљ€Ю Їв 4В 8кQ акпужымОysX•„!чVVИtх aЉLšпЋпщВОz—O>њчРXЫтвWžzŠZГ @{o[зЏsыжaUZ‘qЃРШ№ƒ€fsŽчž{–ѕЕUnпКMЛнто;нј Eдъ )•K|ќбGЄi 8цИrѕ*Г $yƒх$Šикмр“>"ъѕIг”ZНЮЙ• \КzЕX;:ћћ|њё'ьnm‘$ •J…ЅsчИђє3wd68’ИЯіц&Ÿ|є1ЗЎп`}m§Н=Ђ$Тї|j‹KK\К|™Џ=ѓ4ѓ‹‹x~˜GYЈккнхГO?akc}lhќрe№ЌG–iЮ6YX\bІй$,—В2П:­}Ў}ќ1[›[$qLЉTb~i‘ч^ј:˜С:CGloЌsэгOщvКИдg)зj<ћмѓ4ff№fЖфa TЉrхk_уТЪy>ў№#~љ‹_АОz—БђРсŠ‹'—VVxхЕWY^ZцЧџјлђЇ> IDATtZћИ4хkЯ<‹љс™[XШo=kТџќяџƒИзУЅ)s‹‹Мђ­oqёвE№<ŒЕ$QЬкъ*џќПџ7Ћ7oE}ЮЏ\р[oМСеЇŸЩž™sьэlsэгOxч­џф“?dcuНн=КнIš`­Ѕ\ЎPo4X:ЗЬзž{–?јіы<ѕєГ4šГkАXЖЗЗјхЯ~Ю‡яџ6п…рЦЌЕ^HcЖЩљ xю…xўы/2ПДTxIћЛ{ќђчПркGбыvЉЯЬ№т7ПЩГЯ=‡БYuaЏзхжЭыќтЇџЦПћVc-3ѓ Мђэ?рЉЇŸЩVoўuleщ ц}œxЙН‡чшD1НxNЏGЇлeav–fНNЅъЃ[dŠ(Ш™2k—Nz6˜dпН(b{Ÿ­-ЖЖwиowp&Ћœ2V•5_M“цЖЫОX нN‡›зЏѓ›Зоf8œ1t:m–Яуђ•ЫЯЧb‰њ}жVWљЭлogA“1ды :эv>?t;нlyoП . ђЌчc&VvЊЕ:ЮZњ§>kkk|ќёGмО~}Иъ.uЄI‚K’сКйћл;ьяь0NXЋзЉ5›a)ы№iрмЪ ‹K‹Ь/,pсќ [wяЛˆНн=юмКMм№ƒƒco—еЛwђ/Нn›Э5vЖЖ(WЫxžOПгasmн­M’$k˜™mraхžч‘$ Ÿ_ћ”ŸўЫџс_ќcК­}Ќѕh..pхkOѓдзžfІйdoo—Я>НЦѕOЏБЙОЪЮкџњOџ„g<Њх /ПђMŒg1Иlфы0xБ4gчЈжыkщv;ьnmѕ:l­Ўђ›ЗоТѓ<^xљE—БжЯЖ‰ЩцкМ^ƒ—‡risћцM~ўЏџЪ?§У?pћЦuŒёhЮ/№кЗ^чЯџцЏyљезєЙq є+ƒYMЧюo ЦјФЉcc{›vЗCЇлувЪ9*aˆ—Oж7ЉЋєQ•'<‰ШCЂ ODDDф+!›Ћнэqku•лwявbШЋяt&™уNЩ3+Žьюь№б‡ёю;ПцЭя}0NіP‡JK o~ї;|џ?рќ… $iŠ3уВИЯzAЙТьќo~ї{Мєђ7ˆЂ> чНѕХu~ђЯџЬПќјŸђpЫ№ц›пх{?јV.]$IGѓњЭ4gшЕ;\Мr™оџ-ДЁгnБОv—НН=fчцpЮАЛНУлЗ ЏЃзщБЙБСък]Ю/аjЕXН{—nЇiBЙVg~aљХy АЗЛЫ[Пњо{ћзtѓy§Я/ѓgў—|чўˆ /у—JDQ;7nђ‹ћ)?ўЧџХ›7шwКМѓж[,.-e•„‹ ‡†Л[kљѓПќ ^ћжЗЉ7мМq“Ÿќѓљѕ[џA{П•Эoxѓwoнfnnyы‹!Oх,pу‹/ј‡Пџ[ў§Ї?хюэ[€Ѕжœс{?ј?ќГ?уљ_l6}~L#KЇзчжъ]КНO]КLЃZСЛŸрP_фд)Ш™F'8yUO`ЗетЮк:wжжшЧ1УжŸйMD˜ДcЅ€ЧЛˆЩ*ЗЖ6жљХ/~ЦГЯ?GЕ\сZ˜i6YЙt‘ЫWЏЇI>kžЩцЫЫ&lФѓ}ГMъzЖ№Ќ!Mъ3Qыd оœсќХ‹\~ъ)’d0Nир{–=рЪеЋ„хGЏлas}ƒЕufffˆу„­­-6ж7X^>GeC_лћ-nмИСГЯП@%,БЗГУ;З!Эк}дъ3Ь/,2гlт\Т­зЙіЩЧЌ­­fнrУ€зпx“зпЬца KeŒЕ”Ъ%Ў>]"Š#vvvјћџЙJElЎЏёљЇŸrѓЦu–/WсЕ34чцЙpщ2KЫЫЬЭ/аnЕјрƒпгnЕIг„~ЗGЏпЫ<у&~†§n‡Я>љ”ј_ЯлПњ%kwю€БЬ,ЬёЃ?ћ3Ої'Ьзž}† ,o<™.…А.N;Лјў../гЌеёlБЂіо”х‰œ.Mf """2eЬЮЙCУ?ъЇvїГяюЦ:Ј3Їy№ф8ƒ‘Д‡ЊЎВf(sss4›M:эяџіЗ|ќсьяэXˆЫRИбЯ‡ОЯўЅiBЧDQDЧФqLХФqDœ$kqdеy^Љ„_.у—JЅ~b=/(ВрЯz~т‡eќr)ћ†Я'(•ИpёЕFЯї‰Ђˆн<Kт˜NЛХцњл[[kxцЙчИtљ еZnЗУчŸ}NЏг!ъѕйокbѕюнсјѕйЙYц—)WЊЄIТы_АБЖJПзХњ–FГЩKп|™ —.QЊVpжфw5”*.\ОЬз_~™™йY<Я#ъe]€o]ПŽKгCЩ‰|? T.SЎTЈTЋTj5ŒЭ"Xk=JЅхrs|Іпяsыц ўёяџŽџјљЯИsу.M9wў<ќУ№'?њЯ<ї<ЕZ#{м|ў?™&яD>ьFžWdGiЪњжk›[ьw:YˆnЦ‡хŽнwxс"ђШЉ"ODDDфŒ8xn>ˆGкн.w76Xни еэa}?k№™пaвќKкPCІй§muc —._С}ќ1wWyїэ_sхђUЭйТ ятх_ѓ БлЗnђю[oqуЦuв|(ь`žЏJНЦГЯПРЬl3›у­аŒЖиШхрК;Чы2~АДДФммŸŸчQ­7Ј6иa“™М•ˆ18RМРЇVЋбh4†aћНћћћуеЗn№œо{їЖ6З‚€Еѕ5~џўяhэя–J\~ъ)^§іЗY>уљЄЮMмТQдЮ;037У7^yПќыПсЙ_$ЭчкtdAЎ>ІпhŽTžЧ~ЇУЦЮѕFƒ…™КB<‘'‚<‘3ШQ’ВЙГЧэеUКН~VХT<љжYИ| Љ3дMž~ц:_\ЛЦлЗyџНпR.—hџъuЛє{}В–ЌуšЭ&QъФќ œЫD”kUVV.PЋUйо€~ПЧэ[7инкті­[llЎућs ѓ,-/S­V™_XЬцЯлиd}m~ЛЫцк:V €rЅЪТт"Эц,Žь§–$I6$–lЮ?k<<ыc‡­g‹ђnВжтyоpшjъВЁЧ‡бgЯЧёЛїохƒїп“ЭЧ}М фЕo}‹ўщŸёэ7пРJ'VГчR.3;7ЫьмlоХt№wХ;g’Щ*Bї;]6wЖ™›ЉsT§Іˆ<> ђDDDDЮЃъВ“ўNЗЧеU:§> &ы.™КЌ’&Э8,К3Ъяє}н_@cЌeye…oУЏ~љяlЎЏёб‡ПЇVЋR*…ї§АЏ>ХЪХKдjЕёРЪ—–™_XРxоЈпъ„ЉКNєlђ+Ќяqстъ:GElЎopћжMnпМЩюЮ.AА|ў3ѓГTkUц ‚~{Ÿе[ЗиC6жзpIРLs–…Х%ЊЕZі~3†RЉ„чgЇ^ЉsєњQЏGšЄx6ъNж(У8GšЄєћ}zНЉЫЂ7пїУвАBoŒ3ыgеviBЧYp˜Фьэю+љЬp‚МЃ'53y5/РЮіПyчз4ччјбљsГsЯ–%OŠŒ/~юнp№І0єтˆН§}zQDйїБХyђвњŠШƒS'"""rѕЃ˜н§}6wЖI ŸG,ч4Ы ПСрJtВіеtџ[нсh4ды5ОљъЋќћП§ЗoнІRyŸЙйТыkыt:mц—Иrх*aX"№}цц™›c{}ЯЎ}ŠЕ[[›йвсмљs4g›AO}g9ПВBcІ‰ѕ|’8awk‹/Ў}ЦХK—)WЋ“WЙa08іvvИёљlЎo$1Цfn—ЯŸЧЌШ3йіzхЕWyу;пХXwпy‡VkŸ›Ÿ_g{s“їћЙYž§њѓ4чАОЩЇ/EЪ• —Џ\х›ЏОЦO~ђnпМA{ПХЧ~H?Š ‚€WПѕmЯŸУѓ§с>3 GяЙЩ#wТ -ŸvђшыФIBЇлЅQ­>”U‘‡GAžˆˆˆШ“тhwЛьэях'§GœБ™ЌўчЈZІA\p?sjЩ5q–‘QЉUљЦЋЏ№дЯŸag{›Э-vЖ7яЏw†ƒ4MIт˜8ŽI’QГЩЊ…FйŸ_Ќ9Њ{‹›8Џ@т 13ЫќтЕzƒ§н]\šђб‡аыv‰ЃжhpётE‚ $ ццчY\Zтк‡p§‹ЯБжХ‡Е–•‹iЬЬ`Э ОЮpљЪ–WVИіёЧДїіhяюёыџќO.^КDcf& ѓАрR:нŸ}њ)яМ§6­н= Ѕ\ЏГМržK—/gй …ЛFЗнцЗяМУн[Зјйв"aЙLЏлes}ѕЕ5:э6XУХ+WљЮїПЯ7^}…RЅœ=ƒI†yЉ•‚АЬЅЇžтљ_b{c“ѕЛwhЕZМїю;|ќСяЉеы4чц& ЏЯSЯ2ЛИШwОџ}ЌчaЌсупџŽ8Žјќ“Oјi>Ќі‡џхПвh4БžХЅ.ЋB4…е™И5фIfѓЦHчSЋVБЦпƒ"ђdP'"""25ю}6eШТЗ(Žˆт˜дЙБaˆїEgлRрœцmУйцм PЪтБX>ž^z™/Ў}ЦЮжжЈ’Я ŸLaoЭ^wћж-VWWЯTы5іZm~јУГdБ\ЁiУ ‡NiЦ Эјcчw›_X`naућИ$оЇVЏГ|ўў˜Эuт(fcuЗпz›х• д  P8iFѓ:ч№‚•‹—x§7qiJїЙљХtZ-Ў}єƒ BоќЮБАА€7ЉJrвпфБšиН7#є=Њ• хR{pЛˆѓ ѕЦ KЫKќю7яqчж-іvvшwЛЄ.›c/,•˜i69с_щ%^yэ˜_Z"(•HX“-kai‰ —.`}j#mђсМЦїyюы/№ќK/бэvшuКkиикbk{‡~?ТBцYЙt™nЇУLs–цм|>ІУ .^ЙŒx$.с—?ћ7vvЖqЉЃнjёюЛПсйчžgffпїчt юžxcяљќчRвœiрћ&vu,yr(Ш9#ЦOЧђKœЫдI˜мŸaХZ^ћж˜™схз^ЅRЏgѕtЦ№ќз_ЂZЋ“К“—t]Иx™яўёXгфЏОFXЎdCZsчVЮѓЬѓЯ“ 8ЬЊоќ0`хТ%ўы_§kЋФyXYЎTЙќдUъА†4ou‘5с№HУBV.^dyхпњУ7И{ћ6kwWйнн!Š"‚0`Ібdii‰sчЯ3З0ѕ|вBcъ ГssМўн?тђSOe!‹5\}њJ•* Yg_уВ Щяџр\Йz•Vkc-ž0гœХЅаhЬ№‡пљO=§5т(Ђ\Ўpст%ЌѕСdЯСч/]ф/џлџХљ‹ймм$ŠЂьЃХњј~0qЈЏ>qІЫ йJрYfъUцfgx83QŠШУfмQ-œDDDzDTqжКУCяЌ­Нзoпціъ*x~>МOЇеrМ{~>ЇŽ4I“8Ын XЯЧЫCŸСмhЦ9в$%M Э‡€ZŒЕYƒ/пw]ŠKтЌ3& Лќлё$hаœеГ~p`ŸЖ˜4 ­г$!,lо:kmvлГіU" ж9I —;ЌgВъ:›E&ЏЎУ9вИЫ7[‹g}Œ? *™_ti‚KГЧtiШc1ЦУZ‹+Ќsq9.‚ывdјтј~Оž…NВpIBšФУЊЊ4пnЦzљkeA'Yhk<‹ѕУБч€sВŽТiqHЏ3јОБvиMзщЃfЊИС H–ччЙxю‹ѓMМС›Pyђ1-ћЙ*ђDDDDІDaЦЛ{VЛ”ТrЉ”Д3Њpš–_Pх1qƒКГСTsƒљзВйЕј^AˆušбО5>§]ж]жУ“U†хwИМZ Ш‚=тйc j ЭX—gsЮЙ|ЏЩ'…sYН c,ОЕјa8l”‘Џc .щ JьђuЖŒNя–wxШБ1јaљ№Kшр]ŠЯЪжbВKу!˜Э$8ОL›o ПАЕђg6\FЖ|чжїё|XY9xmГ,Юр{Ѕ,РЫзнјœpЮ Ћ §pђщу=ŸЗ<>G„уЮ іХ|ЋЅ—&Ь5gX^\ йЈсQ˜я^ЧŽƒ^‡‘GNAžˆˆˆШд0ХЙњј>Ѕ0$zq2< +Nю/2IёЄ|?Б g™s oФ0 *о~И‹І…›хp`ъНс7ЃЖ c=†ЃУГ№iBj0мП5ЋBЅCCЫG <ј^(оoјPf<ЧЎУрq'оћˆї™1ЃЙѓŠїrЃЏХUЕ|ŒBeЃg:xm'UУт7zœы—нfђ‡ЫЄэzшГDŸ)SclgяЩ,оѕЌЅRЋАВДФмLƒ’яЊF9ў˜1ŠШ#Ї ODDDdšœрLЩГ†rЉD­RЁЛГƒБ>nђ9њC_“œЮ…q]фKЪї‘cw“‰љд[ВЦd™oVЈЮ%Uц№cš“ютц+Фчy’79>Я:jGмoђЭ'Ны^VЈ’,Ў”ЙЧ{юPр)gХ oB;№Ќ% ||kЉ„ ѓ,ЯЯSђ§бPлю №DN—‚<‘)qм9еpЦ0Еr‰йFƒээсѕЮP,ѕ№WьФgsƒњЌТа.y"Єw‡АNВн{!Ѓšд їП“пЃјuB~x_KЙŸ‡НW7iycƒяa&ЇЊо)q МƒlЗ5†J)ЄQЋ2S­вЈW™™С3f8Мниncэ "ЇNAžˆˆˆШT.…Ь6g(Џ†єтЌcч‰OЬDDфьШ:Ћ`pжЇ^ЋБ8?Ч\ЃAЕ\"єНlЗKсОƒn9m ђDDDDЮC6lЊZЉАrю<7ям!JpGЯЁu№ўїхОK­T‰'"ђ( К+уRŒƒRPЏe•wГЊЅвph­1ƒсцƒYЭ} ­‘гЅ ODDDф 2ЦPЮ-.Апкg{o(Щ:Nš8џAg+ѓ<Šˆ<:Ю9Ќ1xž‡g еJ™f­NГ^Ѓ^ЋR KxЦ?ŒГщGU>Ђ)UEф!Q'"""2хŽъFы[KЃVсќв"I’АГп"IЦšёю“цЁL`&""ЩЁЪjc№­Gx,Э/А0лЄV*a Xfи*њ№чП"O6y""""gQюy–ˆЂ„8NиmЕ1Цcqƒ!ЎЮiђz‘Љ7Šр\ъˆ\L’Dи<дГЦ0ј3ŽŒunдЅђ)ђt<y’йЧН""""ђ9Œхќт"ЮЇ^)ѕћ&е]ˆˆœ-…&ЕišаыѕикоІзяhc1šЋTG‘щЂ ODDDdЪcUдcFЭЃx,ЭЯrѕвEцgg0.Х%Щc9ƒs v""бXU]ЮaАжgoŸNЇGœКвBжиТŒТ=5Ћ™Z+"""r цЩƒт\yй0*—O^^-…иЙYЌ5м]п`goŸ^‘їЙмхth6u‘‡Ч‘ЧrЙa^gшіћД:ЇEд” IDATњ§:AЙ4:F[(Ф™ ђDDDDЮ(Уo№s% 8ЗИH†„kыlэюаэGЄi‚3АймчŠIлCŸCO!žˆШCuАљxа’$ЁнэвэїЉ–KcЗWˆ'2}ф‰ˆˆˆœƒЖ‡qрXl6Љ”Kд7ЋЌЎ­ГНП)8ыpУйWMкІsF‘‡lBѓqc Ю9R§ЈO?Š-.†ї‘щЃ ODDDфЋЦ1ŽjЉФЪђ2ЭЦ Ћ››Ќ­­гюіHIБжO U<'"2НЌ1єћ}z§>)џ?{ї§ЧyпќН}Џс€Cя0иЛ I™–ј•MЩЖb'%NЦБgђ[fђ?фџH~H2“xœЩŒ•bEВ;”-[Q!E5v"С‚Bt\П-Яї‡Н]ьюЈGМ_3 €+{{{wЛи7?ЯѓсDљDŽAб.!U М’шŠ 5ЎЖЃ9УмB щ4ВЙJЖ Ш Щ^GЙК#XоуЗ їЌ!"к4^# ЖуРВmWxћuTў' wХDƒAб“*|fšд|)€ШВ„˜iРдuDLMё(вй,Г9ф‹Kз @’МZI уzФ3@П9"+§ˆˆЖ‚зqс:DхрZюŒ‰ƒ<"""Ђ]BT%oR0Љ’€$ ШВŒІhБˆ‰цdщlщLщLЙ|%ЋŽ#Ън0Єђ№[iiЩkЈву9#бV)Wп Wдићr‡Lдpфэ’€DmA•ž„ЅpO@‘%DtQ]G{K3ђ…гiЬ/."“Э ›/РvИТ„Y’рј‹bѕ0ЏЦЄьDDєј*Ї=QйУV?VмnЫжŽˆ6ƒ<"""Ђ]С;yѓ2Ж•NпЪЗƒ„@да`j-H5'QВ-ф %ЏR/›A6ŸGОTђAІsDD;”„Чж”ˆvyDDDDЛBј$ЮE0,V”чЭ Т= RU ЇHdE‚ЂШаІІ#5Б˜‰`rf™м$ (Је ‘“Љm5Џ OјS' ќŸ8’TЎ˜ЎеœНl‰ƒ<"""Ђ'T­Гоe"ЈЬЋ>•“Њ'AGхЏВ$AVhЊлq ы*„+ )+Tћq2u"ЂMU{JЧыB–5(ВЬџQ!z0Ш#"""к…„№‚З55Їўp[="IP%z—KR(D”ˆЪЧЈ0ЎЋўˆˆ–“$ B! i*tMƒЬН$QУcGDDDє„Њ’y—)ыXЮвъšІ"jšPŽ(7Ь–ЎїПmЩМLЌњ#Ђ†уguзНЄњи\Sзaф`‡Ь@ЈQq <=UUD‹DЫTжšw‰ˆˆ6›TžџnљрxћeCгah:Ђ'?ЧDDDDє–Т: ]G[k Њ,CЂ\у!V8Љ\ВУj+V‹ˆˆ*Й€ЊЈˆFL˜КРЋХЋићŠЊ/"кбфбЃtUEkK3bŠ @ИСœLсЁ^›IBS"ЂнNp]Ф"D#hšZw?Щ}(Qу`GDDDDkS]Б!E–аЂЕЅІЎ{/V №VЌдceэ›ИЃ^_r @В)‰H$YЎњЯ].Qу`GDDDDL*џ#аd нээhij‚&+ювФэS•'ƒЄбnАБёйR%Дї%В UAЊ9‰ˆЎзЏИ“рЗ1gYQрпHDDDDєHDpъ)  bшъш@[ЊХы‰ыЌП #=&ШВŒTs3т‘TѕбК•бЮЅnї Qƒ*GЭJ$H% MБ(œі6РУщiиЎШ2М^KќP‚TГјc-`u ‹HˆˆЪ\oHmд0беб SWННА€WuWж5 yDDDDД&ЦдJх $ˆ­Ђ 9‡$IeГ ѓ(Z\з…$IRеЉЂ„ѕ%rўmyўIDДДK.Lн@KsЩІxЙЋјЖЎm yDDDDД>хDIђКиЖ4% i:TEСьТœBЩБY‚,Щ€$БЈŽˆhCРu`j:КккаовЕbўЉ\­+am3‘бNХ ˆˆˆˆ6Œк(A@ ЋоМy†ІЂ)ХьтгJ%Џq†Ќxw’Є`Ј˜\ЎYš“‡л5˜џЛ!V§ј HB@•etwД#еœ„Ёy .‚Я~E!їDŒAmЈЅ0Яћ2j4 SзFАKc!F&—GОXєЄђ])<ВL]rD­ŽлˆЈБеќЏіЙ.72T­-ЭшhM!1!Ыre›q„ћ q_AдШ$Qk–L""ЂMФCб."–О x•%EлB:“ХмТ"fPДJА,Ў+‚yїР k2ЄЊ-М?•BUўяDдрVlvсЭŸg”› єv#y]jQзqj<ЂU5Ъq“Am9zˆv‘ ШѓKыМo.$иŽ‹l>‡™ЙyЬ-,"›ЯСВ8Ђ<”L’ •†?Ї“Ф“а•іЇrBBD+€пШBAžIшВŠЖT zЛКб’ˆ?§DЎQŽ› ђˆˆhЫёаCД‹TyU\иТEЁd#Ыa!НˆљrЈg;.‚ к%/аƒМ0ъК^а)IRp"в('$DД‚ъ €$\8ЎˆЎЃЇНmmˆЧ"PCŸy~њ‰]Ѓ7фб–уЁ‡ЈAетЕцЛзјь{ -$ИBРv\- …bЙ|™lй|…BХR .rЈ'IС№ђ‡їfВ, Žу@–ehš\ЮmCд肆5ўЎ€,Iˆš:Кл;аж’DЬ4Ё*ЪŠЛd6О!Z]Ѓ|>фб–уЁ‡ЈA „Q`ЭAžџ‰ЏОЙЁ†:еКBРВ-Š%ф Eф ф Ed y”,–eУЖm8СpнpZеЃ4Цпфыfл6,Ы‚ІiVœŒ4Ъ‰ е ФReГыBWU4ХушHЅjN"jhPd ‚њŸuyDЋk”Яƒ<""кr<є5ЈЧЌШ[)Ш џбьфЪPЯv\”,™lЙBљ|љB–mСВиЎ зuсzэoЫWўЗъrI’j ђЯmЅ?фwJ3‰ZћбRЉ„RЉ]зЁiZнѕЋuљcŸфЏ0ў: 8ЉlT…ъїuЃœTWлˆ§„ЗсЭwч H k*’‰:[лажвE‘ ыюe‰шQ4Ъ>‡Am9zˆЈžŠJПpИVўюРr\”Jђ…вй Вљ<зпІўС_g?)ЊoS~$ИŽЫВPВ,D#(ЊZsЕКл>n'•‹*§ŽФЫж5єZ6Цщ=ŽрЕ^чыќЈA^­їmэїВ_­ыїЯо\ы ђ„џ. dHp1LtЖЗЃЃЕ‰hЄ€p! га‘L$акœD2‘@D7 *rh?ГД8џбЦh”ЯPэz{""""ЂmPѓOhiљ5~Š„rС™(BdРTЉ|r ј,ЫѕМъ<ЫuЫѓьйpŽ\зm;ояŽW§&\с}.\W@7˜УJ7$ ЪУuEyНх`ИЎМЪIK_DХя2$ЈŠUU Ш dY†ЌH%КІAS5ЈŠE–Ё( M‡ЊШeя6DMŠ$CСb6 лu!IВЗеќЧнд,T1DO”pm[јВ\тZпŸТџЬ:„Pu РОП7AEшљ…зжаuФЃQ4'тhN$Eahšџб-пoѕќ|‰hуБ"ˆˆЖ=DД^снHp[9\ЙАЎђ7\lчpœЅFBHp„ззВ,иЖзurчW§8Т…уКх€Яћй){RЈУЄ[е*ћw% В"C–e(ВФy•vх "Y† В,CWUhК Uб ЫВ_Pчx’DKOG@ f№ѓІОЯK˜_РУ™i,d2АЗ0ж:6ЎВЇц‹BO‚yыЗії‹(WЭ 8ŽыUд:.E†Іk^˜nUќ $„зЌB’ Љ ЂІ‰D,Žжцf$Ъž?žoЇ>/Ђ'AЃ|Офб–уЁ‡ˆжЋrhhјšЪЁЃе”ЏЖїqC?‡ƒВ№ьZnљKоœuЎpс”+jТр‡В?hV’Y‚ЊМ“$дЌf’ќrУ:ќШЮŽ[ыІ^ct.‡БЩILЯЯЃXВрBф`­р'3;Ѕ#яr[;ПmЂu–ё‰rЕЋ+\8ŽЫВ!AгTшZх`Гѓ ƒ­ќПIF"E*™D[K ё8TI*язDЙo‡<Ђ'\Ѓ|жфб–уЁ‡ˆ6Vа~ЋЅЛїёчЙ Я цg‡‡бbх9ђќU ю[;Х“ЊVВvеShЮ@дђ!PДЬЮ/`rj ‹i”l’ь ѕх4‘AmЖZŸGс”‡У—J%@’ Љ:4Uѓ*[Ћо;ц=,BУэ…@–eК†d<ж–4Хbˆш4E\нЃƒAб–i”Яƒ<""кr<є‘'ЬЌТе_Ъђf›Љ:—Ће c­—­њ+оpu"4-й|‹щ цБIУВmИ№чч“!ЊSDЂ$BŸyЉzаЈ}љjiЉaŠыzCh§Й№dY†Ђ(^sIъTЖnЅŠV6СмwnyјЌE’aš:Ђ‘(тбbбbІІyѓaJЫї`Kл tYхƒ….$ЂѕbGDDT=DфY[ЗZЅX0ярљlЕ`л•WJ2ЙцгЄГYфђKз QFvz•5І№рѕP\†т0!Мљ'нђ\•ўНdй №dЙќ6нІїehШЌїп "X}Љ\uЇЋ t]ƒЉˆš&Ђ1г„i˜04 Њ*‡šXдFžз3иЧ‰Š‹Иу#к rœcGDD[އ"ђl`Z ечoqG”lщl ‹,f2Шцs(–JоTRxшЃ_юфE&ећ№­:ёB4ЬIUZ ”џ+UЕq€ыUп‰ лД лq ITU…ЊzžДxYВв;ЃжпkяŒ[уo!М=VЙщ†$yИ_)ЈЋ*4MC,AДќ‹DЁЋ T9=Ў1(_іъ€сстќюЎќЁКёlЪ uyйс!ОЁч'I’WmЇы0u †ІУ4 Ф шšCг +*Y†$KЫцМ ЊфэXrŒaGDD[އ"Ђ­U9ДбџqixЂпсlЧEЩВQ(•P(‘ЫхБ˜Ы"ŸЯЃX*Сrм иCy>НЧ=љy”ŠоћЗ\i*{ПЋŠ MUЁШ dY‚,+а5 †ЎCUU(Њ Mг —oЃ(ВwЙмљŸ…Šљ:7ОGжmŽF9о0Ш#"Ђ-ЧCбіЁ1‚RЫ}nЙй@Љd#[Ш#_( W,"_,"_( d•`й7zURСЪUЮ‰жm ђj?@№**чШAѓCг`:"КŽXФD4AФ0`h:еЋ[Ў€#\ИЎ€ы ”Ž]ю„ WXŽ\цК.\?0є+јЪПlNGйЋм“§ч^ЮЃI‚џgлqQВmф yЄsYфrdry XЖGЂЧЉ"ЩЋX~Эпу\ЊЁе;/{ј•mЫ\.СkўрзЉщšŠˆi"fF‹Fа”ˆУ0ŒђTЙВGuшН'Тйкв+=‹№šЏxЫG!–"ш‡ФжъЈНееrСуБ2hнфеСCб6 W*•ZKЗ$t}yЃ Џ ЯEЫeлШ ШfsШ‹(фѓШ‹Аl nўxё$ћбOЙ€†4ЦЙдaйаг№oТq„Мц№Ће„зБUU1 ˜†S7Х1u˜šю S•МJ7I’МЊКЅ7žПKП?rч†~–зxŸЕt ђˆv yDDDu№аCD›msъtv–ЧТїcђj…Е'ИЎw{лuЪЭ\”,ЫkT`л(YryЏbЏdy lл†ы,…wBђЋММ.Йе!—jхn­~ %„ŽЩB*w”ѕ†ЩЊŠ7ЗЊЈа5ІЉУ,џnшšз$BQ (*TE‚"ЩA6'UР@Нї’оTk{­Зї“^3ШЋh,Г‘-.ъЌCшg~:ˆжЇQŽ1 ђˆˆhЫёаCD›m7TЉЌЋђG,&•P5oКњмiЕіъСќfЎ€+\8Ў лёциs%ЫBб*ЁTВрИEЋЛмМРvиЖы51(юфrѕ`Ј7‡й›œ­тIT­ы“њ&jyХRжЅm%–~ЈIU$(Вь…qВE–ЁЋ4M…Њ*а Іi@UhЊ ]їКЗЪВ E–—šG`yЧжZYљ~*С^!4nOТs к­х3Ы ˆˆЖ=DДйvC•ЪК&еїУА5v—]ЏŠЪНђcЙBРv\ЏЉ ф‹”J^˜gй6 …",Ы‚SЧ :щ з…^@шКќ!–Bј-–ž“@ѕЖzДчЛй'v|LС?9t?ж 8]@xC˜хrS Y*s•МNВЊЂ@VМяКІСа КЮд Џ OU CЊЩK%rХ ЛТ№l†[DдeџФ ˆˆЖ=DDЛгJ{њ.„€e;p]BИАm…R …R EЫ‚k;Аm%Ћ„BЁзЕсИ"Јрs„(ЯѕVюhъ—/ŠђанrWвЅЦbх•ЋИmeGеед:-Ќз8bеЧ’[žaP*v’T1€S’МАN†ЬMЇЊ* C‡ЎЉPЏкNе4˜†X$ E‘!K2YёЎ_э Ќс95yDDDu№аCDД;­КїDшїђtmpБt BРv,Ы†+И№†ёкЖBБˆЂU‚ы8pмђ]8ŽЫБƒ!МŽуСaјЫ_—bЉ„|.ЧuЁkLг„Њi%ii§Т'~BВT9єЗЦ“?ЗхЄЅЂAIђ*шdЙ\E'AW4Јš U)i•eHхяšІСа5КEV!)оаcE–Ё)2Х јЄrщ‡~$HС№ьЪyнжвxЄ1N}‰ˆVЦ ˆˆЈzˆˆЈ–№||ЧŠZнl…п`ЃмUЕ|™ы ИЎр јсмвmђu~Ш'Ъ ђo ТАl _К„7ўsмНƒƒxљЅoтрСƒPUЎЛд"HоЊІъ[j"сWzџјсœ"•У8ХЋ†ѓЙr…Tю [ +I’7тUЭЩВTž—Nђ6?\V‘ J2$iiю@ dй_ЭђеœиP„з6xj7AнЋˆˆZЃyъvЏPyUЋЋiuј$СыЈZ))С?Е›p”Ћю\БдDЃђQМ<ЋX,Т-qѓЪ\Оr…є"О§—алб MззѕfцЋЎЪЋXšњЯЅЂЪЎќнŸЋN.WнI~…М oi{ ИN‘хeю[om–цз“jо.xДЮeу4—ˆшЩХ ˆˆˆˆˆvМzвJjоЇ†‰UjЫ„mCи й ђщ4ЌB1г@ksšІ.g5*жЄ~‡5Ї@эАБоZ…‡§жЊY)dЋQрИќў RBDД›1Ш#""""Ђнg•`ЫБmXЅlЫ`ъ^ГE^x*U-'Иl…п—ЏG§nЏежД1Є#"z2,ЏЩ&"""""кх\з…eYАm`шTE-ЯKGDDД=X‘GDDDDD Ёж0кЕVšUп7мPCдЊъ8NфI’У0 ЊЊwл:C[ЗC­mRнTjЇЌ+­ƒ<"""""к5lлFБX„ёx|ХлUTфEYS(Voо>QcэF†lь ODєфcGDDDDD a#цˆГ, ccc˜˜˜@WWККК‹Х (JХэЧAЉT‚eYTфUWѓљ\зѕ:нК.t]‡ІiНЎыХ <"Ђ'ƒ<"""""zbеfzчЮМљц›0MпљЮwpрРЄRЉ ЈМŠМZA^x9ЎыBЫВNЇqџў}ШВŒОО>ЄRЉeC]7#`chGDДЛ0Ш#""""Ђ]AУ0аггƒx<Žј‡РћяП—^z чЮУёуЧ‘H$xyЖmУqЕ‡ж:ŽƒББ1|ўљчxџ§їqѕъUќХ_ќ:;;Зхљб“Aэ ~зее…уЧЃЉЉ WЎ\СФФ>љф|эk_У‹/Оˆ§ћїУЖэрK’$D"hšлЖБИИˆ;wюрвЅKИtщЎ^НŠt:У‡у+_љ šššЖљ™б“ŠA=Бj =mjjТpъд)Мљц›ИuыІІІ0::Š7nр…^@,Уєєt0Джu]мЛwгггИzѕ*>ћь3\НzЃЃЃHЇгТ‹/ОˆОО>˜ІЙъ:=yDDDDDДЋhš†ююnœ;w~ј!2™ цццААА€7nрЪ•+Ф§ћїaл6„Иwяоzы-ЬЮЮтгO?ХэлЗ‘Яч!„@ww7žyцœ;wЩd’СmyDDDDDДkј'‰ОіЕЏaЯž=˜žžЦќќ<\зE6›Х{яН‡‹/BлЖяМѓlлFБX .EQАgЯМєвK B<†yDDДфэ^"""""Ђ­f№еЏ~ЫЎЗ,Ћ"АKЇгШхr—@gg'N:…3gЮ0М#"ЂMЧ ˆˆˆˆˆžXBˆ  №*х$I‚,Ы0M3ЈЪ3 cХхИЎ[БРЋЦ{ц™g№ќѓЯЃЇЇgSжŸˆˆ(ŒAэJ’$с№сУ8rф:;;љў===8sц Ž?г4ƒ•yDDДYфбkЕ`­ЃЃO=ѕіэлY^ћщ‘Ўы8uъNŸ>ОООeеzDDD›AэJ’$AщiN? IDATг4?~ЧG,[г§TUE*•Т+ЏМ‚ƒТ4ЭM^S"""ƒ<"""""кеpќјq ЏщіMMM8{і,ž{ю9ДЕЕmђк-aGDDDDDЛ’п#‹сР8yђфЊУk УРаа^}ѕUєііBг4!8/m yDDDDDДЋ)Š‚ўў~œDDDDDDš››ёo|CCCˆD"зЩВŒgŸ}Я?џ<КККЖi ‰ˆhЗcGDDDDDЛš?Фж4MьлЗ/˜+/lppgЯžХБcЧ*цауАZ""кJ ђˆˆˆˆˆˆр5НH&“8sц ‚9№t]Ч™3g№Ь3Я ГГs›з’ˆˆv3yDDDDDДnBˆрЋоu@Q<ѓЬ38tшZZZ ы:z{{ёђЫ/cпО}0 @eЃŒЧБ‘лdЅmODDO–њ}е‰ˆˆˆˆhW A[5dtНY/8єП‡Џ_^}п№Яннн8rф.^МЧqpњєi<ћьГhjjBБX\ЖЎЕ~}ЕЎЏ^oб%"ЂЕ`GDDDDD GлЖaл6\з…у8_ЎыЂX,ЂX,ТВ,X–…bБмЧВ,иЖНь>ЎыB‰‰ шКУ0Чёс‡тъеЋeŠЂ@–eЈЊ EQ ( TU…ЊЊа4 šІї5 šІЗ­wEQЖ{“QыЏ‰ˆh‹ёаCDД3mTEž_ 'Ыk›ЩЧтТ![ЉTB.—ЋјЪчѓuП … …ŠХ" …JЅRжљџ=ќ…У;!\зd2LOO#—ЫЁЛЛMMMP’$A–хрЛЪI’TЪљСžющК]зaš& У@$išСїh4Šh4ŠH$|EЃQФуqDЃQ†QБLUUзМ}‰ˆhuRЭ ˆˆЖ=DDЃVИЗ–РOI’рКn Y–…BЁ€|>l6„sЙ\™L™Lйl6ј^+ШѓЋьJЅRХW8Д,+ъТѓЧ­e.9џ:I’–§~ўѕžЗ?ЄЖVрчWы…Ћіъ…|~‹Х‚яёx<јю|‘HБX,ИНišA ЊЊыžЫяQlЧаl"Ђв(ћ-yDDДхxш!"jѕТ?ЬђЋиќ*ЗRЉTХ‹ХА.Ncaa ˜ХммБИИˆt:м&“Щ —ЫUTгљUsўzШВdсЏp•\ј6сћјеsсл„И№—џ\Уѓъ…+јТU}съОъЫТ•€сpГК*0ќќќчЄi"‘Hр%‰рЋЉЉ ---hnnFKK ’Щ$‰тё8ššš‚Š?˜ЏЎыA5ŸџМ7ыН~>DD;]ЃьЋфб–уЁ‡ˆhgZЉвЌ:Ш wсЊКЉЉ)Œc||“““˜ššТдд>|ˆййYЄгщ`О:ЫВ‚хVjсŸУУSЋч ѓ+жТUlІiV„WІiBUе ђ-ФТТBPQW*•–UЂљATѕPгx<Žd2‰цццŠясъ3ПвЬb‰D*†‘†ПТUzеvе!]ѕѓ]эdЎ^'мъŸ§р-юоН —˜˜Рьь,ŠХ"„СљљyЬЮЮ_ў†>ФЬЬ +*+§yќlл†,Ы0 MMMшььD__z{{100€ЁЁЁ Z/ЮњalxнйЭ–ˆAЃьŸфб–уЁ‡ˆшёе “ъN@eИ“NЇё№сCмЛwзЏ_Ч_|›7oтюн˘žžF6› †ŸњѓЋЉЊTiuuuЁПП}}}шыыУРРz{{‘JЅ‹Х‚ЁАYIG+Ћ>ІЎv"ъWђeГYЬЯЯcll cccИ{їnEыЭ-‹е€В,#‰ ЕЕ§§§иЗo8€§ћїchhˆЧу0 ЃfU%+їˆhЇj”§ƒ<""кr<є=ОЕy€рхѓyЬЬЬ`ddWЎ\СеЋWёХ_рў§ћ˜™™ цДѓЛЃ*Š‚x<ŽŽŽєїїchhCCC@__кллбдд„x<^1WпqЖZЃœ5В•‚МZзеkФс|щtsssИџ>nпО;wю`ttЃЃЃxј№!2™L0ЌкoXтWgvwwcЯž=8rфŽ9‚ссatuu!‘HЌКў|Џбvk”§ƒ<""кr<є­OНрЎT*a~~ЃЃЃИsчFFF022‚ббQLNNb~~>h€р8Ђб(кккаее…žžєііbhh(˜-•JЁЉЉiйјрмО} A3MгL&бпприБc8|ј0іюн‹ЎЎ.ФbБŠЮЂсuђзk#žлvЋЗ.;iЗ[НА6|YѕэТ—ћЧA.—Уьь,nоМ‰Ы—/уГЯ>Уѕызƒц~у РЋнГgNœ8гЇOуфЩ“D"‘€ЎыuІ№5#ЂЭв(ћyDDДхxш!Ђнn­Až}БXФфф$.]К„їо{}єОќђKЬЮЮЂX,ТЖmhš†T*…ссa?~O?§tPёдввMг‚ŽВс“•ЭЈ~к)У$ф­nЃ‚Мp ЫВP(АИИˆ‰‰ ŒŒŒрѓЯ?Ч'Ÿ|‚7n`bbХbšІAзu477chhO?§4žўy?~§§§ˆХb5з‘ˆh34Ъў…Am9zˆˆ–Ћ+ЧСммОјт |ќёЧИxё"nоМ‰ББ1ЬЮЮ"ŸЯCUUєєє`xxФАgЯєєє ЕЕMMMˆD"Ыц {’ƒ‘Ч ŽСхЫ—qчЮ,,,@г4ДЖЖЂППћїяЧЁC‡Аwя^ ЂЋЋ ---0MsSЋаЖcМG тќлZ–ЫВ bў5ПrЬЖm8Žзuƒћ*Š]зЁ(ЪВ ЕЧщвћЈтN ч=Гвњ‹E,,,`||ЃЃЃИqуnмИ[ЗnattSSSА, Щd===иЛw/Nœ8Їžz @ww7bБXнaЗDDыБнћмЕbGDD[އ"Ђх,ќЦЗoпЦЇŸ~Š .ргO?ХН{їЯч‰DаооŽЁЁ!>|88†††аддT,­ЕЋьF­ћf>NНЧєЫяІ:55лЖšІЁЅЅ Иџ>fff`Ž?ŽT*Чq0==ёёq,.."—ЫСВЌ`~Сh4tѕMЅRˆFЃСу...bqqХb’$!‘H ЉЉ †aРu]”JЅ ŒRUёxЉT*XзL&ƒ……иЖ I’L&ƒ9сVzžлe#ТпzЭ4\зХќќЎхqфQXЃь деoBDDDDDЩ?YШfГИuыоzы-М§ілИrх ІЇЇQ*• ы:†‡‡qъд)<џќѓxійgбзз‡x<tѕмэџ1R*•pїю]ќф'?СнЛw---јјуёбGarr…B’$!“Щ@ЙЙ9\Кt oНѕdY†iše9“њџєOџ„ББ1ДЖЖтмЙs8sц ZZZ033ƒ_џњзјЛПћ;фѓyДЕЕЁЛЛЧпЮMИ-ЊчjT---xњщЇqша!МђЪ+јьГЯ№Ю;ярЗП§-ОќђKЬЯЯу§їпЧЕk繋_ќпњжЗpюм99r---лљtˆˆЖƒ<""""ЂMV=є/Ncdd|№~§ы_уѓЯ?ЧииrЙЂб(Ž9‚3gЮрфЩ“8tшz{{бввУ0ъV 4J%СFBРЖmd2,.. …~їЛп!‘HрдЉS0 ­­­ˆFЃ$ ЊЊbppЏМђ <ˆЎЎ.˜І‰\.‡/ОјПќх/qћіmмПяНїњћћqј№с`hs2™D.—ƒыКИ}ћ6&&&Яч‘ЫхpѕъUЬЬЬ`aaŽу`ttH$xј№a0œыКDkk+тёј6oХЭWoшkјgY–Ёы:t]‡išhkkУСƒёт‹/тƒ>Р… pуЦ LOO#›ЭтсУ‡јф“O№Т /рХ_ФсУ‡ƒЙ!kUкењ|ьЦЯ 5>yDDDDDhЅсzŽуроН{Иpсо}їн œШd2HЅR8|ј0Ž;†“'OтФ‰DsssEЧЮэ˜ŸЎ‘H’У0№ъЋЏтФ‰ˆFЃP§§§AЃГgЯт№сУЖoБXФШШ$IТO~ђLOOуоН{јјуё№сCєѕѕЁГГ§§§hjjТмм>|ˆ‰‰ ЬЯЯcqq7nм@БX„,ЫС|yЃЃЃФииЦЧЧс8dYЦ№№0КЛЛ‰DЖ{“э8†a ННЉT CCCиП?Nœ8 .рвЅKИuыюмЙƒЉЉ)мЛwЗnнТйГgqђфIєііл4мЉйЗ‡ б“…Aб&zŽу NуоН{8ў<~ё‹_ру?Цьь,Ђб(†‡‡qђфIœ={ЇOŸЦў§ћƒ!ŸсeљЫЃ%ел#удЉSјг?§SBЁTи™І‰ссс`NМL&ƒрсУ‡шъъBss3z{{бооŽййYЬЭЭall “““Шd2И}ћ6„H$p'˜їэ™gžСƒ099 РJКgЯДЖЖBQ”-пf[m-яйZsз)Š‚d2‰Їžz {іь ТМпўіЗјф“Opџў}|ўљчИ}ћ6._ОŒпџ§пЧ /М€}ћі!•J-~ЮЯ= фm"Чq0;;‹O?§ЏНі~ё‹_`bbЎыЂЙЙ‡ТЋЏОŠ—^z ћіэC4 ТNЦџшšššpіьY •Yс@Чu],,,рЮ;ИqуЦЧЧ‘NЇaYђљ<ЦЦЦЩdxs№ЅгiЄгi8Žƒx<ŽžžєіітЦСэGGGQ,166†X,†оо^ЄгiЬЭЭсњѕы˜œœ :шњѓђэйГЩdrлЖгNV=‡$ œ8q‡ТЫ/ПŒ7оxoОљ&>ўјcЬЬЬрнwпХ­[ЗpхЪМњъЋ8{і,RЉдВ€Ÿ%"jt ђˆˆˆˆˆ6X8€С[oН…џїЧG}„|>У0pша!|ѓ›пФќС`пО}hjj‚ІiЛОХЃЊо^†a ЇЇЇЂЃoиЕkз№ц›oт7оРнЛw‘Эfс8/фsљ|>XЖу8Аm Њ*:::0<<ŒѓчЯћь3\П~™LВ,уЬ™3јжЗО…Н{ї"ŸЯутХ‹ИvэZф… !аддtœœœФдд._О I’ IОђ•Џ`яоН(•JH$Чџ§пџсў§ћАm‘HD*•ЊЈРфkОВъэ#Ы2тё8іьйƒЖЖ6єііb``oП§6>џќs\П~sssШfГјУ?ќC<їмsшъъ юЯaЖDдЈфеБ–p-|зu155…>њџњЏџŠѓчЯcnnЭЭЭ8vьОћнят•W^ Њ№ЊЋНж2ќсУr+m“№uйl AH'I<ˆчŸУУУИ{ї.>ўју—чЯзппййY,..ЂP(@]з144„ОО>ЬЯЯЃННЗoпЦ•+WP(xЭ8>ŒX,ЖЌУnїЈяm!EAkk+Юœ9tN&“јрƒ№рСќьg?CЁP€eYxёХбжжVQхЧЯ5yDDDDDЉ:„IЇгxџ§їёЯџќЯxу7рК.RЉЮž=‹ќрјіЗП ћєCМpѕC…ЧS§:д ЧLгD,ƒaАmB|љх—Иzѕ*цццpљђeќќч?G:ЎћX†a ЃЃ{іьСѕыз1??bБUUбжж†ўў~ДЖЖЂНН}}}ј№У1??Р›п­ЙЙ€aјšЏ‡~ћмрр Оџ§яc``ЩdЏПў:№ц›o˜пљЮw`У<"jX ђˆˆˆˆˆ6@БXФљѓчёуџПњеЏ`л6:;;ёЧќЧјоїО‡SЇNС4ЭŠЪ;#мењйпЮННН8qт>џќs\ЙrЎыт­ЗоТЅK—Ч‰Dабб›7o /ќх„#ПЊюWПњUp]збее…оо^DЃQЄR)|х+_ЉXЯh4Šююn дmЦAOD"чŸЉT ЉT ЏНі&&&№юЛяЂP(@UUМјт‹ьLD ‹G""""Ђ:V кќHлЖёілoуЇ?§)оџ}”J%єѕѕс?јОћнятшбЃˆFЃЫcˆЗ~’$AзuЄR)d2!амм ]зkо>‘Hрх—_†ыКјеЏ~…‘‘‹Ehš†ЁЁ!œ8q]]]И{ї.ЦЧЧ X^јѕŠFЃ8rфњћћƒNЗЭЭЭ8|ј0:::`FаDЃЏЏ…BЎыЂЛЛћїяGGGƒМ PЋђR–eФb1:tљ— У0№пџ§пСЇŸ~ŠПџћП‡Ђ(јъWПŠжжжmXk"Ђѕсбƒˆˆˆˆh …Ојт ќЧќо{я=ЬЯЯc``п§юwёGєG8tш‰DХ}V›o!_mеsъКŽССAќ№‡?Фмм ЃЃ}}}а4mYЧSEQp№рA˜І‰ссa|љх—(‹ˆХbТО}ћ`ђљ|АМііv T,/‰ршбЃјб~„ЉЉ)8ŽƒX,†§ћїЃ­­ ŠЂ ЙЙ'OžФ_џѕ_A^*•Т‘#G–…КД>ѕa>|пћої „РЯўsмМyяНї:;;‰DpњєщeŸM"ЂNœ]•ˆˆЖ=DєЄА, wюмСП§лПсџё1>>ŽююnМєвKј›Пљ› 4ђ­о0Ш[Y­Й№,ЫB6›…ыКМА.‹AUеŠљУлжu]X–…|>Чq Њ*Lг„ЎыАmщtКbyбhtY0шК.2™ lлр…G†aTЬXkн У@$ ж…6^uš>њ?§щOёкkЏattјб~„яџћ8~ќ8чЉ$"ѓљgEQ kщX;77‡>њ?ўё1>>ŽH$‚чž{?ќсёдSO=ђ|xrБ]ТлЧŸЏЮ0Œ qDјК№mЊчЭЋw?РkH‘JЅj./МЊЊЂЙЙЙцzЎіЕ–ЭзўёToПъзJ–e<§єгp]щtџђ/џ‚‰‰ ќЯџќККК088ˆ–––-_o"ЂЧ%Џ~"""""Њfл6Ў^НŠз_Зoп†mлјъWПŠW_}ЇOŸР фн$мƒv!TUХсУ‡ё'ђ'8sц bБnмИѓчЯуƒ>июU$"z$ ђˆˆˆˆˆVQ+ y№р>ќ№CМџўћАmУУУxљх—qњєщ`шЄеVO’ЄКлеПЎжѕ+нoЕЧZiЙы} кеЏ‘џнo€ёчўч\Лv чЯŸЧЬЬ ЧР№ˆv>yDDDDD5д mс Ь IDATќљбЎ_ПŽ‹/b||†aрьйГxюЙчаггѓинiYбЕ9жР­EНзшqƒЁпњЌ%аМ!Ж­­­јњзПŽ3gЮ ­­ Иpс>ћь3фѓљ­\m"ЂЧЦ ˆˆˆˆhеaA:ЦЇŸ~ŠkзЎA4ИиЛwяЊsЂ=‰6zXщNІZo=vв:VлЩыЖќЯЏЎышяяЧЙsч0<< лЖqћіmМѓЮ;X\\ ц6$"кЩф=!ЦЦЦpѕъUћ,ž~њiЄRЉu…'ЌЮкЙТMї5кŒp­К‘Чv…wЕ{Ї…‰’$AQœ>}‡F2™Фќќ<~ћлпbjj –emї*­ŠAб#BрцЭ›E:F2™Ф‹/ОˆЖЖ6ЈЊКнЋGD+B ЋЋ GХрр …FFF022‚L&ГнЋGDД*yDDDDDРqŒŒŒ`ffšІЁГГЧŽC4­˜`пџкŠЊЄ№PЪэЈ‚кШ9ш6cy@эсІkй^ѕжЅњђэЮZ§И›Б§ЊяQoП*ѓќuаu{їюХрр \зХЬЬLЬћЗл)ыLDTџeHDDDDДFЎыТЖmмЛwщtбhнннЊёvЪаиFŸяЋ:˜ЊwйZ–Б–.ГЉоуЎчqj-Г^г­P§ўЊз!xЕ0l­ЏбF’$ ннншщщІi( x№р2™ У;"кёф­п­ЖT*azzљ|ІiЂ­­ ---PЅц§Ж" X-мyлАЌf-СаJї]Ыeыq_ƒиЮ[§UWšЎєј;э§уK&“hkkC$ >гЙ\BШђвРЕј9 ЂнCk‰ˆˆˆˆжР/ …Вй,lл†ЎыˆЧуˆD"'џлi­У*7bјрJ]зЛЬе†ДЎe]Њ‡ОЎі˜Е.лŒцГЬЧйЋ=V­!йB6"У0Ч‹ХйlХbБЁŸэЌШ#""""zЎыТuн lReЧ„xi=Ywšежi;Ћ­vcЅзNxH’Y–ŸШЯ.=йф­‘$Iа4 šІA–e8ŽƒbБЫВ‚``;‚!JЅђљяћ‹EрЁоVЮkH!Oy„B!„l @XQ(H$NЇy8БsjUЋUћ =Њ ‡‰DТїпсp ЃЃ‡Z­–пG$!™LbrrчЮл№>ДЕЕсиБcшшш@ЁP€ЧуСЧŒx<ОтО,Pеh4АX,шшш@{{;L&пъU*,//c||уууxєшќ~?Вй,Ъх2d2t:ZZZАgЯ ЁЇЇMMM5Уsчццpщв%,--šššp№рAŒŒŒ№у(‰NЇёрС|њщЇ<ЌыююЦ‘#G`ЗлёеW_ajjŠwJнŒжжV?~VЋ>Ф'Ÿ|ТŸЃЋЋ GށЫхФуqмМyзЎ]Ћщкклл‹C‡СfГёыгщ4__Й\цы;|ј0мn7?ьgЉTТммюпП`nnС`А&Pfя›ЭЇг‰ЁЁ!ьпП‹eгћ§Є„П›Й\Щd’‡–: …‚‚;BШ3‚ŸёxœЏЃRЉ`vvŸ}іfffЯчЁбh№вK/сЇ?§)Ž= Н^БXŒ|>žžДЖЖт—Пќ%ІЇЇЧqџў}ќпџ§ккк`ГйыЕЈ'‹qьи18p€W!V*мП^Џ 5ї;uъTЭ№^ЅR‰ІІІ†ѓ6вш˜f28Nfж7pйщр‘B„(Ш#„B!d“ЌV+qуЦ мКu уууИvэl6[MЅГA€BЁ@KK шЊе*ZZZрѕzqётEТƒAD"‘†ыH$аjЕшюю†лэц!šššј0аBЁАюішt:ttt4 ™ЕP…B—Ы…оо^h4Шd2LNNђлЫх2JЅЦ ›ЭbvvwюмA.—8>|'OžЌ Џt:t:ДZ-nмИH$Џз‹p8Œ+WЎрћпџ>ЬfѓЊЏхFТ[с}l6[M0X­V‘Щd еjkцiГZ­шъъ‚ЫхZё‰DbSЯЯАaЏсpчЯŸЧЩ“'Ёзы7ДнKKKУєє4Ње*ЄR)8€з_/Пќ2t:нŠ9цL&ьv;\.ŠХbMѕпvЉVЋМ+яЅK—099‰L&—Ы…cЧŽЁЙЙЙІ›.!„<Ћ(Ш#„B!d“дj5іяпССAмП@чЮCWWššš бhvЄ{m#ТэP*•PЋе5EЙ\цMъУ 6]>ŸG6›E&“A:цѓЇ‰D"h4ššЮЎЋIЅR№x<0 oonn†Z­цsњ5к|>ЯЙT*…|>Яoзh40+šn,..bqq‘_зйй‰ССAДДДЌи_Й\ЗлссaмКu ^ЏЙ\333№љ|шшши№ыЙклЕT*•лФцЕлЊ*O‘H›Э‘HПп{їюсђхЫp8PЋеы>оуё`vvЉT  еj1<<Œ№mЏpпХb1L&џїvTМеГ|>щщi|ійg˜ŸŸ‡RЉФž={pєшQ >эm"„'EA!„B! Ќ4АЫ}}}8tшЎ]Л†ББ1\Иpp:шяяЏ™Зl'BjЕŠbБШ›)T*ЬЬЬрсУ‡5xЌ ­жtnnЙ\‹‹‹јќѓЯБАА€rЙ ЕZŽŽьнЛwе!ЕьЬЬЬрwПћ._ОМт~‰„ЯWg0nK>ŸЧввfffP.—qхЪ\НzР7 HXЕžАЪ-N#з AЕлэhmm­>)М,‹бййЩЧRЉ„p8Œp8\>Žѕолѕ>йЛw/ Ў\ЙПпO?§@__пЊЏ#№Э{Šuifз[,Инn455е<†UH6 Y•ЇЉQ №Ч?ўзЎ]C4E__^~љeєїїCЁP<еэ!„­BA!„B!Сh4bddЏНіІІІЧqіьY455СjЕЂЙЙyGЗ/ сЫ/ПфУ^“Щ$ЦЧЧqыж-оqU&“ёaГœt:[Зnсяўюя —Ы‘Щdx0ІзыqєшQќйŸ§†‡‡знžљљyј|>H$’ЗЩd2ьйГ.—kе oii џјџFƒrЙЬ;кЪd2єііт‡?ќ!NŸ>]гА X,"—Ые §UЋеЋ6v`—ЕZ- oюР*Ыхђ†У6aѓ‰byšеjеj‡эээШхr8{і,юоН‹ызЏCЇг­љ|"‘Й\ŽWEпЬmЈгщx#f||ccc5‹№№їфЩ“ п OƒH$B(ТхЫ—ёŸџљŸ№ћ§аыѕќїЗ~л !фYFA!„B!› ЌтjooЧЋЏОŠ;wюрЪ•+xј№!Юž= ‹Х‚Зп~*•ЊfОГэФ‚МЛwяј&дJ$H$ЈVЋP(8|ј0Ž?Žііvў8сv–Ыe$ LMMёP‹UY9=z###0 J,‹†7RЉДІl#љ|sssМв‘Э…Їбh0::Š—_~ќv6ЌU,зlгjн]ыЗЛ>Lcыйl@Зй0mїjлŠ!лJЅ}}}H$Иrх ’Щ$Оўњk˜LІuЗЗбpa6ќWИ]їюнУћяПдмзbБрФ‰8vьФbёКЏћ“‰DˆD"јъЋЏ№ы_џ333ЈT*СЉSЇаггCУh !Л y„B!„4А‘/їzНћіэУ~є#DЃQLNNтіэлPЋе0›ЭxщЅ—`4kТЅэR,Fљ\fbБRЉ”W vttр7оРшшшЊŽD"С`@GG*• ‚С ќ~?ŠХ"тё8<:::x—R!с:;;;qј№aиэіšлE"$ њћћkцЗЋЇRЉайй ЕZh4 ПпT*…RЉ„ХХExН^ЄгщšŠ<™L•J…BQS™ШŽIЃm­VЋˆХbШхrЈVЋH$|nABжƒѕ—…CQыяП•яЧ7Э“g4Бoп>мИqїяп‡ХbAKKЫšл(ЌhЌVЋHЇгH&“ШfГP*•|›вщ4P(x№jГйаллћд;;Г}ˆХbјъЋЏ№СрђхЫШхrиЛw/^{э5:tЈц§B!Лy„B!„l‚0Є‹ХАZ­xѓЭ71;;Ы'гПxё"ЄR)$ †‡‡aБXx˜WПžЇ…u‰эшш№M(ЇP(`БXаооŽЁЁ!ьпПFЃ‰ЄaS…BііvМћюЛJЅИ{ї.Оњъ+<|јŸ|ђ Ьf3\.мnїЊл"‰аннwп}фз ƒ.FSж“Щ„7п|nЗ—.]Т7NЇqётE455ЁЉЉ ‹…ЏGЃбРd2AЏз#™L|>|>ЪхђŠъ@6ЏрммŸWO*•Тl6Уd2A.—C,зЬяЦЊЫх2ЄR)пЇrЙ\3Є—ЉO:œt+о7еj.— ЏОњ*fggсїћqыж­š ЕvœYе`,УТТBЁPM3 —Ы…У‡CЋеb||@ЅRЉa•фVЈџн*—ЫШd2Иvэоџ}œ;wБX ­­­xѓЭ7qъдЉšJTBй-(Ш#„B!ф1А B&“СсpрЇ?§)вщ4RЉёСјІ2юШ‘#0™L5aогЎаkkkУЛяО‹џјЧ|{ЅR)фr9ЏRcлБZu”BЁ€ЫхТ;яМЛнŽЛwяТh4т_ўх_Ых0==/ПќpЙ\| ПT(0™L ч“еТNЃбˆ3gЮраЁCШd2pЛнˆЧуИsчвщ4Оњъ+ИнnьлЗ‡QzН‡­­­XZZЬЬЬ`rr‘H„7h`ЯS*• qѓцM>З 3[[[ЁRЉ T*kЊИrЙ‰вщ4ŸWUЊE"о‰V&“AЃбдЬЯзШf†ю>Щћ‡5Њxу7pўќyФb1LOOcii Хbqеm`Ё­JЅB&“A,УэлЗq№рAИ\.Ђ?~###x№рўсў.\hX љ4T*$“IŒс—Пќ%ОќђK„Уaиl6œ9sяОћ.z{{!“Щžze !„lЕЇ;!!„B!Я‰žžќф'?С~№X­V œ={ПјХ/№с‡" иОЮЄ2™ zН---АйlАйlАX,аыѕоо^( T*LOOуќљѓƒ(—Ыќ1ѕыf•Xk€жQ.—Q­VaБX№т‹/тдЉSJПЉM№љ|Иyѓ&nмИСяЏT*бнн‘‘^ чёx№йgŸсЃ>B,у•ˆ…BГГГјЏџњ/\Нzсp"‘&“ 'Ož„ЭfƒL&ƒбh„ЫхтЯ‰D055…‰‰ ОЎl6‹™™мН{—яƒ^ЏGss3Ьfѓ†СгІT*БgЯ;v ­­­ШхrˆХb+ŽЛ№пmmmиП?іьйУoћњыЏёЛп§_|ё‰Ъх2T*, Ьf3фrљЊѓn…њuƒAœ?џїЯ?џœ‡xЏОњ*ўњЏџ]]]ЫхтBv%ЊШ#„B!ф А0@&“ЁППoП§6ЄR)~ѓ›пРчѓсъеЋШfГ№ћ§xы­ЗаббQS З•ЁM}XВж0ЦецsktFЋеЂЛЛЇNТввrЙBЁnнК…‹/тєщгЋv]XXРЧŒщщщ†З755a``6›mе§cл#‹сt:qша!|јс‡|ЖЉЉ)|ўљч8tшЬf3ЄR)мn7NŸ>[ЗnсюнЛШхrИsчо{я=LNNђз#bbb/^Фтт"ŠХ"ЌV+:„3gЮ@ЏзC$СjЕbhh6› сpйlзЎ]У/~ё ŒA­V# тыЏПЎ ;;;100АnЗежk>ЂбhpђфIмН{ЫЫЫHЇгkЎOЋеbxxп§юwсѕz‡‡ёйgŸ!`xxNЇZ­Р7нŠgffP,4ёНї6ђ{Qџ.—Ыxј№!Ю;‡>јзЎ]C2™D{{;Юœ9ƒwоy}}}P*•5еЃ„В›PG!„BШбщtтsЁ={=Т7L&‰DpцЬ ТbБ@"‘lщМy›Љ0jє\КЅ џ-‘Hадд„“'OтГЯ>C2™D>ŸЧТТ>њш#єїїз4BЎcnnџѓ?џН^п№yћћћЁгщV ђъЗЫ`0 ЗЗ/НєBЁ …ќ~?Оўњk\П~G…NЇƒбhФ№№0~ќуC&“abbёx7oоФђђ2ЌV+ЄR)oЮрѓљ ‰рp8pј№aќр?рˆ`6›q№рAМўњы8wюqюм9<|ј …‰D>ŸС`‡ŽЧЧСƒЁRЉxШКйДѕСЏpHђjЧjНрL,cяоНxс…№№сCLLLЌx^сsJЅRДЗЗу;пљЂб(Ојт ЬЯЯУыѕђсЙ‹JЅH$xа*‘H VЋЁгщж 7r„Ъх2RЉЦЦЦ№щЇŸтмЙsИ{ї.вщ4КЛЛёЦoрЛп§.FFF VЋW ѓ!Л y„B!„<њ@Т`0ррСƒ<Ьјф“O099‰ББ1,--Сяїуѕз_ЧШШьvћŠ`AИЮzkнЮš0АРI.—oЊБ['›GOЁP@ЁP@&“е<ŸFЃС044„p8 Пп\.‡+WЎрСƒАZ­|>>Ж-Р7ЮН{їV}nжe—эЃD"слСіG84W&“СnЗудЉSИqу …Ъх2ёљчŸc``jЕšЯaјілoC"‘рќљѓ˜œœD8F(‚ЯчуKd2l6š››122‚3gЮр•W^VЋхлЅRЉаггУчМsчќ~?2™ юнЛЧз%—Ыбвв‹Х‚уЧу;пљz{{y€ЗZЪ^УJЅВns жёWЁP№aЭ2™Ќf.FсkСю#•JkžПЙЙЃЃЃ˜˜˜€Чусеsl}ѕсЁNЇУў§ћЁRЉ`6›qѕъUо $ Тыѕжt$V(p80™LшыыУрр`УaжыjЩ\.ПпББ1ќсР_|……Шd2єііт­ЗоТїПџ} Ўй™Bv ђ!„Bй, ЉVЋ|юБПњЋП‚нnЧћяПЋWЏ" тWПњ&&&№ня~oОљ& P(ж?NЈ>‰DаjЕp:|hЄгщlX§Жо>иl6ДЗЗCЋеBЏзЃЕЕ•ЯCЧš6ДДДрдЉSˆЧу˜ššтaбЃG088•JЃбˆžž>o\Ѓчю‹гщ„FЃссZ­F{{;яыvЛЁVЋk*йt:Ž=Š .@Ће"NCЉTbffЁPVЋ‰„‡yё‘‘\П~ЗnнТьь,’Щ$Ъх2фr9, :::0::Š‘‘одЁ>@28uъьv;.]К„›7obff‘Hхr™wюььФ /М€cЧŽСсp@ЉTђ Ox ЅR‰жжVtuuё Я`0№у_‰DƒС€žž”J%€нnЏiЈ!“ЩаммŒююn~Ÿццf(ŠšЁЪCCC8qт‰DјуY“zlˆ­лэЦ;wpуЦ ŒcaaЩdЅR 2™ :VЋшяяЧРРКККjіi­ЊМе†нV*dГY>GуЏ§kŒ!—юSU IDATЫAЏзc``ўчŽЗоz vЛ?_§z!dЗUi†OB!лŒ>z!пVцьŠFЃИ~§:>јр|№С|ИЅЭfУў§ћёНя}ЏМђ кккјpФЭ<Л.Тыѕ"“ЩјІrЬjЕЂЙЙyУѓU*ЬЯЯ#‘H X,B"‘@ЇгСщtжTз@8F рС!ы‚Ъ†ЊF",..nx?ДZ-ьv;єz=*9??BЁРї‡ЭНЦ‚АjЕŠbБШУЃrЙЬЋк\.t:]MEЛ6›E2™D"‘@ЁP@ЅRD"RЉ„бh„FЃRЉ„D"Y˜ ЗН~]Й\Žu*• :zН*•ŠЏkЕj<жщvyyёxœ?Ÿгщ„бh\qќotФb1ЬЯЯѓы Z[[ygнl6‹`0ПпЯяУо, c‘ЌТ’sЖО–– зЏT*( Шd2H&“H&“(‹ЈT*М2QЅRAЏзCЉTB.—зTЎ7ФX8ќUxћТТ>џќs|ќёЧИtщ|> …Nž<‰ў№‡8vьєz=PpGYЫn9GPG!dлбG!фyРЮu•Jёx=ТхЫ—ёс‡тіэлH$<$Х+ЏМ‚_|NЇ“w•ЎЇ>DЊђ*• JЅЏ€‹ХH$+ТЈѕЖ—…0ТfѕC1й~ Ÿ@Эѓ•Ыe^ЖьyXHWЉTP,W mдМCИЭынWИ§хr™o? Šэk§Пы?ЧъзХі‡™fAЃp›„ћбЈѓ+;NЋGжuXјZА!ЛѕлS.—ю‡p}*шиuьБѕgћБкёЌ?ѕыfrЙМ^/nпО/ОјзЏ_Чєє4bБd2^xсМњъЋ8~ќ8іюнЛЂБШnљ’NйЛхAA!„mG=„чA§ЙŽ5cјъЋЏpўќy\П~sssHЅRАйlиЗoFGGёТ /```­­­PЋе5ѓ1;љecНц›mр№ИЯНж6дпЗQƒˆЮЧЖйѕ?Ю§ч˜>щі џИыкlЃ–ћFыЬfГXZZТФФЎ_ПŽЏПўЩdpЛн8pрNŸ>_|nЗfKЩBО§vЫy‚‚z!Я“њ№"•JсюнЛјђЫ/qсТŒ# Ё\.ЃЙЙƒƒƒxљх—1::ŠЮЮN455AЃб4lzА™№dЃїпЊЧnЧњvњyže[йu+УйѕBIЖнхrйl‘H=ТЕkзpщв%мИqЫЫЫP*•АX,шяяЧБcЧpњєiьнЛ—НІї!dГvЫЙ‚‚z!ЯЃњ#‹сў§ћјУў€?§щO˜E"‘@ЕZ…JЅТСƒёЪ+ЏриБcшяя‡ХbЉтXЏ~Шc§P\сu›нцЧy,y>mІКнOx^Ч1==/ПќњгŸ066†H$‘HЙ\ŽЎЎ.МђЪ+јЮwОƒC‡Сd2­X?Нg !›Б[ЮфBйvєбCyе•Jљ|ёxЗoпЦЇŸ~Š/Ој“““Шd2P(аыѕшшшР№№0Ž;†ссaДЕЕA­VзЌ“­їiyЛхЫ йyфБы‹Х"ќ~?nнК…ЏОњ WЎ\СƒJЅЯчЁVЋбббЃGтѕз_ЧО}ћ`Гй T*kцЌ_7!„lФn9gPG!dлбG!„д6УH$X\\Ф§ћїqэк5\Нz>D<‡T*…ЩdBkk+њћћq№рA ЁЛЛ6› 2™ьБц€#фiXэ§ЗкѕЙ\сp333ИwяюоН‹ЩЩI,,,  !NУ`0 ЗЗ/Ој":„}ћіСсp@Џзѓ&є;@yRЛхœAA!„mG=„В2l(—ЫˆЧуXXXРииnпО‰‰ LOOcyyйl&“ .— {іьA__айй‰жжVF(•Jонєq*“6RсGШFЌжLƒUЂ& ,--affSSS˜˜˜Рдд‹Х ‹aБXрvЛ144„ссa ЁГГ&“iХћœоŸ„'Е[Ю#фBйvєбC!џ_§9БZ­ЂP(Руё`||зЎ]Уѕызёшб#DЃQЄгiˆD"X,єєє`џў§шяяGww7L&ДZ- Фb1<6Л-ф‘ЭЈд„яJЅ‚bБˆT*…H$Џз‹щщiмН{уууxєшќ~?JЅДZ-Ьf3œN'pша! Ухr5ldСаћ“ђЄvЫy„‚z!ЄБFaH$Сфф$.]К„ .`bb@Й\хr™W.uwwуРЦоН{сp8`0 P( ‘Hј: AЌПžЕ4ъˆ[_WЉTx€—Щdрѓљ0>>ŽызЏуцЭ›G$AЙ\†T*…BЁ€бhФрр >Œ—^z‰ЯWЏ>,ЄЪП›Ko~~С`Й\*• ƒ‹6› mmmшююFWWкллaЗлa6›WTыеoУnљRCvNЅRA6›E,ƒзыХТТІЇЇ1==љљyј|>Фb1Фуqфr9H$FИнnєїїЃППНННшшш€еj…^Џ‡\.oјо[э}Кж}!dЃvЫљƒ‚z!dуaYЃћU* $ ЬЭЭсбЃG<<™™™зыE$A&“H$‚FЃЭfCkk+œN'œN'кккрp8`ГйаммЬ›eА.ИЖ‹Оч[ЅRAЉTB6›хr0Фђђ2<рёxрѕzЧQ.—ЁRЉамм ‡УЇг‰ŽŽєєє ЋЋ ‡MMMPЋе‹ХќЙ6в­6З#НO !›Б[ЮфBйvєбC![ŠхѓyD"x<>”qff@ЩdщtХbRЉ:VЋnЗшьь„лэFSSššš еjЁVЋЁRЉ —Ы!‹kB–Е*ЃvЫЁчйFо{•JхrХbЙ\™LЩdбh>Ÿ‡ПЧрѕz‹ХЯчЁP( бhxуŠЖЖ6оeЙЇЇ.— ‹ …bES•ѕЖkЋіBъэ–sy„BЖ}єBШ“[+|ШƒНRЉБX ЉT ™L…B­V‹ІІ&ДДДРэvУхrСхrё!Й:jЕrЙМaC‚Fл&DAžк6lt§•Jљ|Й\бh~ПKKKXZZТТТцццАММŒp8ŒX,†BЁ€bБШC`‘HN‡УŽŽьйГНННшщщнn‡ЩdтU,ќmTїДŽ!„lЦn9QG!dлбG!„lНњpJxЎ-—ЫШхrHЅRˆХb‡УX\\Фмм<–——љмzйlЖІЎFЃFЃ^Џ‡йl†ХbASSZ[[aЕZaБXјb4Ёбh “ЩVэ:КкЖ ЗџiкЭAоfЫнBЁ€|>Я_Жј§~ОАР.#N#NѓГеj*• &“ VЋmmmp:pЛнp:hmm…ХbС`€NЇƒRЉ„T*]sЎХЧйByZvЫљˆ‚z!фщ[-ЌЊVЋ(—ЫШчѓМa r–——БММ ŸЯ‡@ €H$‚x<Ю;Ž–ЫeˆХb^Бg2™`0`0`2™ј{fГ™_ЏзыyШцоcнr% –љz!dgЌV UЉTј0м`0ŸЯ‡ЅЅ%,..bii ЫЫЫ…BˆFЃ<№ЩfГШхr(‹ЈT*‹Х|Ž4ь™Эf˜L&˜L&^БЧB>FЕZ ЕZЭЛхж/RЉbБ˜ЩЌ_vњИmеzйpгF ы[*•P,љажBЁ€\.‡t:L&ƒL&ƒD"h4ŠH$‚H$‚p8\ѓ3"—ЫЁP(№PV*•BЉTђEЋеђЪJЛнЮЛЗДДРсpРl6CЃб@ЁPд4@йшqкщjHBYЭn9/QG!dлбG!„ьœ)еjЅR ™LБX ЫЫЫ№x<<р›››УввТс0RЉ2™ Ÿ;-,Œ‹Х|ю=…BБ"мc•},ј30›ЭаыѕP*•Ых+BОњ€эSЃЫйпецnльqЋПП№2;ТЫТРŽul) ( H$ˆХb+*ыТс0XУс0’Щ$2™ FЫцБc ы>,“Щ VЋЁгщ`4сp8рp8јPY—Ы…––>LZЁPlhŸ7s\„Ч‘Т=BШГ`Зœƒ(Ш#„ВэшЃ‡BvЮf‚<і“5Я`Ua,\J$…B№zН№љ|№љ|5sЎEЃQd2фѓљš ,PbCkйeіБ№NЅRAЇгAЏзCЇгAЇгAЋеђЁК*• jЕ*• *•ЊІКŒ­G*•B*•йѓВыaишx Л, у„KЉTB>ŸчСšА’Б~,ы›JЅL&љ’JЅЫхЫхЯчљњЪх2]иežрѓЊT*F477УjЕТjЕЂЕЕ‡vЛVЋZ­Z­ЖцxБцѕUwOњE—‚РѕТНЌƒBž%Лх|EA!„mG=„ђэВ™fТЙрX0—NЇ‘H$јPRјБЫѕAkиЯчk*л„CN…сšpиЉ0TЋииОTЋUОnJЅМЙУjѓђ5 ыЄ +хr9 џ)6ЬТ8сЂбhxpЧ†Гъ­І „ВvЫy‹‚z!„ЌЇZ­ђЁЊlˆ)ЋєcѓЫБpЭ5Ч†ї Ћљ„U}Та­ЛQ].—УТТ*• Ьf3ККК T*k*шXp&В+ ч„uьВpN?жЕ—…v*• …Ђfш/ шvЫLBй­vЫy–‚z!„ЌЇўГЂОbn#vѕЭ VЋаЮЭW­V …№oџіo8{і,ŠХ"Ž9‚Пљ›ПAkkы†+№ъ‡ё '|l§zъПHЎїoB![cЗœ_Ѕ;Н„B!„Ro+Ќњљэъ‡аЎ6žNЇƒбh„D"AЙ\†NЇC{{;œNgУЎЖ.зС}всЌєG0B!y„B!„ДеѓЊеЏv›Y7k !Ќ˜cCfwKХ!„o' ђ!„B!п [ЕЖZЕœАšNXЭзшОыЁBШV  B!„ВcžFРU?дUТ o{œрЏ~{ŸVиѕž—BШѓIМг@!„B!„BYUфB!„BžyжК^еZБXD.—ƒD"Z­^бˆbГлСžГ\.#ŸЯ#“ЩР`0@*•nKнvUByvPG!„BљVcУk+• ^x‡ …Ђс№Y‘H„JЅ‚|>`0ˆ{їюсЃ>ТХ‹‘H$pј№a AЅR5 иh,!„­@A!„B!фЙP­VсvЛёт‹/тъеЋИ|љ2~ѓ›пртХ‹ЦЉSЇpтФ H$’sђ‹EЬЬЬркЕk8ў<Ў\ЙЏз‹t:рфЩ“Алэ4Ќ–BШSEŸ2„B!„o•Еc(•JєѕѕсшбЃИqуRЉfffF155… . ЗЗггг( (‹№zНјеЏ~…ХХEŒavv‘H…BfГћіэУшш(ёжškoГѓ№B!BфB!„BОеX# р›yђ:„={і`rrЙ\~ПсpГГГИsч"‘вщ4Ъх2>|ˆp8Œ`0ˆp8ŒBЁРзлггƒ‘‘tttlx!„ЧEA!„B!ф[ЅQХЛЎZ­Т`0 ПП'NœРђђ2ђљ<Ње*JЅТс0ТсpЭcБИИИbУУУ8x№ t:нšЯПжѕ„BШF‰wz!„B!фiЋVЋ5Uy6› oОљ&ЧКнj‰DpЛнEOOЯVo.!„вy„B!„чŽZ­Цpј№aX­жM?^*•тјёуиЛw/єz§SиBB!d% ђ!„B!пzѕУZХb1ŒF#Nž<‰ЎЎЎMUх) Инn?~mmm‹Хќ9hј,!„Ї‰‚=z†7ЏЈg6›144„ббQHЅRОЊР#„В]Є;Н„BYi#_ з ˆXиЕб/—•Jеj•џd—йѓ—JЅТ—rЙм№>ь:сѓГ/Лl‹Х‹ХH$+nЋП_ЃЫ[‰m3}'фљТЮ•bБ‡‡BOO&''‘ЫхVмЗЇЇ/М№кллщ|A!dGPG!„<#„СмfП В/Ѓхr™ЏGЖ•J%О”ЫхKЁP@БXDЉTт?ыя_™§[ь­V)WоБO*•B*•B"‘д\'МM*•B&“A&“е\–H$5‹p]RЉ”?O}0Икё^WџZl6Ы‡УВА. "Рчѓ! ##‰ N#—Ыёj:6БЊ2­VЫ/ ч‹SЉT5sХ с}„ ѓ”JхŠТЎО’oЋОА6ъˆ `E іБ0”tьиВ…ЭїЧцЮШТPv?6' W‰ТсpMЉTЪ+ј , ššš`БXаввЛнŽ––  †šљљT*Џ`lTСї$ЭMy–­uŽ|мї}Ѓy9…ч съжŸOъ+ƒы›ѕ@>Ÿ‡^Џ‡йlF4E[[BЁJЅRУ!ўѕчЫњ џјС. УџЕ:woеБ'„ђэ Њ>щЬЮ„BШ&mЧGЯfО,n$˜ЎKxџFbѓљfffАААРЏз‹H$‚l6‹|>Я‡„ ПВЦ,|cѓК577УfГСd2еT‹™Эf˜L&Јеj( ^AЧ*ХžЗ/u,№vтЭd25aj8F(B8F0ф—йаeј­ж™W&“ёЁЙ6› ‡nЗnЗэээpЛн0›ЭаыѕPЋе|(rЃ/чьпЋ5Ь а™Lж„sТсяТ NјoдеWё­зэz#ЗеяЛ0№kTЅлhаFЗБѕж7ЮCZпЌGЁP№?фЇQ`Уњ…ЛŽ§H8чщ“4ъY­:Нў8BШnЕ[ЮeфBйv[§бГо—‰T9е_/‰јаd2‰p8 ПпЧЧƒХХE,..Тяї# !#›ЭђаŽ}СbC`›››k*ьX•ћђХ‚;іen#_Ж6њ%ћy§ВЕйъ ЕжУ†п‹EцВ&%lˆn0„пяG0фѓЦb1$ фr9”J%^}Що‡NЇГцgss3ŒF#T*UУїТF^їчѕ5'чqƒ<сз\.‡t:Э+цияH<чakъ“H$ј\–,ИcUБЌjYиi[tе7х†TсUaГіSXб, ж„ћЭ~В!ЗѕA^}юња‘§эeЗчѓљšЊФњюуl§Тp’m? іX5kиУТ<жy[іБ?щt:^хЭ‚Уе>wVћƒg!п6Лх\FA!„mЗгA^#"‘ˆwNЭхrH&“…B№љ|XXXРЬЬ fff№шб#xН^Фb1фѓљš/SZ­ƒMMMАлэhkkƒгщ„нn‡ЭfCss3RЉP(6ДOОXз‘ф5ЖUAоzЯСцELЇгˆD"|8юТТБДДФšn €VЋ…еj…лэFWWКЛЛбооЛн^3ЌКОšцI‡ŒТlІыКЭ‚;h ›јА`;ѓЊ;VЁЬ‚:˜БpЎQЧђч–cѓЪБ№ЊQѓсмtkuс†y›i.Q?DWф5šŸSвБnкь2;dГйšPS8ч[„Ч­Ÿ~,єcŸlй•Ьf3, _и–, ўиqe]Ьй9Ї>аЄs !флjЗœз(Ш#„ВэvъЃgЕчe™Lсp И{ї.nпОёёqЬЭЭ!ЏјђЉбh`0рvЛбннžžtuuЁГГVЋ•‡v›эмH_’жЗб№v'!›?1‰`qqгггxєшІІІ077Ппx<^S$‰ VЋaГйаз燧ћїchh§§§Айlаh4|˜u§ў=Џ-Y[§яBЃпFчFaЅYБXфѓеБ?n+“й| ЉTŠMТj:aЕћу[X7hVНl2™`2™јѕТ9тиќ ТnНjВgћ’Ащ ўВй,ЏnV4FЃQ~™UГЙ;YрW(jКѓ ч”JЅP*•аjЕ0›ЭќOmmmpЛнp:hmm…С`€NЇуетТjE€Ю3„oŸнr^Ѓ BШЖл‰žF!›ѓnii їяпЧэлЗ166†‡" "Nѓ!PеjzН‡эээшююFoo/:;;бввГйЬЋІd2џв#ДбахYЁžuЯjW?пb§Ам\.‡X,†`0Чƒ`jj гггXZZB4E.—уУеj5L&кккАwя^ aпО}шъъ‚Щdтž№ЙwbПЩГk#Až№ОЌJŒНGgggсёx077ЧЛx<Žt:НЂЉ яXѕœVЋхг 455ёЅЙЙMMM0аjЕМл6ЋcС\ЃЅ~л…еbЛхмйш3;сфQЉTђ!HТЁЏЋmЧ“„Pж|C8ДUЎА/І*• rЙ|E‡Щ'}ЎSЌP( “Щ ‘H ѓаdff>Фьь,|>‰JЅЏ\jjj‚гщDOOаппЗл ‹ХR3\{ЗфщZяХb‘wніzНX^^Цтт"<яж‡љ|vlhgЅRD"сяKГйЬ—ІІ&мБЪ:Н^ЯчccУ_йy“Uже7šxœї№Гр?­ћзЯс*ЌВc•“ТЁЛl8ЎАQO<чУŸ"‘џ’Щ$Ÿч• ЭeУ—йа[‹ХЛнЇг‰ЖЖ68иэv455ёf=3Ї'!„<+vЫЙŠ‚Ÿщt‰ƒVЋNЇэээМСхrЁЕЕ&“‰OОZ%{оnпjЗoІqЧѓˆуууИtщтё8фr9Ž=ŠССAhЕк-{žz›=юkНцlŽНD"`0ˆХХEЬЮЮb~~žwEf‘ѓљєѕѕЁГГmmmаjЕ пŸфлoНsk>ŸG*•тѓйљ|ОšсБ>ŸеLЅRШхrЈVЋЫхаjЕ0|БX,МВЎЉЉЉІѓЖбh„NЇуЁ:ўКй ‹yжпЫO3Ќz’ѓOЕZ­iК‘ЫхH$H$јм…ьН ЌмvfУЅY'nН^_гРЩсp ­­ vЛ---|ю=Veйш\„ђЌк-ч* ђ!„lЛэ ђиМN@ѓѓѓЧ­[З066†……$“IHЅRоEдnЗЃГГ}}}@ww7ЌV+Џ4XmЖњCЃU_OуЙ7kЇЗ%“ЩрЗП§-ўщŸў Z­ћЗ‹§шGАйlлО=ЋЉ?Nы…ЕТљЇІІx№ЮШШѕѕѕЄЅЅqрРŽ=Juu5yyyX­VЁї’9O#…aјSњікк‹‹‹ŒŽŽвннMKK ­­­ŒŒŒ0??ЯъъЊЈ;ЇЄЩZ­VтттШЭЭ%77—={іˆiБББX­VeѕЈ~mЕж<эќЎыагD„НˆЉЁлХ)ЉдтЬЬЬОCJњП%Ќ8Зїѕѕ122ТЬЬ NЇ“ЕЕ5ЦЧЧхЦшѕzьv;yyyQRRBqq1{іь!..nq†D"‘HОRШ“H$ЩK…гщdhhˆ7nааа@{{ЛHѕћ§шѕzввв(++ЃІІ†Mll,&“iг?Яƒн0ПqCќ,kа= ‘я_”qQЋеX,ђѓѓЩЬЬффЩ“LNNвееESSЭЭЭBдeff†[Зn‘ŸŸЯСƒ9yђ$eeeФЦЦ>Y*y9PjІЙ\.ІІІшыыЃЕЕ•ііvњћћз‰.ŠyЩdТfГ зэ‚‚іьй#j.ЦФФˆ2ЪКЈЌ2UђхcЃјЊзыбыѕX­V233ЉЎЎfmmххeцччЃППŸžžёьь,KKKДДДУ“œœЪЫЫйЗo………ЄЅЅНэy$ч›D"‘ќ )фI$‰ф…cГHМ……:;;ЙsчwюмЁГГSl^еj5IIIPVVFII љљљdddЛЎцнw‰‚ћ>Pњ …;$|AaБX…BxН^€p‰дыѕЂŸС`ееUќ~?jЕƒС№Bфј)ѕц|>ŸpH„oE$N‡С`@Ћ}јkƒRаяї‡бщtЂ6Rt]‰€4™Lы„€ЭЎзчѓ GEF#њ­oЈеjєz=QQQЧЭRZ§~џ:ACЃб зы1ы\#Зуђљ})Pъt:с*Kff&œ9s†ŽŽкллEкјєє4ЫЫЫ sћіm*++Љ­­eпО}ЄІІŠЙАёZ%;Ыу"3aѓ{љœЛ\.‘‚нййIww7ЃЃЃЬЭЭБДД„Ых" гщHHH ==ььlrssЩЩЩ!%%…ФФDьv;VЋU”P (6іѓQТћvцбгD?ЩёŸпн–ЂљЄЉгЯЂЯлдФZ­ќ 0X­Vl6iiiфччSUU%\И'''.ЧJфчмм ŒбжжЦЅK—ШЬЬdЯž=Бwя^222Айlы^4Мˆ‘‰DВSH!O"‘H$/ ЪfVљbяїћYZZbppPЄЖЕЕ1<<ŒУсРfГQXXH^^%%%”••‘——Gjj*111ы„-Ѕ§нD(ТэvsсТ&&&‡У$%%qј№aБQZ^^FЋе’’’Byy9ЩЩЩИнnњњњшээeyyƒС@jj*………Ќ-aЋЕЕUдЪrЙ\ј|>Тс0FЃ›ЭFjjЊ;ƒС "€<ш_0$))‰#GŽ033УааsssЌV+………’€FЃYw­+++ŒбййЩддkkkDEE‰њonЗ›ŽŽІЇЇБX,ьнЛ—C‡m;z2 сp8„3ьєєДp'6ФЧЧ a#..Nдњzžl&ž(ТЃЩdТd2‘˜˜HNNЅЅЅдддаййIkk+===ŒŒŒ055ХииCCCєєєpрР***())!%%EмKЩюa3—фHNЇ“ййYЦЦЦшыыЃЋЋ‹aоуrЙ„yOnnЎpЭЬЬ$++‹ŒŒ !р™L&єz§CЯdd_"yžѓхЛˆqН'eГЯ'нG}.ГККЪааNЇ“P(„нn'==ЋењњНU?ОЫ‹ЊШЯъt:сh'^РИ\.E}НССA†††ebb‚љљyсŠмййI||йййЄІІ УžШsoЗЏ‰Dђ* …<‰D"‘ьz6~‘ƒ8NЦЦЦhmmхкЕkмКu‹ссaжжжАX,RRRBUU•••‘””ДЎVиfuя"іМ#BЁ+++|ќёЧмН{ПпONNsssмЛwЎЎ.ащtdffrюм9ЪЫЫ™хЪ•+мН{—ХХE ЙЙЙ;vŒ§шGdeeЁзыХ5К\.Ојт nпОЭєє4GDв)ѕŽrrrЈЉЉсЭ7п$77ГйL8ЦэvѓщЇŸrчЮжжжШЭЭХсpажжFGGSSSј§~bbbЈЌЌф§їпЇЖЖ–ФФDq+++ДЗЗsљђeъъъХыѕb2™DJW(ЂЁЁўў~yчw(++лж&7 233У§ћїЙvэwяоejj ЗлM(Т`0OYYЧЇІІ†ЌЌЌuˆЯ{ѓИ•CВJЅТjЕbЕZЩЩЩсрСƒєїїѓрСюоНK[[bsнвв"ЎѓаЁCфццЛNа{оѓ^ђ-ыо)ЮЦSSS аббAkk+LNNтѕzбjЕЂЖbjj*999Те8//ффdЌV+zН~K”g:П[x’hСЇ­ЇЗ66>oKKK|ѕеWєѕѕсѕzйЗooНѕбббп{_žІ}ЕZбh/Dђѓѓ…и<11СРРнннєїї3<<ЬЬЬ ‹‹‹LNN288Hss3ЉЉЉˆдлќќ|’’’„‘ŠFЃy(Вђeš›‰DђЄH!O"‘H$Л’­Ђ'KKK455ёеW_qщв%њћћаыѕТМтмЙs=z”ЌЌ,L&гК67FіэfBЁЈIфёxX^^ЕˆС``0ШааCCCфххсp8шшш   …ŒŒŒ022‚ХbсЇ?§) BИєzН455бкк €ХbСbБрїћq:LOOгжжFcc#@€>ј€ММ<б?‡У!"љЁazzš`0(вƒ'''щяя' bБX8}њД8OOП§эoљшЃ˜E­V Сubb‚ІІ&ьvЛHдjЕЌЌЌlлаТэvsљђeўх_ў…ЦЦF!іFGGЃзыёx<мПŸЛwявввТOњS>ќ№У]хzЛ‘ЭЂѕ4 бббTVVRVVЦ›oОIkk+.\ ЁЁББ1&''™œœфЦМікkМ§іл;vŒьььM#T_„gфe`ЋѕNy~œN'###477sѕъUZZZУэv‹чEIy,**ЂВВ’АgЯJCTКюїЩЃЂтЖ+аь„рМ™і]Яљ‚шQЯ”УсрвЅKмИq—ЫХТТеее~ЇѓnжgЩVэ)Q{qqqФХХQVV†Ячcyy™кллinnцоН{ŒŽŽтvЛb``€+WЎœœЬсУ‡Љ­­ЅВВ’ММ<ЂЃЃ2ьйmЉв‰DВ“H!O"‘H$ЛхKКЫхЂЗЗ—O?§”+WЎазз‡гщ$“žžNmm-'OžЄІІ†ььlQћюyЇH>-‘б‚Š“рбЃGБйlŒгккŠгщdrr’ййYbcc9pр аййЩќќ<ѓѓѓдееqњєщuЉХ:ŽššЁ•™™‰Хbauu•жжVОњъ+Ў^НЪтт"—.]bпО}dddˆˆЕШЕзыe~~ž™™‰ЫхЂГГ“ОО>ќ~?mmmДЕЕQSSƒеjХщtŠHМ……дj5”””œœЬъъ*]]]єїїуvЛ՘Јеj1.кФ…B!юпПЯ_|С­[З‡Уёс‡Вџ~L&ЃЃЃ\Иp+WЎаббС… HNNцƒ>xa7ˆZ­–ЄЄ$Ž=JII oОљ&uuuдззгее…УсрЪ•+єііrѓцMЮŸ?ЯЉSЇАйlыЂ_$;Oфѓ477Чƒhllфж­[єєєрp8№zН„УaЌV+TVVRUUEii)™™™ФХХ‰К–S_д9НsrЋtцњќЫц.­Œ…^Џ'>>ž˜˜JKKyу7ЁЃЃƒ;wюавв"JbŒ177ЧЕkзиГgUUU;vŒ§ћї“˜˜И.š\"‘H^UЄ'‘H$’]JЅbmmссaЎ_ПЮХ‹iiiarr’`0Hjj*?~œЪЪJQуЬh4Š6ždЛгЪ"#Bттт8wю|№ мЙs€ЦЦFќ~?‹…У‡ѓс‡’ŸŸOww7џїџў_ёzНbГ0 ЈеjЂЃЃљС~РттЂpœ˜˜ рvЛбh4h4М^/CCCЬЬЬрѕz…ЉE$111?~œџјЧdggГИИШеЋWљпџћГВВТммœHпЕX,ŒŽŽ ƒFCrr2?ћйЯ8|ј0IIIЌЎЎвззЧ/љK%Вh3Тс0kkkмО}›оо^\.ЩЩЩœ9s†cЧŽ‘žžŽFЃ!>>•JEOO§§§єїїsћіmЮž=‹еjнДvиnbЋšWJ-=ЃбˆХb!33“pуЦ ъыыE§Њ••†‡‡ikkуЭ7пdяоНиlЖuЂФny^F6Ю_—ЫХјј8---ЂюЇRoвхra2™ШЫЫcяоН”••Q\\LNNIIIиlЖmНРи‰4г'=яv#ёž[]пvЯГ™‘ЮVŸпюпž'ЉUЗ“<эљ”ѕHIУ5›ЭФХХБgЯjjjІЋЋ‹аййЩјј8333,//322ТэлЗйЗo‡bџў§dggЏ‹Д—ы”D"yеBžD"‘Hv%ЪЦhyy™––ъыыЉЋЋЃЅЅЗлMBB‚0<Ј­­ЅЄЄ„ФФФu^d[/jЕš„„Юž=ЫЁC‡Айlј|>nнКEcc#)))TWWsђфIbcc‰хвЅKF‘њЊИТТЗѕу–––‚кттЂЈ‘чїћ™ššцNЇЗлпя§R6 †„„о|ѓMŽ=JBB‡—Ы…еjХуёАКК*Ь4ІІІ˜ššТхra6›)**тЬ™3”——c6› фффˆЭнF!яQ(B^__‹‹‹„B!|>уууbLрOщкJЭМХХEp8ыœv_дyЄбhАлэDGG“’’Bnn.љљљмИqƒ––ЦЧЧijj)бЇOŸІККz]дЅLcћўQмgлллЙ{ї.їюнЃППŸЙЙ9a~Аwя^ŠŠŠ(--ЅИȘ={іœœŒйl^'8?K“Šg‘b‡™˜˜/T*ЙЙЙшѕzœN' ј§~ЌV+IIIФФФˆ—333,--сїћ1›ЭТawГЙщёxp:8<>ŸP($œЛcbbˆЧd2=$v*§[]]§‹ŠŠТхr‰в‘)Ѓ‘ѕ9#SgCЁ ЬЯЯуrЙ0™L$''ЃгщXXX`jj јЖŒтиК1TўЋЌYKKKЌЌЌрѓљPЉT˜Эfтуу… ћМй*VЃб`БX0›Э$''“——GYYUUUtuuбббAooЏ0oghhˆЎЎ.***ЈЌЌЄДД”ŒŒŒus_ z‰фUA y‰D"йlмx*•;wю№Х_pѕъU†‡‡бjЕdggS[[ЫщгЇЉ­­%++ы•ј"Џеj‰‰‰ЁИИ“Щ„FЃ!**j]1єФФD222ˆEЅRaБXФБŠ0Їˆxсp‡УСЭ›7љеЏ~%"оt:ЈI‡YYY! ˆК|› Š`TQQAtt4ЃбˆнnЧh4ЂRЉDM?%Šbee…ееU‚С ƒЌЌ,вггEД…VЋ‘OZє=rУЋЄ".//SWWGCCУC›L—Ы%dЗлЧуyш:_4A+2RH­VнnЇЈЈˆВВ2Оўњkщююf``@DcЮЯЯsђфI!ЖМзњ" …D:zWW7nм ББ‘ЖЖ6ˆŠŠТnЗ‹tѓšš***ШЮЮЦfГ­3d‰\ћžХ§zк4бHТс0< ЁЁ™™4 чЯŸGЋе2<|˜ЂЂ"!fKУ‰DђЊ …<‰D"‘ь:ГГГдззѓЫ_ў’ћїяуt:БX,фццђс‡ђж[oQPP№Pў—љ‹ЛZ­FЏзcБXжE‰E^ГС`Рh4ЂVЋ…XЖ• ™ššтЃ>тЦ8’““)//ЇЊЊ ГйŒпячоН{\НzЇгЙюѓлSЂ^OщŸRЯnЋkŠќ]ЄаЇ С`@ А-s‹}лx~ЕZЩdiХ‘(›rН^/Ž•6^d6і_ЃбУЩ“')**bџў§|ќёЧдеесt:љц›oallŒПњЋП"++k]tм$oЮV"яf?W"ЗVVVфвЅK|љх—ДЗЗуp8аjЕX,ђђђ8zє('Nœ ЊЊŠддT1o7V|їуYЕ …hkkуГЯ>ЃППЕZЭќќ< єїї3??/\ВїэлЧ™3gШЮЮц“O>ЁЙЙ™ЅЅ%!іЇЅЅёЗћЗќ№‡?$''Gœ#S__Я?ўу?вббA0§WжН^OAA?љЩOxћэЗ…i@{{;Ÿў9нннЈеj–——q:єїї311!^fФЧЧsњєi~іГŸёњыЏ‹sј|>†††јЭo~УчŸЮ№№0^ЏW˜‘dffR\\Ьмм7oоDЅRQQQ!jnG4u8477ѓы_џš[Зn1;;K XЗоЧЧЧs№рAоџ}~јУb6›Й?/6ыbиГџ~JKK9{і,­­­|ѓЭ7\П~ССA–––hŽп˜Ы IDATllфіэл|ѓЭ7œ?ž3gЮё7r]—†=‰фeE y‰D"йUƒAњћћљђЫ/љЧќGFFF№x<ЄІІrтФ ~ђ“ŸˆШN'ПЈoрIЦ" ВММLoo/kkk jjjјџс?PUU…JЅbzzš@ РѕызлоЃъеmеWЅКNЇУуёаййIoo/6›MЄONNвммЬмммЖкŒќЗтdl6›YZZ"==џяџ=Фl6?єYE44™LЄЅЅЁгщЖ}=/ ‘ї(11‘7оxƒќќ|***јшЃ ППŸ>њˆЩЩIўњЏџš§ћї# Ь?#}}}дееёЧ?ў‘ццfVVVX[[УfГQTTФ‰'8qт………ТМтYFЩэ4‘bR(ЂООFƒJЅ"::—Ы% q&&&АX,LOOЃгщ„љŽ’џщЇŸ’MRR’ˆоUž_“ЩDII yyy"eunnŽоо^КЛЛщььф“O>Сl6‹ЕaГў]О|YМˆ‰‰auuЏзЫтт"Зoп&!!ЪЪJbbbаjЕŒŒŒ№љчŸѓЋ_§ŠЅЅ%|>zНГйŒVЋevv–ЙЙ9QV@щsЄћ('X—ЫХЭ›7љ?џчџPWWЧккiii’žžN  ЅЅ…ббQЎ^НЪТТzНžГgЯŠˆП%:11‘ЃGR^^ЮлoПЭЕkзhhhрСƒ,--бооЮфф$Зnнтѕз_ч­Зо"''GМxxQŸ‰D"yRШ“H$Щs%ђ‹ЖВљђЫ/љт‹/шяя`џў§œ9s†7оxƒ}ћіaБXvНСNђ4BІ-Ђl‚WWWq:ј|>\.MMMмП_дzкŠяВaRЉTdff’››KKK ГГГєєє№Ы_ў’––’““…ИзааРТТТ_›С` ЂЂ‚ццfІІІXYYЁЕЕUЄY,BЁ‡……FFF№zНdggГoпО‡„“—M4Vвк ‰ŽŽ&..Ž/ПќRдЬЛ|љ2С`?џѓ?чЕз^#!!a]­Ўg1/лј>JŒ ,..rэк5Ў\ЙBSSCCC,//cГй8pр‡ІІІ†ттb‘2И™yХ‹2V[нпЈЈ(N:Eyy9~ПŸK—.qїю]<ГГГ„B!Ž;ЦkЏН†пяЇЉЉ‰њњzVVVшыыcxxЇг‰йlw 66ЃбH\\zНžp8Ьввїяпчўс˜œœЄППŸЮЮNцццАZ­›Fћj4Ž9BUU6›Ојт &''™ŸŸЇЇЇ‡ЩЩI, ~ПŸЎЎ.ъыы™ ААššсŽ=44DCC"vcT№ЃP ŸnпОлэІИȘ>ј€#Gސ@0ЄНН>њˆ›7oвггУчŸNII QQQEЏяV"з•†=iiiTVVвммЬЕkзhoogqq‘;wю0==MGGgЯžЅІІ†ŒŒ qџ^”gF"‘H‡ђ$‰DђмиXМЛННO?§”ЏОњŠююnДZ-еееœ?^ЄšLІ—і‹љуRѓ6ўwГЯmЖйŒ”лXpмfГQRRТШШЫЫЫєѕѕёoџіoДЗЗуvЛ™žžfrrђ‰œ7ѕЖ*ОŸ˜˜ШЁC‡фкЕk,--QWWGOOбббј§~fggYYYљNbЁNЇЃККšЮЮN–––ЇББŸЯGVV–иФЛнnцчч™œœ$::šгЇOsцЬ™W"ЂCЅRa2™иГgЈЙhЗлihh`ttTD&…B!Ž?N\\м+1.OЪV5Р–——ркЕk\Кt‰жжVцччбыѕ”––rша!>Ьў§ћЩЩЩСjЕОД5Пдj5•••МѓЮ;дддˆ:œ===ТT"##ƒџјЧддд 1tuuБВВТђђ2 x<1?„;vgg'^Џ—@ РккЃЃЃQ+sfffKѓ•JEYYяМѓЧЧd2122"jхЙнnXXX  ŠщююnBЁ6›'N№о{яQRR‚С``vvЋеЪккwяо]wЎэ088Hgg'ѓѓѓ"šыЃХbСjЕЂгщDюШШiii/ŒЗйп>%хжbБ’’"\›Йџ>}}}єєє055ХФФУУУ=z”вввuF"2‚_"‘М,H!O"‘H$;ЮЦ Ў’.ѕйgŸ‰H<‹ХBii)?§щO9uъщщщEЅМ _ШU*:Н^FЃбs№ЇM‰FЃ†:NдKR>Џеj1 шѕzєzНˆбh4"ЕrllŒžžјњыЏЙyѓ&ббб”––’žžЮььЌ"Ѓ!#лWЮПQчЯŸ' qѕъUІЇЇЙzѕ*jЕZД …ƒЈеjŠ‹‹E=ЌШˆМ—eО=JpJKKу7оРnЗХ… ˜хвЅKРЗQTЧц%ЯbcќВŒыV„B!цччE­Џпџўї ЃVЋINNfяоН?~œ3gЮАgЯ!рEжР{йЦHЃбp№рA***ШЩЩaaaттba^aБXШЯЯчфЩ“ФЧЧЃRЉШЩЩu,}>kkkымГ===дззsџў}&&&X]]% ‰—E‡CдсєzНЌ­­mк?ЕZЭСƒ9tшyyy„B!ЂЃЃIOOЇ­­MИ+юоŠГэтттКb[\\ssstttpяоНuч{м§ ‡УЬЬЬˆHE•JХТТѕѕѕ~ПŸщщiІІІ№x<лrЦнml&d[­V ЩЩЩaяоН\П~њњzu]__Яјј8cccœ?žššl6›(“ Х<‰Dђ2 …<‰D"‘>žмм\€u5Ÿ” KBBYYYиэvттт0™Lт\БББМѕж[h4._ОLWW.— ЋеJMM ЇOŸfll Зл-""l6›ѓ4 ЉЉЉdggуїћIKK[чrЊRЉˆŠŠ"33­V‹VЋ%!!a˜““УћяПOzz:.\ ЗЗЗлеjЅ  €уЧ3<<Ьoћ[fggQЋеТаCI Uк7™LЂЪцOЏзsфШ2228pрзЏ_і•bєJ$Zbb"ЅЅЅ”——?і~Н,_ЄX‡Блэ?~\~|ійgЬЬЬpщв%‚С ))) бхYЇиnмМGіѓECIыМtщПћняЈЏЏЧсp зыйГgoМёяОћ.•••ыФб—]lPЋеb­ ‡У" ^YпF#БББФЦЦŠŸ)Я{фEЮл№џўпџуђхЫИнnєzНXядj5>ŸЗл-ФПGеєTЋеdee ЇьШЪкЂ–("aЄАhЕZБлэЂ~Ÿ‚Эf#&&цЁgn;ЎkkkBx ‡УtwwгззїP]Pхїƒp8Œзы/&^6{YЗY”ž^ЏЇММœММ<ЊЊЊјъЋЏјф“OЄЏЏщщizzzјйЯ~ЦЩ“'ILL|)kžJ$’W)фI$‰фЙ2==Э•+Wјх/ЩФФƒз^{ПњЋПтЬ™3ы6B/ѓЦv3ДZ-БББќЇџєŸpЙ\„B!,ЫК IVVљ—ЩйГg ‡УФФФ””$к0™LќєЇ?хЭ7п$ еjЩЭЭХРU*‹…sчЮQSSƒУсРяї P)B_UU…ЯчCЃб––&мcbbјћПџћuЉ]ЩЩЩBlдщtђ_ўЫamm ЕZM\\ёёёЂС`ииXNŸ>ЭСƒзŠЗX, ўЧџјЂNŸт\ЉlЌ?N~~>kkkЂ‹ЛkЕZВВВHLLфјёу,//Џлр*mEEE‰єДWХ=Д  €џјџ#.\iЩVЋ•ПћЛП#//Н^џНѕ#Ќ‹œ|‘PмЗѓ›п№Х_аооŽЧуСbБpцЬо}ї]jkkIMMујВ x‘ltRнјoFѓCяV‚W рЦт%€нnчдЉSќ№‡?$##NЧрр џѓўO:;;ŠФлlЬ#ћїИћЂгщ0 NЇ“ХХE<ЯКЕHqъUЂъЖ‹ђBDЯU*UUUnidЁŒaii)‹eлчкM^Ѕ/нЪFCЇг‘““#ŠБЋеъu)BFЃ‘ддT!о)цЪч•ˆОЄЄЄu‘ ЪYIлГZ­˜L&RRRФцI9бhФfГ­kSI_ещtdgg?дПШДKГйLaaсКzG‘}ІЇЇ—Ы%œ&ЃЃЃ ЬЬЬаккЪѕыз™ŸŸЧl6“••ХО}ћDSll,бббѕo#:­V‹йl&!!ADг(у F‘Q?Ъя^f6‹„SЉTFrrrјёŒЯчуќЃHГ-((рwо!77їЉDЖЭъ=К\.ЦЧЧ!;;›ЬЬЬ‡"›vЃˆмn7ННН|ќёЧ|ѕеWєїї …(((рьйГœ;wŽ’’туу_њ(ЁЇy~”ѕicаЭ~ЖАА€лэ&cЕZ9x№ ЕЕЕ$&&ВДДФРР‡cSc‹­jxnїЂЃЃINN&>>—ЫХЬЬ ѕѕѕиэvБVsщв%:::ОЫP––FjjЊ“˜˜Ž=Ъў§ћ…РпŠš‡У!ждн/ ›ћfЅєz=ЩЩЩджжbЕZЩЭЭхђхЫДЗЗ344ФПўыПтrЙјС~@uu5QQQЏDфЋD"yy‘BžD"‘Hž С`ЎЎ.ъъъhjjТчѓQ^^ЮљѓчEZ_$Џъ—m•JѕP‘ђШMЇZ­оTДŠFŠGJЭК““C||fffшъъЂГГ€ттbNŸ>MaaЁЈЫЗUП•і#QЂTчzМTЗ—uNFŠАFЃ‘§ћїГААРЪЪ /^dllŒ .žžŽнn'>>ўЉEЯP(Фђђ2ccctvvrяо=l6›H­|Q6м*• —ЫEKK .\р“O>axx“ЩDee%ЏПў:чЮЃ  @Є|>MнЯe\6cГДЩЧћЈпЧФФˆЕШыѕ200@KK VЋ•ёёqЎ_П.jф=i•oЕ.X­Vђѓѓ)++c||—ЫХЕkзp8" }llŒЛwя2::КэѓG’››Kyy9ЭЭЭBшюшшQкjЕПпУс`ff†љљyt:ЕЕЕ­Л™эЬ‡ЭцНVЋХnЗ‹К„ ќсрЮ; №х—_ВЖЖF(таЁCыJ@H$Щ‹Ц‹ГЊK$‰фЅbyy™ызЏs§њu‰х7орфЩ“dggЏ;іUќВ§Јk~VпЇщЧГьŸт"йжжFKK‹HЉ ‡УƒA‘2œ››ЫЉSЇxћэЗIHHxъ>lЗ/;‹z1›Э>|˜ХХEЦЧЧЙuыїюнЃЁЁььlьvћЖЂђ6 VJm1ХЙЃЃƒІІ&šššцч?џ9бббпkњюГ RФєzНtvvђћпџž?ў˜l6еееМѓЮ;œ;wŽœœёЙЇт^чрЭ\Е7K“нЮѕluŒ’Bš““Удд‡ƒ?ќсŒa4 ,// ёџqЮкKхнˆбhЄ  €з_ОО>ЦЧЧbllŒ+WЎˆdЃбИeцЃЮ‡IOOчЕз^chhˆK—.1::ЪЧLss3ЩЩЩшt:VWWY\\dffЏзKQQіgFbbтЖЎуEdcMЭЈЈ(ЪЪЪФ‹FУƒтјС`PfМЪЅ;$Щ‹ђ$‰DВу„Уaz{{Й~§:}}}X,***xчwШЫЫ›љХње 55•šš<ггг8QЯjЕ’œœLqq1‡fпО}$''?я.ПR„Уa8rф333tvvтt:ЙqуEEE‹дцШчіQ"H0dmmљљyкллЙxё"єїї ),,фЕз^#--эЁЈЕнJ(bllŒп§юw|ђЩ' a08x№ ?џљЯ9uъдКкЏšиЌDя*bжЦvХ}ZЉ5З1ŠL­V‹пымЏеj5GŽattЗлMgg'ѓѓѓдееMMM 'Nœ@ЇгсѕzqЛнЂќ)ђXi?В|€‚rŒr J‰х˜ŒŒ ЮŸ?ЯъъЊ0]№x<Ђжc^^………ТYUi/ВЬFЃСh4Š:Ѕ‘ЙЩdтрСƒ˜L&ЂЃЃilld||œЛwя>фpЌгщHHH ..nн8Н,<юхƒFЃ/вввј_џыqыж-FFFјьГЯ…BќЭпќ yyyЯмДG"‘Hv)фI$‰dЧY]]ЅООžоо^|>йййќшG?ZїЅZђъ™™ЩћяПЯщгЇqЛнј|>Q ^Їгa6›‰‰‰Сl6яњшЌ—•p8LZZЧЇББ‘†††††И{ї.ЏНіxlЪ&йяї366Ц;wИrх 7nм`jjJ8ŠІЄЄ№ц›o’ŸŸПыkу)ƒAПљЭoјуџШшшЈЈгіЗћЗTWWcЗлŸw7ŸjЕš§ћї ёVЃбАwя^q YYYќф'?aqqЛнNYYйК6rrrxяНїЈЊЊО­ЇjЗл…Я‡~HYYmmmТ<);;›ВВ2ьv;‰‰‰TTTрѓљ())%T*ћіэуУ?dffЕZMIIЩКкr†cЧŽ‡Ус ))IИe‡УaДZ-™™™ќќч?ЇВВ’ЮЮNfff…BФЧЧSYYЩтт"Ÿ|ђ‰шГbцЃVЋБлэœ?žЂЂ"жжж(..^їв"c6›йП?МѓЮ;єїї355…гщ$ Ёзы1›Эиl6’““ЩЭЭ%11ё•ЈЌV+ЕЕЕРЗ‘Х—/_fnnŽO?§”ииXўт/ў‚Н{ї>Жд‚D"‘ь6Є'‘H$’%3::JSSгггиэvЪЫЫ9rфVЋu]}.ЩЫMЄЁ‡нn'&&FЄвFІ+ne^!љў‰Œ„SФ–ѓчЯгннЭии}}}мЛw§ћїo™^ЋRЉ…BИнnЦЦЦhnnІЉЉ‰––†††˜ŸŸЧчѓ Ё"//з_]Єьюіѕ 3??ЯХ‹љъЋЏ"::šƒђяўнПЃККšИИИWzЋT****ШЩЩСчѓЁRЉHNNЦd2 Г‚ььl~ќууїћбщtТ[љМ"фyН^тттАйlт†ффd, x<дj5‹…˜˜4 oНѕЋЋЋТ\ЉяЈy™™™ј|>RRR0›Эыъ*ц@@,(ЉВkkk,//ГДДDaa!{іьСяї‡1 „Уaклл§ЭЭЭХfГЁRЉАлэœ;wЧѓPџдj5QQQЄЄЄMQQЋЋЋт<Šй‘Yh6›‰ŠŠкеЯЯї‰Z­Цd2QUU…лэF­VѓеW_БААР—_~Ibb"fГ™ммм"ъW"‘HЄ'‘H$’% ёрСњњњpЛнS]]MffцKяо(йХ-іQEйЗЊЉѕЊnRwЕZЭfЃЖЖ–Я?џœљљy&&&hiiayyYˆ%‘ї) сp8ЅЃЃƒЛwяŠчnnNˆ& ЩЩЩTWWSVVіТDч:NZ[[љЗћ7zzzPЋеTVVђСpтФ 1.Џ"‘s!>>~]jqф1jЕЋеŠеjнВ­шшhЂЃЃ7m_YДZ-6›mРIVVж–эЧХХЗeћ*•Š””RRR:F19iooчќ#ЄЄЄˆ—S^Џ—оо^.^МH__zНžєєt<("ц ™™™›Žв‡Hgю˜˜bbbЖМžGЕѓЊЁЌ[^Џ‡УСЅK—шыыу›oО!11‘„„,Ы+=F‰фХB y‰D"йQBЁЭЭЭЬЭЭЁRЉШЪЪbџў§Fљ%z<УхNДї$<ю|чУЃ\#%;ƒС` ''‡ввRz{{™ŸŸЇЏЏщщiЬfГђ‡ЉЉ):;;Й}ћ6ЗnнЂ­­••BЁаІmpфШтттvХ:№Ич# 2<<Ь•+WИvэ^Џ—’’Юœ9У›oОIllьNvї…d7мч­иЌo›­K№­Sn?ПўѕЏIII!99›Э†Z­Цэv300РддЁPˆќќ|NžНU[пЧK‹Ш6Ѓ ЃбШ№№0§§§ы~ЏDбpњєi>ќ№C2220 пљœ№єфЏژЅЅЅqњєi†‡‡љѕЏЭддЗoпІААттbaТ"‘H$Л)фI$‰dG ‡У уїћIMM%%%х‰вƒ$ЏЏКВлPЋеdddˆКo‡ббQ<ГГГмЙs‡ЋWЏrѓцM&&&pЙ\ј§ўЧЖ[XXШоН{18Ю‡™­цrœNЇУ`0ьhkOO7oоЄЗЗЕZЭсУ‡9uъљљљ;жЩУ<КŠvЛуЧѓпўлcbb‚ЅЅ%VWW ƒ bccЩЬЬ$77—ЬЬLbccYJ@ђьQЉT$%%ёс‡вжж&жЎЋWЏrцЬђѓѓ_˜”~‰Dђj#џzH$‰dG ‡УЬЭЭˆŽŽЦnЗ 'R)д<žg=FO1ѓ}ѕa+d*эюD)ЬƒNЇcee…{їюсёxЄЅЅ…сссu&лiszzš‹/вййљD§QЬЪЫЫ9vь‰‰‰пѕв6эзVчєzНCЁNЇ“……‚С ˆzINNFЃбˆkSRиž“Щ„нn'::њЁБ}еxвы^[[Учѓ БZ­джж’––F{{;ЬЯЯЖЭЉVЋIKK#++KЬнЭњЈDе(shdd„ЁЁЁuBѓїM8& бззЧЬЬ С`ииXjkk‰ŽŽ~щцаvФЏ—AиПџЛ™нэ™bMQQYYYєєє099Щрр %%%ыў&H$ЩnD y‰D"йQT*qqqј|>KKKј|>Q'OВ}М^/WЎ\сWПњГГГЈT*:ФЛ шsB IDATяОЫ‰'№x<ќц7ПсыЏПfyyј6тщѕз_ч‡?ќЁpUкЋЋЋуўс˜ ІІ†їо{“'OАККЪ?џѓ?ѓѕз_ГДДєPŸ”h9‹ХBFFeeeдддАџ~t:*• ПпOOOџѕПўW&''ёћ§фххёж[oё“Ÿќd]{ЫЫЫ\Кt‰_џњз,,, зы)..ц?џчџŒнnчЃ>ттХ‹,,,OёtрРоџ}^§ѕ'јWœp8ŒгщdeeŸЯGll,UUUќр?`yy™[ЗnQWWGSS лYУс0йййќшG?тиБcлК‡гггќіЗПхЃ>Туё<‹Kл6@€ССA&“‰ддTВГГХпLˆ”ѕП?ЄЗЛй­s?++‹ЌЌ,aк366ЦЪЪ А~NэжўK$’W)фI$‰dGQЉTdff2??Ятт"333ЌЌЌ`БX^šЈŽ" 1??OWWSSS$''уt:DъщФФ]]]BьRЂ—’““ЩЯЯЎСсp˜……КЛЛ™œœ ))щЁі&''щъъb~~~г~)yэээ477гммЬ{яНЧБcЧАлэЂNbOOЃЃЃЂžкЦі”ДЭЙЙ9zzz˜ššТ`0`0X[[зІD€)з |іqиlЖMХHЩж(бhууу,.. 1›ЭьйГ‡””222HJJЂММœ––nоМ)Rж%Ж)5ђfggБZ­ФЧЧ?Ж/:›Э†Z­~–—И%Ъм …Bј|>fggёx<˜L&‰‘ЇЯk “kшЃy•ЦхћŒ€{YЦбnЗ“@TT.—‹ййYмnїC/„^–ы•H$/RШ“H$ЩŽЂVЋйЛw/]]]8NЦЦЦ#%%хywэ…CIuѕzНЌЎЎˆTхШDПпЯъъЊ8 ЛЛ›ццfЊЋЋЉЎЎэuэ)‚Yd”‘пя_wL||ц‰Dђ8Є'‘H$’E­VSQQA]]+++ŒŒŒаббAEE…00lHУ?пьИH–——ikkуіэл”–– ЇХЧnц‰Z­&??ŸГgЯ’““ƒпяgyy™›7oвдд$НЋWЏrђфI222ЖmЕеѕDіOЋеR[[KJJ ^ЏWгййI]]ђt:‡ЂЖЖ›Э&ŽKJJ"//OІM=‚›ј@ Рьь,mmm,..Cvv6iiihЕZБŽŠŠ"##ƒддTЪЫЫЉЊЊтцЭ›мМy“ўў~цццpЛныФ[—ЫEWW7nмрР˜L&qоЇqg~VD> ~ПŸ@ @(BЃб зыEZэѓфiЮџ4ЂкгИН>kuюs&  …ФKЭЬ‚”Я=э˜ь4[Ѕx?ŠэŠvJWŒŒ”џЏДЅVЋбh4›ўMy^cЄVЋбщtТЅжяїЏ3a’H$’нŠђ$‰DВЃЈеjЊЋЋЩШШ`ff†ббQšššxћэЗБлэhЕђOггђИMˆВiІООž7оxƒЌЌЌmЗЛQXЫЭЭх­ЗоЂЊЊ јv3TUUХџяџ……VWWY^^ІЋЋ‹#GŽl*фmзiRйpУЗ]UU•8ЏТеЋWЂЉЉiнq?њбHLLмД§ч-РeggSUUEJJ  тrЙЖ5F‘$&&rша!тттЂОО^œ#++‹ЊЊ*RSS?E`ЗДДˆc TVVЎћЛйgEрЪЪЪЂВВ’єєє‡ЦРщtвййЩƒшььdll Їг‰пяG­Vc2™ˆ%++‹ТТBЪЫЫ)((Рl6?зш7ПпЧуe"L&zНў•Б#‘Hv?RШ“H$ЩŽcЕZ9rф<`zzšббQ>љфё%пh4Ъ(Љя ЕZMaaЁ0­˜™™стХ‹>^ЩŸŸŸЖЯKШ …B №Лп§ŽоооMQ"Ч, ЩЩЩѓЦoP\\,вЮƒС uuu\П~]ЄЇolCЇг ЗоъъjŽ?ЮО}ћФЫ•J…гщЄЅЅ…_ќтлъПZ­ІЌЌŒффd!ф ѓЯџќЯТ|gc?QеnЗSTTФщгЇЉЎЎ&))IйЗААРў№Ў^НJgg'sss"z,Ѓбh0 ˜ЭfЉЊЊтєщгМікkФХХ‰—УУУ|ійgДЖЖ““C8ІДДTš*• ЗлM{{;ПјХ/D?Ž;Fzz:III444P__ЯЬЬЬ–їk+МАА””ŒF#ыЮqєшQвввHKKО­zѓцMўщŸўIЃбh8tшZ­–ЃGŠЖ=ќтПBо‘#G„™Mф˜z<†‡‡ЙpсЗoпfpp……мnЗˆШSцœ2Ўqqqœ:uŠПќЫПЄДДtн}кЉ—№э:ёx<ЈT*DJџѓN–H$’G!…<‰D"‘ь8Z­–}ћіQUUХаа###444PQQХb!;;{Чœ(_tžДN˜JЅuъКККИsчїюнуюнЛB0yвѓЯЭЭбккŠЯч# тvЛЙ~§:нннxН^‘‘••…еjнжuHv–ЧЉw:мПџџГwцбm]їџ@,ФB€pwRIQ"Љ…Ђ$k—э:Ž];‰­ј$M›і4mЇ3ž.ЇI'“i'™Ж“ЮœЬЄ3ѕ™žі8iу4vj[Nти–dэ;%Q”Ф}_С $Ю:я€HŠкЗћ9$№№о}їНwћ}ПпяЫG}DOO*•ŠЕkзRYYIRRв’“о…ъІ !ц)І.\рТ… 455бжжЦ… p8ЫJћОŸ(BVzz:FЃ‘ССAqC")) ЕZ}пE ЧC[[зЎ]nЌІЄ”ТѕBџJ­У—_~Yд% …Bєѕѕбдд$&EˆQвA•tWН^Okk+>ŸГй!ъ*Т™вe=fAБ366Лн.ъ]†B!М^/ЭЭЭtvvПŠТS"•šfjЕšњњzЦЧЧ‰‰‰aЧŽЂю'\'јшЃјз§W._ОЬии*• ЛнŽеjE­VуѓљІЋЋ‹žžz{{…;ѓž={DLNNвоо.іmnnŽбббі) 2::ЪЕkз""ђ|>ѓѓѓŒблл!T*)ЊсФJ:jxЭHГй,L‚FGGЉЏЏˆ ›ššЫ"кЁєqVVeeeB„ƒŒQ__/кžžЮдд”8ч”4ћњњzо}ї]>ўјcZ[[ёzНh4l6VЋUм” LLL022Boo/vЛ]8пN-ПЛХРР}}}ƒAтууqЙ\$$$<а6I$ЩrBžD"‘HNЇ“ъъjкккшыыЃЛЛ›§ћїcЗлIHHРnЗ?ХАGЈЈЈ@ЋеRWWЧРР‡&--™™™[ъыљљyšššјЗћ7l6sssx<Ў^НЪРРsssFVЎ\IiiЉp‰]l]сЯс“VyќoŸлНŽ” ћЬЬ WЏ^хРœ/•(ГЄЄЄEзЁЄg+c" ŽŒŒаннЭЇŸ~ŠЫхbэкЕИ\.Б‰‰ .^МШ›oОЩХ‹ёљ|X,ђђђиИq#йййhЕZ!ˆ:uŠžžККК8pрѓѓѓфффˆКб§]oЁcЂˆbс5‹ŠŠDDЇТјј8 BD‰‰!??ЇгšMrrВшЛиииˆZo EФ†ЗЎ;EŸRU*ƒДД4JJJЈЊЊbѓцЭX­жˆњQс.ˆJЛТQо 7ЏP"Enх\чЭэ177ЧШШ?јСјљЯNgg'fГ™-[Ж№т‹/’}зћ6&&ЃбHii)yyyЈеъ‡VаЯШШ`хЪ•дддаооЮ™3gИ|љ2VЋUЄ?шsO­Vc6›q:BЗX,LNNrѕъUZ[[pЛн‹dРѕk<)) —Ы…Эf# Вџ~<С``0(Rb—BЋеbГй"jи…ЃD~-жo*• ЋеŠнnGЏзGD†)nЛ3337 ќ~?---дддˆ1&##ƒэлЗѓьГЯ’˜˜(ЖOvv6ћіэЃЁЁŸЯЧрр ууу>|˜Н{їb6›якq5™LхBЁVЋ5тœ‰‰Сd2‘œœбowЉЌ|vxx˜>ј€ъъъEKDгггCmm­ЈХУКuыxљх—йЙsЇHOUPъ2цчч“––ЦмммВDУ{ALЬu—пѓчЯSWWЧ№№0vЛ]дМ™щ“D"‘< H!O"‘H$„љљybccIOOgзЎ]Инn~њгŸ244ФБcЧ„ШГvэZ1ЙXhb|Ћ5т7nж‹Ёє}UU•ЈoT[[‹Z­^а!rБmЦЦЦВfЭvяоMVV–xM)@Ÿ’’‚УсРjЕFЄЪЊеj„А733ƒЯч# F|С`Ч#&рJ‘}E4\Ozпэ\@€ŽŽоџ}оџ}Z[[1Ќ[ЗŽЏ|х+DЄоnaјшх•џ5ˆТ{X…|ƒСРš5kИpсэээєїїѓёЧ зp'пеvE0LHHР`0DМ677‘rкЊє*•Š™™!о)ћЇзыБйl7нЯ™™М^/ Žн7s o‡JЅ" Eˆ:“Щ„С`Џy<zzzшщщЏeeeБjе*ьvћ лŠ'55•ђђrЎ\ЙТрр ~П_”P юбЕ`•єз…–Л›ŽШ111ТchhHЄЇЄЄ,K8яююІЃЃCдЭ3™LЌYГ†вввПЏ•0JФ{5&GGњ†ЃМ633Уаа ЕЕЕZMffІˆ"”ѕy%ЩЃ€ђ$‰Drп џ‘­гщШЫЫух—_Цуёpша!мn7‡`zzšЕkз’””$&1zrќИ`6›)**bЫ–- ‰šLбЉЏ7K‘LOOgыж­Ќ]ЛVМ^d?666т˜+цNЇ“ЦЦF&''щююf``€””дj5@€ЁЁ!š››…ћ­NЇ#)) ƒС '\w‰шыijjŠњњz>љфоyчˆЇЂЂ‚_|‘M›6a6›oшџ№Iћн@F!VШVЎ\IEE/^ЄГГ“уЧГjе*RRR"L:” …˜žžтќЬЬ эээ466211!–3‹І*f чЯŸЇЛЛ›‘‘ЮŸ?лэ& b4ЩЭЭЅЈЈшІћиббСЛяОЫЙsчnx/..Ž]Лv‘““Гhd˜ЯчуъеЋтFP]].\ŽГYYYbГйФgІІІa||\Мцt:qЙ\bЋ‚bЈ‘-в?gggadd„@ pпхНИђђђаjЕ\Кt‰ССAŽ9Bqq19997нПЁЁ!‘њ зЃы333III‰оggg ƒ"1ќJUDУ{йŽвЁPˆббQ>§єSNŸ>Эаа‡ƒЪЪJJKKбщtђї…D"y$BžD"‘Hю;бwЭ(//Чыѕ277ЧсУ‡щяячНїоУяї399ЩњѕыqЙ\ЕВЦ(Э­є‡JЅТщtВgЯЮž=ЫЕkз˜žžОхm*бu‹е<Š.@‡ЩdbеЊUœ;wЏзЫјј8WЎ\срСƒЌ^НƒСРииgЯžхвЅKј§~Q\™шK!яЮ‰vАTŒJ~ё‹_Аџ~Ў]ЛFBBkжЌсљчŸч™gž†%їък[,JяaBщ7—ЫEee%—/_ІППŸЖЖ6QoЬjЕb2™"j=оя}ёx}šййY:;;iii.ТлЗogуЦТLC1k™žž7рz™"\.fЌaЕZбщt"гчѓ155E0\r?яw*6ЭЯЯ“™™IZZ@ЗлMMM ЕЕЕЫJЏššбx111$$$`БXаыѕэъщщЁЃЃ#B4†ыQ‡ƒеЋWпзq\I)ћэЗiii†#O=ѕvЛ§†›N‰DђА"…<‰D"‘<0ТЃmдj5O=ѕqqqЈеjоџ}FFFxїнw`xx˜_ћЕ_#55U 8aDAР­Mю ызЏЇММЗл‘~Олi—в–…мЉЎЎц“O>abbŸЯЧхЫ—љюwПKyy9&“‰ССAЎ\ЙBCCѓѓѓhЕZВВВ(//Ч`0Ш знwѓѓѓLOOSSSУПќЫП№Щ'Ÿазз‡Z­ІИȘ}ћіБwяо'PЩuAЂИȘgžy†sчЮбггУЩ“'БйldddPYYyƒШНѓЂзнггУ[oНХћяП\Ў›œœЂ–Z­&;;›uыж ЧкhfffшщщІсзЖbdѓьГЯF‹ ™žž^А”(мЅjtNLLp№рСˆv(7ž}іYО№…/АzѕъЁ0 Eдй„Шж№§ ?>бЕ8чцц–lлНiяіuЇ8ЧЦЦrђфIњћћ9}њ4VЋѕ†Кh”>UPвfЃП›=Ъ~є#Ў^Н ќЊ“““йЕkЋV­КЅ2 ЗJxŸЭЮЮвммЬЯ~і3>“ЩФ[oНХ№№0gЮœatt”ŽŽіэлG^^žˆ”ˆŽіz’PDМhGз…DšХ&*•ŠФФDvюмICCnЗ;"ЕvБZCwъ"›@ee%ŸџќчyћэЗЉЋЋУяїгммLWWБББЬЭЭ133Уќќ<ёёёЌ[ЗŽчž{ŽѕызGlћfЧ]™p>iчЧbD_3ГГГєііrрР~ќуsхЪFGG1™LЌ[ЗŽпўэпfУ† иэіиъ‡›ЭЦ† xѕеWљЧќG9zє(:ŽФФD233яi]АpЂЗЁw^ЏWŒ—ЁP•J…Хb!//}ћіБmл6’’’\gLL ЃбШмм>Ÿ@ Рќќ<ДЖЖтvЛIMMНi З+VPQQУсыVˆ‹‹ЃЈЈ(ЂО]4ŠhЧєє4ггг"ZЎЉЉ‰оо^ђѓѓ#ъМЉеjДZ-FŒmSSS‹:t+у›ЧућЉд§дjЕ7˜є„ю^rЗЧЏљљyœN'‹…ЂЂ"ъыыЉ­­ХfГсt:—МaІє…‚пяЧыѕ"њ^IkМa_Њ“x7‰^w}}=яОћ.яНїггг$&&ВgЯvэк%ЂŒ%‰фQA y‰D"y D‹qŠ›ЊFЃСbБАџ~iiiazzšžžіюнЫЦЩШШ >>>BXz’Фš˜˜!(ЉЇ&“ ЕZ-њ$66ƒС@bb"ЁPHИЦХХ‰>SЉT”——Г~§z†††л0B„/lŸ˜˜Шмм*•JЌoЙ(ѕЌ, ŸљЬgАZ­œ>}šњњz˜ššbCBB)))Ђ–_ee%VЋuAБRщхsŠЅС`Тя“Lє5 …свЅK8p€ажжЦєє4TWWѓвK/QQQЭfчЬ“оY@ЅRсrЙxс…шььфаЁCєїїsша!ДZ-ЏНіљљљK Tї ГйLNNYYYЂvЅFЃ!11‘єєt )..&%%%bLGЇгQPPР+ЏМB\\ЕЕЕ;vŒііvFFF8tшIII8Nввв"Ю‘hб8''‡_џѕ_gеЊUтЕ№ї‡HЯ\‡УС+ЏМBFFнннœљ„K—.бййЩ№№0nЗ›ЎЎ.6mкDQQIII7ЄIEЏџqD­VSTTФО}ћ˜˜˜ &&†ќќ|233Х2†ЊЊ* SSSФЦЦRVVFrrВX&&&—ЫХоН{Блэ ‰їђђђ]Ÿзы%66–еЋWGЌOYчЭPЉTdggc0ШЯЯЮŸсBžбh$%%…œœВГГБZ­ЂсBEЭ].;vьdёёё”––.)<ЮD_JSKK чЮушбЃœ9s†ііvєz=%%%lнК•={іАnн:лkшnЁгщ(,,фз§з 9r„ЮЮNіяпVЋхйgŸЅЄЄ$BфИ$%%БeЫž~њi‘цЎдДДZ­$''пTфжh4BьБZ­фччЃVЋyы­З˜žžІББ‘'NPTT„гщŒHЇ^ЏЩd"''‡тттEЗЗ”Рc4йДikжЌallŒФФD<uuu qтФ 233YЙr%NЇSl355•ддTq“ЂЃЃƒњњњˆHг№šzджж2<< Ь/‡ˆю Џ%чїћёxТёљAKrr2;wюфиБc\О|™жжV—лRSSYБb…ј^ёx<джжRZZJJJŠk‹‹‹ILLЄЈЈˆЉЉ)ЦЧЧ™]АфТВxьѓљhkkуЇ?§)~ј!---шѕzжЎ]Ы‹/ОШъеЋ17хј'‘H6Є'‘H$’‡‚шс:Žќќ|, NЇ“ффdNœ8Aoo/ЧŽЃЇЇ‡––ЖoпNyy9.—‹„„„;ŽtxPњHЃбPVVF~~~ФDQЋеŠeДZ-лЗogгІMb™јјј&’†7ВfЭšˆ’…жЗmл66nмёZј27›є„ ЗqqqЄІІтt:YЗn~ПŸ`0(&е*• ­V+ъ(-gиэvvяо-–еыѕ"zѓQž”нIдˆт`:<MAA6lР`0'DМ'Npюм9FFFˆХjЕВ~§z“Щ$вO“˜ііv())!..Ž@ @[[MMMЂM&ЩЩЩ‹= eeeЌ_Пžўў~клл—L{ŸŸ'==ттb233ЙvэГГГдддрp8HLL$//Н^ORRIIIhЕZоџ§{Vп6њїC(brr’ІІ&>јроyчКККаjЕ”••ёХ/~‘Э›7GЄ“ЫБM"‘ЭіэлyюЙч(--%))щ†тйЋЁЄжF‹rсiEŠЃ таН\8бuZюVжwГЖ‡ЃЄќi4š[њмBЈеъзо/:Ыy”хццц№zН477sј№aо{я=Ў\ЙТддjЕЇгIuu5ЏНіхххиlЖe Ї’ыЬЯЯc2™иН{7БББЋдФЛйyПœЖ(зХbЁИȘъъjТ(сђхЫЌ_П~СёЎзLыээ]Д&™^ЏЧfГ-™†Ќмˆ%++‹M›6Бџ~†††„ЈxєшQ6nмˆ^Џ'..Žььlžzъ)>L__“““?~ŸЯ‡лэІЈЈН^ЯааgЯžхwоЁЙЙ™@ €Щd"//gžy‹ХBll,vЛ]дѓ›ššbbb‚sчЮ‘œœL0Фh4вггУG}ФщгЇE;NВВВ­Gј Pъ%юиБƒКК:zzz˜™™YtyХ=МММœ­[ЗвооŽпяЇЃЃC˜SэйГ‡мм\, ЁPˆЦЦF†††"L4юVjmєX8??/м™п~ћm~ќууёxаh4”––ђъЋЏђвK/E\ƒr|“H$RШ“H$ЩC‹ђ=>>^Єа–••ёо{яqьи1КККhooчЧ?ў1чЮcѓцЭlлЖђђr‘тѕЄ:lЪ‰ЩТ<Ю§ВИЇLj•ˆЉ#GŽpљђe†‡‡ X­VЪЫЫyњщЇйГgЉЉЉ"-юIНvюEЬлКuЋˆ=rфУУУ|јс‡єііђвK/ёєгOуp8D=Ы{Щн<ч•К›IIIькЕ‹cЧŽ мŽŽо{я=ВГГLŸŸЇІІ†ўў~!д…ŸЇБББ”””№•Џ|…uыж-Ћ=ŠQУ† 8x№ ‡ўў~Nž<ЩЅK—(//GЏзcЕZЉЊЊтЋ_§*?јСhoogllŒ“'OR__Obb"jЕПпЯшш(ЃЃЃЬЮЮЂзыЉЈЈр•W^ЁЄЄDмшHNNІВВ’­[ЗrфШ&''ikkу‡?ќ!D­Vуѕza||ИžМqуFж­[їаЄљ‡;єЎYГ†ŠŠ ZZZhoo_є3Š(œ——ЧK/НФии`ddЗлЭG}Ф™3gАX," кыѕвлл+"1яХ9ЏьЫаа}єяПџ>ЧŽcbb‚јјxЖmлЦч>ї9іьй#kІJ$’G)фI$‰ф‘@Љгd0p8”••qфШЮž=Koo/ѕѕѕ SWWЧš5kЈЊЊЂЄЄ‡УNЇ‹HщyдЃŒ–“Кz7жsЏ–Л,gлъёчfn™ЪћГГГ гииШЉSЇ8ўLOOчЯŸЦЛvэЂЄЄDDЇEKЗгїJоbџ/—шњhс‘Tp=sЭš5”–– WвББ1<ШіэлEнБhСfbbŸЯЗ`ŠeLL ёёё7ЄuF›P„ПЎRЉp:ькЕ‹‹/тѕz™žžІЕЕ•§ћї“––FzzК0$yёХбщt:tˆКК:щяяgppPмјQ\ВГГГYП~=;wюdЫ–-B|TоЯЯЯчЗ~ыЗHHH ІІ†ОО>ЦЧЧёx<ТuЎGІЄЄАmл6žўy –L1UŽYєО*§]ЉМ}ŒЊЙа:•хl6ызЏчкЕktuuн=НО„„JKKљнп§]VЌXСЉSЇhnnftt4ЂOУлl2™Алэ”””АaУ†E€oЦBQx“““477ѓѓŸџœC‡qэк5&&&АйlьоН›чŸžѕыз‹hc‰D"y”‘BžD"‘HZЂгНтттHLLdѕъеиэv233ЩЯЯчќљѓ477уvЛЂ­­ЋWЏВfЭJJJШЯЯ'==‹Х"&ЊгэнЈ›u+ы|ћшI% сїћqЛнДДДpхЪ.^МШЅK—шъъbffЃбШъеЋ)--ЅККšЕkз’™™‰бhМсz“Ч|љD +qqqиl6!VX,>§єSšššЈ­­Хчѓ100Рж­[ЉЌЌ$33ѓ–ъ@.Д혘ЕЌЄЖццц’’’rKћK^^cccŒŽŽb4YЙr%ёёёb{J:іŽ;шююBœзыХяїЃеjqЙ\TUU-{лТ$..NDŒІІІ™™‰йlBXLL fГ™ЊЊ*vьиA[[@Н^O `zzš`0H\\Z­–œœ>ѓ™Я‘‘A]]­­­Инn@„SЖнnЇАА5kжАrхЪњ066–ФФDЊЋЋбh4‹я ŸЯсюp8ШЭЭЅЊЊŠ•+WbБX–LuNHH ЈЈЏз+Ю%ЇгI||ќ‚Ыk47nЏ­\ЙГйQs6++‹ЊЊ*ёZVVVDd Z­ІИȘ;vрѓљ„У/@QQ‘ЈыЇœЃБББX,***0™LЌ\Й’њњz:;;Сяї …ˆEЋеb6›БлэdddŸŸЯЪ•+…qбrKD‹‰111LOOгллKmm-‡ŽЪљљљlнК•чž{ŽВВ2l6л=Ћг'‘H$ї)фI$‰фЁ'Z`PЉTddd’’BII •••>|˜šš:::pЛнtvvRSSCaa!ххх”——ГrхJьv;fГ­Vс~О~)`H6K›"ЏГГ“K—.qіьYQяjvv“ЩDff&ХХХlиАъъjrss1 ФЦЦ>ВТіУˆ"tФФФ`0иДi‰‰‰$''ѓЫ_ў’Ы—/гвв"зŽŽЖoпNVV‰‰‰h4šл2Лˆ‰‰!''GЄ;Тѕдг‚‚‚[jПJЅbћіэрїћбh4иэіЧ]EДлО};.—‹‘‘БЯйййЂоfYYПѓ;П,o|MNN&##ƒ˜˜4 +VЌ`пО}xН^Ьf3щщщ‘ЃёёёфццВoп>!ЪХЦЦЂгщ"jјU]=—ЫХ† шяяNйsssh4Ьf3‡ƒддTŒF#*•ъ†Ж+›еjeЧŽ”••бззЧРР‡P($ Bщщщ˜LІОsТQЎAЛнЮ3ЯŸ“ЩDaa!лЗoчЅ—^"//oAC&Y>@"‘<ЊФЬЫL"‘H$ї™ЛUм=ќЧјРРgЮœсрСƒ?~œ––сЉD†Ќ]Л–Э›7ГvэZrrrHLL\а!QF&I‹M2št*Љt@€оо^._ОЬЉSЇ8qтЭЭЭ"š'>>žФФD***иЛw/›7o&''GDї,5y~ищююцўсxу7˜œœфsŸћњЇJaaсƒnš ќrцЬўљŸџ™уЧ3<јр~ё‹_PWWЧииЧŽЃЅЅEдdлДi™™™ЈTзЊпЯуu/вї$wК ™&н+Г†х8 ?HюT˜Ннu„зўьыыумЙs|јс‡œ>}šОО>ІІІаыѕфццђТ /Аkз.VЎ\)ЂHхx'‘H7Є'‘H$’GŠХюаЧЦЦb0DRvv6UUUджжrщв%QЛЧэv3>>Ngg'gЮœ!33“‚‚ E-=ХСpЁШ‡№6H$w‹Ѕ"уBЁ>Ÿўў~Z[[ihh ООžццfњњњЦыѕCrr2Ќ^НšВВ2 IOOЧl6‹g EрШ‰юн'КOутт0фххёђЫ/“››ЫбЃG9qтѕѕѕtuu199Ikk+ЇOŸfгІMTVV’ššŠС`ИяуЮ­ж,ЛнˆЗлйі­ЌџNлВиЕЙмКnwГ-ЗКОЛmt+б€ЗГн…ЮЇP(D eЮœ9CMM ---ŒŽŽЂбh(,,dУ† lлЖ5kжD\3ђЛ["‘<ŽH!O"‘H$4б?дU*fГ‹ХBZZљљљЌ]Л–††Ў]ЛFCC]]]ŒŒŒ000@CC/^$==œœђѓѓЩЩЩ!--””, :NDЦШ‰€фNЙ™h …˜™™Суё0<ЅЅЅЌ^НšUЋVaБX"PЃлѕ$ŸЩЭъ–Y­V*++ЩЭЭeѕъе>|˜ГgЯвииШрр GхЪ•+†=EEEИ\.L&Z­V•„Џїv…œ;qЫ}œyмїяvЙТcД =??ЯЬЬ уууєїїгддФ… 8yђ$ LNNЂRЉАлэЄЇЇS]]ЭЖmл„“Н"р=‰пE‰фЩB y‰D"yЌXЈЮP\\fГГйLQQЯ>ћ,­­­дддpцЬ.]КDoo/“““єіівееХбЃG1ЄЅЅQXXHYY™ˆzJIIСd2ЁVЋ‰НщнџЛ-в=Ž<Ш‰зн=KЙ‹N…BЬЭЭсѓљЁЋЋ‹††ъъъЈЋЋBГтТ‡NЇ#99™ќќ|ЊЊЊXЗnиэvДZmФњo'ѕOro‰ОщKRR[ЗneэкЕджжrрР8РЕkз№x<œ8q‚ššœN'kзЎeяоНЌ]Л–ŒŒ "".яeЄоНцQiчнцnьї§L5ОЬЯЯ ёљ|єііrђфIŽ?Юљѓчioo'їлœœЊЋЋyц™gXЛv­ˆ:–Юл‰фIB y‰D"y"ŸиšЭfJJJШЩЩaЯž=tvvrхЪ._ОL]]---x<М^/ЭЭЭtvvrфШЌV+.—‹œœ ШЫЫ#''ЛнŽбhŒR$’…P&Ћ###twwгввB}}=tww3::Ъфф$@€`0HLL fГ—ЫХЪ•+)--eеЊUфххсrЙD„h\\œЌsїˆЂЎƒђђrВВВиЖm'OžфгO?хъеЋ гннЭрр чЮ#??ŸВВ2***(++ч‚0$счщєєДHŸ={і,ЇOŸІЕЕ•ББ1ІЇЇ …Bт;{Ы–-lкД‰UЋVaГйˆ7вd­O‰Dђ$!…<‰D"‘yyyЄЅЅaЗлILL$!!FБнGНOŸ4Т…EЬгщt8L&щщщTTTP[[ЫљѓчЉ­­ЅЋЋ‹оо^ЦЧЧinnцјёуфффP\\ЬЊUЋШЩЩСсp`4#вџovnШH&ЩнdЉѓM‰BvЛн455qѕъUhmmЅЇЇ‡ссaІІІащtdggSTTDyy9ЅЅЅчїBпЋђќ•H$O RШ“H$ЩKLL *• ЃбˆбhФщtRPP ЛЎЎ.:;;щььЄЋЋ‹ўў~цёёё˜L&’’’HII!99™ддTœN'vЛЄЄ$’’’DjЏ^ЏG­VЃRЉ–ЌГїЄMЌou?яЖhuЛю“ѓѓѓЬЭЭ1;;‹пяgrrRsƒƒƒ 200@Пp˜bll ŸЯЧмм:ГйЬŠ+p8ЄЇЇ“‘‘СŠ+ШШШ 55ЛнŽ^Џ_ашрfЉМOЪ9є(ВаБTмmF#.—‹ММŸH‘аыѕX­V’““q:ЄІІ’––FZZЩЩЩX,Ьf3:N‡VЋEЃб RЉˆ‰‰YЖ‘Цн(Zџ xXкЖ!CЉН …„ЃЌпяЧяї3==зыe||œЁЁ!шээЅЏЏОО>њћћСыѕPЉTФЧЧЃгщHMM%11ЇгIFF999фццFЄkk4šEЭ\ыУ‡Ѕo%Ы'њ+ЏiЕZ233IKKЃЂЂ‚ŽŽjkkЙxё"ѕѕѕ"ЛЉЉ‰ЦЦFєz=‡ƒ‚‚с^œ••…УсРbБ зы‰'..."%1Н'Й”›@ŸЯ'ЦЦОО>Ў]ЛЦЕkзhjjЂЋЋ‹ёёqT* ЄЅЅсrЙ(((`Эš5ЌYГFИ;/е.‘H$O"RШ“H$ЩЭB“XЅНJЅТd2a2™ШЬЬdѓцЭLMM‰њfѕѕѕ444авв""d<@€žžКККФњєzНˆмsЙ\ЄЇЇ“’’"RrN'&“ N'RrУ4юФ%w!БъQŸ„пЊјp32ЂPžƒС ~ПŸЯ'ЂJzzzшююЂ]x ЖпяgvvVˆВЪЙ”˜˜Hbb"iiidee‘——ЧЊUЋШЯЯЎШJКlx[Т#ю–кЗшїѕcќ$qГѓWЅRaГйАйl”••ёмsЯбддФљѓч9uъuuu 055Ess3ќђ—П$))‰мм\сj\XX(d­V!ш)лŽЎ5&SЖ_nї†QєwŠ2N)бЩєєєаииШхЫ—Й|љ2 ˆ‰‰ц=NЇ“ттbж­[ЧКuы(..ЦjЕ ib!‘H$7"…<‰D"‘HЂXJ$выѕhЕZьv;%%%LMMсёxЄЛЛ›ііv:::шшшѕ~|>~ПŸ@ Ршш(mmmЈT*T*zНЃбˆйlЦfГ‘’’‚УсiК)))X­V, ƒјјxтууQЋе2"ы. ™™™avvŸЯ‡Чуatt”ЁЁ!†‡‡EzlxM;ЧУдд333ƒAfgg™››# ‰дH‹ХBjjЊkWЌX!ЂЃЌV+ "3\Д•“VЩB(чEll,VЋ•ђђr yц™ghmmЅЖЖ–K—.qѕъU:;;…ш<::ЪхЫ—yяНїHII!''‡ТТBaиуrЙ0›ЭhЕкe Ц‰r~„B!€p|okkЃЉЉ‰††š››Руёрїћ™™™! ‰шЛТТBJKK)++QШJэЯХЬ{фи(‘H$з‘BžD"‘H$aмl‚ .J4бh$99YLLМ^/‡ссa!ѕїїуvЛ`ppббQЦЧЧ™žžfrrЗл‘rЉЄлъѕzЬf3 BВZ­X­VЬfГЈЃe4IHH !!ADѓЉT*тттˆ‹‹ѕјgЂk2ЭЭЭE<”tиЉЉ)&''ёzНтX366Цјј8уууLLL099Щфф$SSSLOOG<‚С sssФЦЦС` )) ›Э†нnЧсpрt:ED›Э&„XEМSЋе‹І6*мЩЄUNxo”s/>>ГйLrr2………lнК•ЎЎ.•зооNww7УУУLLL0<Ÿ@ РььЌшEd5 $''c00ЂЂЭf#99™ЄЄ$ёbbЂЈƒИ˜sёbf 9Jo–s§,VGOЅRaБXАX,ЄЅЅБrхJ***шщщЁЃЃƒііv!шЙнn†‡‡E:ИZ­Цl6 ГХu;-- ‡У!j‹Х‚бhЄсSRФ{tXŽјЊŒЕГГГ"кnllLD)їѕѕ100@__ННН 244Ффф$ГГГФХХa0ШШШюл™™™dgg“••Ejj*III$$$ VЋ—еni %‘H$‘<вBојј8h4ВГГ‰аMz$PО”=>ŸтттнЄ‡†ЙЙ9<cccx<JJJ‰ЛGSЋеJJJЪƒn’DђXsГICLL FƒЩdТхrˆШ0Х axxЗл-&BЪѓшшЈИЎ•ЈEЌRъГ)iœ€ЈСІˆs:ND… ƒAдр hЕZ!є)б|ŠАеЇдгRž•ПїТ‰ЎЙЅдSR $‘NЉI777G0+B] &сB’О.Ь…‹wЪћГГГbŠ€ІБŠАЉD5ъt:!’Z,!v(‚]JJ vЛЋеŠVЋEЋе У’ЅіЙтчLNхФіёfБze*•J8dgggГ~§zЦЦЦшыыiЭЭЭtww344Фјј8SSSДЖЖваа@LL :.ТЈGIw:$%%aЕZ1bЬPn(cХЭ‘|Ыc1!џf}Ж”ИЅDЗХФФмP4ˆqU1№ЁЏЏююnQДЇЇGИnƒAдj5:NˆЩŠs{^^ž0яЩШШ 11QИ'/Дђ\H$’хѓH y ќсў!ФjЕ gЄ—_~™oћлќПџїџ8ў<|№_§ъW9tша‚ыљкзОЦќџ€W^y…ГgЯоАLII uuu7МігŸўє†+]]]lлЖmСmНљц›TWWпЮюоUўфOў„џўпџЛј?;;›жжжˆeкккјњзПЮгO?Э—ОєЅћнФЦ~є#іэлёкјј8fГљЕhyFМ^Џјџoўцoју?ўуиЂ'‹ІІ&šššјЕ_ћЕнЩCJД+Ў’:kЕZЩШШЫ(† ~ПЧУааHЧURt•šmУУУxН^ІЇЇEэ!%mzzšёёёЂйТлЃдч ътттPЋеbb.ь)ЯсbWј:ТХ=Eа‹ЎїІˆŽст]ИX]733#D;хYтЂE>хY‰ ƒHБ,МMЪп b_У]†“’’Алэ$'' Б.%%…ФФФˆШЦ[tЪIЊф^Б” A||<‡‡УСкЕkёћ§Œгнн-œnЏ]ЛF[[nЗ›ЩЩIќ~?ДЗЗ уƒС€Щd"55•+Vžž.RqSSSБйlт†2&(хF.d Нїƒ{щк{7іiЙыXША$\МSЦUЅЮЋ’&Ћˆvєѕѕ Б7 Fјh4ЌV+‰‰‰фццRPP j/feeaБXˆ_ВЌУ­˜їмю2‰Dђ83џˆхm455БaУЊЊЊјўїПOff&WЎ\сЯўьЯ8wюcccTUUёщЇŸвввТхЫ—љ§пџ}њћћx§ѕзyѕеWq:"JЂББ‘ОО>^§u.]КDFFпќц7йАaSSStuuёo|ƒІІ&ўгњOќХ_ќEDлGŽспўэпxу7xљх—љђ—ПLuu5&“щ>ѕвЭyѓЭ7љђ—ПМ їњыЏѓ?џчџФh4тёxP ІГГ“Ÿќф'їTЈЊЋЋЃДДИ5!Яяїѓчўч|їЛпНgm[ŒЙЙ9ЖnнЪ‰'ЄwŸЉЋЋcћіэ|ќёЧЌYГцA7ч‘сћъЙ#–q LЎ ВЦ›"REGЁ)† ЪC‰$(‘Кггг"MY_xD_xлKЋНYJэRŽЉ‹Mа•П—›ZЛаВсQ‚Jф JЅBЋеŠhК№Ј:‹Х‚ЩdщЏJ ЌR_0\РŒЎ1ИXM;9™|0twwѓџ№МёЦLNNђЙЯ}Ž?§г?ЅАА№A7эБди…с:66ЦРРДЕЕбжжF{{;}}}ŒŽŽ G‰ќ ўUЎЋффd‘–Ћ˜ѕ(†=Š ~]-дЖЅЦ‰ћy=,BоЭО'—#фЎдHTЂРћћћEšЌтИЎ|_(7W‚С 0№QjЖ†їфцц’Mrr2fГYD3+fLсп‰Dђ(№ЈŒY\DозПўu4 ?љЩOаыѕтѕттbіяпЯО}ћxы­ЗD„Rnn.ЙЙЙ8NЊЋЋ …BдееQ^^Бо‚‚ ЈЎЎІЅЅ…C‡‘““#о_Зn555ќе_§пўіЗйВe ;wюЫФЧЧГ{їnvяоЭ'Ÿ|Т№№0?јСаjЕїВKn‹+V,њоч?џy8РѓЯ?[Д<Юœ9У|pO…ЊЅњf)šššјС~№@„МИИ8вввюћv%з#tџзџњ_Мјт‹œ?›Эі ›$yШИ•Š€ІDЧСЏъЇEЇ †G­)“5ХаAќЋЇМІ,ОŽ№ѕ†OцТSRУ…Рha ТЃbЁDњ…їGtЄ\И.(%UYyФЧЧ‹”`хЁЄ +ѕг№eЃ‰№hУ№њ€с5—št?IbДфбaЉzž€Ѓуттˆ'!!‹Х‚гщЄ  €ЩЩI&&&DєЏRM1ьQЬz””ѕбббŒz”кJŠЏХb!11ЋеQ?2мЌGЇгнщ{Ї“Љ‡9m3К.цB,U.|,žщА‡‰‰ ёPjлŒŒ066&^WЪ „ƒA4 ƒAВvЛ]ЄYЛ\.ьv;III˜ЭfqЃDh•qѓaыo‰D"yмxЄ„МP(Ф‡~ШІM›"D<…˜˜ўЯџљ?8p "е`уЦ|эk_ућпџ>Ÿ|ђ ?ўёљТОБЬддяМѓ§з!т…SYYIkk+ЃЃЃ|ё‹_фтХ‹8Ю–ЋЊЊЂЗЗїЁёnЦњѕыЙ|љђƒnЦ‚œ:uъA7aQцЖIю-ЏМђ ЇOŸцЫ_ў2яПџўcя*Й7,%)#•ъW_л:nСѕ([јГ"ђ)‚]ДјЗаC1|фSвZЃŠРЈDњLLLpфШ1™LВvэZБŸсѕѕŠІ‹Žњ ђn!a/ќЁдњ‹оЮrгбю4F"yXЬё3к,CЉЅ™œœ ЂИ<###ŒŒŒ088ˆлэf=УУУBRЬz…QŒ"т+бБсТбhФd2‰GИѓЖђP„їшы:>>~Сє]х&ШFЬок•с>суЇђw0уАrƒ&МФ@x PЅ–jИˆЇњ(ЩЩЩˆШlхи(Еэ”у‘˜˜HrrВpлVЂ*•кˆ‹Eј,є[GорH$’ћУ#%ф)WЎ\ajj ƒСpУ2‹…џ№ўџїџўпоћіЗПЭ{яНGOOЏПў:O?§tDкфпќЭп””ФяќЮя,к†ДД4Оёo№Т /рvЛyѕеW9pрР ifГ™ЩЩЩ;и[I4уууМљц›Ѕ9Чьь,їwї ›!y€ќэпў-;wюфПўзџЪ7ПљЭнЩcТb“№ЅЏwwЋ„ € M0УŸУ]dУЃѓќ~?]]]ДЖЖ266Frr2[ЖlсЋ_§ЊиЇpё.z".є…џmЎqЛм,JG t’Чхžгстž"œY,QЫS–”HМQЧS‰ж wсžšš7 ЦЧЧЉš€ь5 Z­іaO‰і •:|с)№ЪCќУkwF?ЂЧ—›•џ{ЁдпЅЖУ…Й№ё2М>hјЭ%zffFDO‡ qŠXЊќ­ˆwJ_+ыƒЂь€тxЎбh0›Э"rвd2a6›…XЇдQДлэBМSъˆ*iВK/ §/‘H$’{Ч#%ф l6§§§|іГŸх7о ;;ћ†х>џљЯѓілoп№КЩdтџяџЭ /М@?_џњз…јвллЫwПћ]оyч›:n=џќѓќЛїяјоїОЧсУ‡љжЗОХ_ўх_F,ЃмAМUЦЧЧХбоо^>ќ№C’’’јЬg>qчknnŽЃGrхЪЬf3;wюѕўЂ …B>|˜ЋWЏbЗлyійgoкЏзЫЬЬ VЋuСї‚С ‹ЏзЫ| ЬFЂХеK—.qцЬЊЋЋYЕjеЂлlmmхшбЃLOOS\\ЬцЭ›‰‰‰annŽSЇNёяџ§Пgll ПпO[[›ј\ffц wkjj8wюБББlоМ™•+W.Кн‹/rђфI {їю]0кs).^МШўЯџ™КК:ЌVkDл\.з Q™—.]тдЉSЈT*žzъ)ђђђni{ЃЃЃќтП`llŒŠŠ 6nмxгЯИнnNŸ>MWW‹…œœжЏ_Пфљ~ѕъUNžKRRвЂлnooчгO?ezzšѕызSQQБрrЁPˆёёqсМyіьYЮž=‹Хbс™gžY№†ыЧ!%%eСˆклAЅRёЏџњЏTVVR^^ОЌыL" 'z’И\gгЛБMeсuрn—@ \џ /ˆž••ugНKмnЪIЊфqчfb"FœNЇјMЇдкѓљ|xН^њњњpЛнєїїгпп/„>Х%WIщTЬkfff˜œœdpppСZ˜JЪ­’fЏRЉ„ЃДтЦRžVЭžNžЮ~s!к gЁ:žс.лбшшf%Њ.МєA ИС][љ;мФ(<:ќx,єˆ‹‹Уh4ЂеjEŠsxЭBхoЇг‰Ус 11QЃспЗ{ОH$‰фў№H yO?§4џќЯџЬШЫЫЃЊЊŠ]ЛvБmл66lи€Z­&;;› .,јљЯ~іГМ№Т МћюЛќ§пџ=_њв—XЗnпјЦ7ЈЊЊтщЇŸ^V;ўњЏџšуЧSSSУwОѓ6oоЬюнЛokŸО§эoѓЗћЗŒ№Ня}ЂЂ"ОєЅ/ЁRЉшъът›пќ&џхПќрКБЧО№&''yёХЉЏЏчЗћЗљЮwОУыЏПБюссa>ћйЯrтФ вгг1 ќб§б‚5цўўяџžЏ§ыx<ццциВe GŽрУ?фЕз^cbb‚`0Ш+ЏМТћoџ;v VЋihhрG?њќ1cccьлЗcЧŽёХ/~ЏзЫќС№Х/~‘7оx#"R$№ЕЏ}њЇтщЇŸ&''‡ПњЋП"##ƒ_ќтtwwѓЅ/}IЄKзееБkз.ёљšš, CCCьлЗГgЯђъЋЏ211Ся§ояё•Џ|…ПћЛП‹ј‘2;;ЫoўцoђУўЄЄ$вввјУ?ќCОџ§я/ћиMOOѓвK/‰‰ыФФDDло~ћm‘N611СkЏНЦбЃGyѕеWёћ§ќСќПљ›ПЩїОїНeџ€zїнwљпј ІІІ())с[пњ{їюЕMЂ …Bќёџ1џђ/џТж­[IKKЃІІ†#GŽPTTФЯ~іГ&и^Џ—пјпрч?џ9ћіэ# ђњыЏѓмsџŸНѓЂZџј'НїžJЅ…’„"•zPAP@аЋˆ‚‚*Ђо{ЙV”fAz)"^D4в[(Ёš„єВщe“ЬяќЮмйЭ†)ЁœЯѓЬГЛ3ГsЮЮюžнѓяћОућяПWCњШЩЩЁИИЈЧњіэKVV–zNоxу >љф^§ufЯžЕЕ5ЅЅЅИККВiгІjеœЫЫЫy§ѕз™?>C‡Хйй™щгЇгЉS'VЌXЁОз/Пќ2?ќ№ƒZ%&&† Аnн:ЬЭЭбыѕИККђу?ђаCДБlй2FމЋЋ+ўљч5ХыСЧЧ‡5kжЈпЙšBє%’{mбёX"‘мНд–#Rˆ`vvvИЙЙсччЇ:ЮєzНA~NNGvv6™™™deeЉсЙ:N гЪЪЪдcALєчZЮ]cqKыжŠuZGА)WАЉ\oІ=cї6—iM)ŒCkMн7Ўx.H!HКККтттЂэquuХУУwww<==ёєєФеее@рд:бЗъГ"‘H$’›Я]'фЭ;—ЬЬLЖlйBee%ЛwяfїюнМїо{ЊgТ„ DDDдxŒyѓцC^^cЧŽeўќљ,_ОœƒжЙ666ЌZЕŠ:——Чˆ#ˆ‹‹Ћбw-&MšФЈQЃ8p ‡&''‡—_~™элЗѓдSO‘@ll,ЩЩЩDGGciiЩБcЧд\&ЏОњ*ЏПў:ООО >Јpžxт іьйУФ‰™9s&ццц|џ§їjˆ“–gŸ}–Сƒ3sцL>§єSƒm={іфдЉSL›6E‹Ё( #FŒ`іьйlйВ…јјxѕќ•——гЗo_bccйГg:uЊDиЇŸ~GGGцЮЋћЙчžcљђхМњъЋЬž=Ј’/^ЬЧЬПџ§o.\ИРŠ+xњщЇ cчЮењ_VVFяоН9~ќ8БББЊьс‡fܘ18;;МЎЩ“'Гlй2zїюЭКuыАЗЗgяоНєяпПЮя.\рШ‘#tшаwwїjU€ЁЪAљиcБsчNіэлЇ~>ЃЂЂ=z4ЬŸ?Пжіттт:t(ЖЖЖьлЗŽ;RPPР AƒTбе˜Я>ћŒЯ?џœ>њˆЉSЇЊы_{э5цЬ™УЛяОЫВeЫдѕ•••<ўјуlнК•_§UЈŸ|ђIњѕы‡­­-K—.ЊDеэлЗѓју0zєh.\HЏ^Н8x№ бббЬœ9“ЬЬL’’’HNNЦгг“)SІ0kж,FЭ™3g DЬW_}•ЏОњŠoОљF§œŽ=šАА0ўіЗПБ}ћv,,,јф“O?~<:t ЈЈˆЩ“'гЕkWrrrАААр7орыЏПfфШ‘\КtЩРe””” VhЛYB@ЇN˜>}:ƒVžЩŠЉБk%XЏmSћжu?9”HnЕUаОж~ІмУb?жЏнG+j їžX„CM}………jсm(Љv›Ж@ƒxО8ž6ЇqzбwSЏЯд­VШЋiL3•Sг”kN<6ЮЊЭџgkkЋКХ­р„ћP„ФjˆЦХ}DЈВqѕэкЪ-R!Чp‰D"Й}мuBž›››7ofУ† ,[ЖŒ_~љEНBЇгщXБbЋV­R@Ірƒ>р•W^!..ŽоН{ѓЬ3Яд6XССС,XА€aУ†‘žžЮ№сУ‰‰‰Љ54з;;;4h@гІM9|ј0п~ћ-oНѕЭš5уйgŸEЏз3~ќxІM›FFFџњзПT`Т„ Ь;—iгІ1tшP,,,јх—_иБcююю|јс‡Њ1jд(VЎ\ЩЏПўjаёЂM›6ењhmmFБkз.КwяNџў§qpp`чЮ<ѓЬ3|їнwьпПŸО}ћЊ"T˜8q"_}ѕoМё 6dяоН,_ОеqАzѕjƒ0ек˜?>GŽa№рСсœЃFbвЄIЬ™3‡I“&сччGBB‚ъМ›3gŽNлЅKЦŽЫ‡~XчvыТЊUЋиБcaaa"ѓгO?ЭЄI“јц›oxёХ њmŠwоyН^ЯЋЏОЊ†š:::В`С‚ƒƒM>'..€Ÿ~њЩ@ШыеЋsцЬсєщгћЏ]Л–­[ЗвЅK—iпО} fйВeL:•–-[тюю^эѕWkDDdХŠЌ\Й’Ы—/уыы РЛяОЫœ9s8ў</^Єyѓц?~œЏПўgggFŒЁЗC‡tюм™нЛwГ|љrFމƒƒ-ZДРУУƒЂЂ"\]] тO?§”%K–@\\œAЅъз^{ kkkZДha2<џFyљх—9|ј0џћпYБbХM?Офоф~œ§•€…šr9iзеЦ§јўH$7ŠїџMщ1vЏ‰аTcСNЛhУsЕеЗЕЁЌТЩ'Šіh ї˜ЊОmœTЏз“’’BVVŠЂрььL`` 666aЗЦAmсqџZеЗЕ"ž‰сСІЖйллЋЮ:c—amPвЎ“cœD"‘м=мuBT§а <˜СƒSXXШюнЛйО};[ЗnхшбЃTVV2eЪzїю]cNЖ—^z‰~ј§ћїЃгщЊхИЋ+O=ѕќёп~ћ-;vьрНїоcЦŒљuЄІІ2tшPЦЏŠxЅЅЅЊРеГgOƒч6hа€Ы—/sєшQ:tшР† €ЊмtЦљњњіэ[MШЛЎ^НЊ:џzєшaPхVИЕŒћhffF@@щщщlкД‰—_~™UЋVа­[7ƒТ#Ÿ~њ)[ЖlсэЗпЎsŸDЛбббыЭЭЭёїїчєщгlоМ™чž{ŽŸ~њ‰ŠŠ UIаЇOŸ›.ф 1Ч8ŒдЪЪŠˆˆЖlйТђхЫЏ)фЊЁЫЦч6((ˆтууЋ=oтФ‰фччЋBЋ@|оВВВ жзєўrўќy~ќёG“п­AƒUыT‰zBФƒЊЂ4žžžЄЇЇ“™™ЉО+WЎDQТТТЊхŒŒŒdяоНќ№УŒ9ВкыxђЩ' іwppРпп_MИЏХЮЮЎFЁџfёеW_ЩмЙs™0aТ-mK"ЙQъ2ЛбI^MЮ–[=y”ЁНЩѕQ—Њ­7ГЊГРъZ GQ”jbœ6_жЇ­Ю­є„`(уАиЪЪJrssљѕз_9tшххх4mк”AƒсссaВ†VРгцоMхъ3у„ 'Šu\uЙ@! ќH$ЩНС]%ф-\И3gЮ№йgŸЉышеЋНzѕтУ?фиБcєъе‹ДД4жЌYcрђвbnnN=иП?fffЊіW˜3gћіэуфЩ“|јс‡tыжэ/ ЊDSЁ~gЮœQs‘§ѓŸџФЩЩIн– оЇC‡Њг*  кБoЈііієшбУф6‘ŸpеЊUьпП_]Ÿ——Ї ~gЮœЊB3jчмИqŒ7ЎЮ§ЉЌЌфшбЃ@Uў3m˜innЎ*p‰vХэ­87І8yђ$€‹Rрээ ` †šтмЙsjI$‰фжpW yЌXБ‚O?§ДЦЋTmлЖeЮœ9<ѕдSз–YФ:cьььXНz5ссс2bФ“nІКвЊU+“ыER€оН{з˜O„ ёТTжы џ5ІiгІ&У#єzН*6†‡‡W+2№мsЯU•fЁЪe7ўчЃААP„:wюL—.] Ж?џќѓРџbз:77ZБбzНРфŸNБNьS"„ЎЏпМўњы|џ§ї 0€чŸžЎ]ЛrцЬ“ЂГјœЕkзŽО}ћl=z4`ZH„š?Wжжж&зs#чЩййЙNmмN5jФВeЫ6lБББ&…c‰D"‘H$wЦ…{5єVŠf‰D"ЉOю*!Явв’ддTbbb *ƒ#r‡нь$ѓ"щЎ)|№AцЭ›Ч˜1cШШШ`еЊU 2ф/Е#œGЦчTЙіДљчLсччG\\еЖ]Нzѕ/ѕ­Ж>ZYYсццFNNСССеТk:ŽжQXІў4?žЯ?џœ/Пќ{{{ŠŠŠ ЉЕ]!D™:7ЩЩЩЕіЅ.}+--х‰'ž`гІM‘’’bВ=БЎЖ Ї~~~ъ§ЬЬЬj9ёLНЇ•••єэл—]Лvёх—_Иkrфy{{sщв%5jTыyМйˆъЙ™™™еЖеѕ<нi<ќ№УМєвK<ёФьиБЃЮЂІDr'"ТзDиWm‰уЦn.XА@Э'інЙsg5ёцвЅK<іиcъc!€шt:uнЉSЇHHHРЬЬL=–Ш#gšЂв IDATЬМyѓXЗn№Пssўќyrss ічцz}ЫЫЫSЏо^КtI AЏУ8,TQ5МxрРзlЃQЃFЊЃ№аЁCл’““M†е9r„]ЛvaffІКbmh+дўў­\ЙВNvЕдѕЛ&ЮС‰'Њ]?vь˜С>7ŠNЇЋеyØ6mЗ}њžž^mNЧдЉSыфЪс••••”••]sп .УйГg ђЏѓѕз_W+žPW„ b*|ЊўLМѓЮ;Ьš5‹sчЮUk{ћіэ<јрƒ@•АшссСЉSЇT `џў§lйВЈžŒџФ\ЋЕѕр­ЗоТЪЪŠ-[Ж№гO?lлН{7яПџОr;zєhМНН)..цЅ—^Rп‡ЂЂ"Fmš+ђІ]О|Y п]КtЉZ5ѕэЗпЦТТ‚Ÿ~њI}}‚mлЖёСЈтntt4элЗЇИȘO?§Tн/))‰… ЊЕЂсЕ}+--UCКЕ}{ёХiмИ1111\О|йр|\Кt‰nнКбЏ_ПZлBаМyѓдŠЂ№о{яЉ6Е}я“Ђ(BпйГgљшЃHIIЁИИXнwђфЩиййБwя^–-[fаў‘#G˜4i’AA‘ЗЊ‹‚тБёzј_ˆЌvлЃ>J=ИzѕЊ ›––Цж­[ фх—_68ŽhпT5mћх—_№ііІE‹фччW{оЭЦЬЬŒХ‹УтХ‹oy{Щ­@Ицтттјх—_ˆ‰‰сЬ™3dggз*ŠO†+**(((рЪ•+ьлЗM›6Бkз.зВ,R!‘HnІ\У59Е‰yІžЋ]Ї}Оз$‰DrSPю"Оћю;ХТТBйИqЃвПХХХEyщЅ—”E‹)K–,Qоzы-ХЫЫKiеЊ•rўќy“ЧHMMU{ь1хЁ‡RЌ­­@”цЭ›+Н{їV.\hАrrВІиккЊћZZZ*экЕS>lВИИ8ХжжV2dH^зў§ћ•ЉSЇ*ююю  ДhбBљЧ?ўЁќёЧ&їŸћЌ2iв$%22R R.^МhАяж­[ХккZ6l˜2vьXХлл[љч?џЉОž‡~XYА`’’’ЂќѓŸџTкЕkЇŠННН2iв$хПџ§Џ’ МџўћJHHˆ(Ъ›oОЉќ№У&ћИ|љrХЮЮNБААPЈL™2E8p тттЂФФФьЛkз.ХЭЭM”&Mš(§ћїWќќќ”~§њ)zН^нЏИИXiиАЁ(Эš5SТТТ”&Mš(:NнgётХŠbiiЉ }њtЮ§Э >>^ёііV:tлкМSЉЌЌ”Ы]ЖTTT(ЅЅЅЪŠ+”ž={*­ZЕRЦŒЃЌ]ЛVЙxёЂ’ŸŸЏ”——+EEEЪЩ“'•nнК)Jыж­•O>љФр)))ЪŽ;”їп_щвЅ‹вКukeъдЉЪхЫ—•ŠŠ uЉяз,—;{ЙrхŠ2}њtХлл[БГГSFЅœ>}Коћ%—;sуJyyЙЂзыН^ЏŽ3хххеЦффdхЕз^Sќ§§хЉЇžR.^МhАЏ8žёБХ:уЖхИ&ЙШE.wіrЗpWхШkлЖ-п}ї `Р€8p€M›6ёлoПQVV†ПП?ѓчЯgР€jЎ1vvvjџсУ‡WлоЂE ƒЧеBкœuZBCCљілoMцC3…­­-AAA|јс‡ењjŠO>љ„aУ†БfЭўќѓOЬЭЭyц™g9rdЕч<ђШ#œ:uJ­јkaaСoП§†ЃЃ#ŠЂ`ccƒЋЋ+AAAXXXрууУиБc ŽaooЅЅ%~~~Lš4Щ`›ЖrЎ–сУ‡ХВeЫдpЉ№№p,XPэМEFFЯЂE‹8zє(ііі|јс‡<ѓЬ3ХlmmйЕksчЮхђхЫ3uъT\\\д}ž}іYzєшСВeЫ8uъЩЩЩtэк•E‹UЋ„кЌY3Nœ8С7п|УЁC‡ШЭЭeбЂEDEEQPP€НН=NNNИЛЛ›|ЦlмИ‘йГgsђфI|}}YВd‰ZдЊŠ˜œ:uŠE‹БaУЌЌЌ˜1cO?§tsB™››ГdЩž|ђI6lи@ZZ>њ(/Нє7n$""kkkprrТЪЪŠ˜˜.\ШСƒINNІ]Лv|ђЩ'x{{гБcG–.]Ї‡У† Sл0`ўљ'K—.хшбЃ$&&вКukfЯžmPАСЭЭ~§њИ EЛМѕж[§ЗББСССаааУsНННйЗo+VЌрїпЇЌЌŒgžy†чž{ЮрНvttЄmлЖеŽcff†НН=-[ЖdоМyеЖL˜0ŒŒ ZДhСџњзПъЛ;IтЋ ЁЁЁœ8q‚уЧ“™™Ijj*™™™\О|™уЧг ARRR(//'++‹§ћїsсТЮœ9CjjЊZ5лТТ‚ж­[гО}{033ЛnGŒD"‘ЃНXЄ­Ž UХѓœœœШЬЬdїюн?~œ№№pкДiCpp0оооиии˜<Ўpр•––’ЭХ‹9vь‡"11??? €•••У$‰DrЫBžD"‘мf,,,XБbaaa„††ђјузw—$’ыЂqуЦДkзŽН{ї’••ЅТHKK#==ЃGRQQAee%йййшt:*++ %™››ушшHdd$Э›7ЧССA:5%Щ-ЧммœІM›вДiS6oоЬКuы8rф;vЄsчЮДoпžЦSZZZ­И[ii)iii$%%qќјqvяоЭСƒILLЄAƒDEE‚ЕЕu=Н:‰D"‘мH!O"‘HъV­ZEП~§x№СokЎ>‰фЏ мrP•ЃВUЋVDFFrј№aЪЪЪдmŠЂT‚WХdЅs‘6** ѕјвХ"‘HnSуˆжёыссAлЖmщдЉёёёœ;wŽ‹/ВsчNкЗoOяоНiоМ9EEEъsєz=—/_&))‰˜˜іюнЫ•+W€Њё,$$„ЈЈ(oїЫ•H$Щ}†ђ$‰Єžчпџў7ƒ "66ggчњю’DRg4h@зЎ]љяџЫљѓч)--НЎчЛЙЙёшЃŒНН§-ъЅD"‘TЧЬЬŒ&MšХж­[IKKЃММœддTЖmлF\\AAAЄЅЅ‘ŸŸOyy9'Nœ`ЦŒЄЅЅ‘––ІІhдЈ;vЄeЫ–ѕјЊ$‰DrП`^ћ.‰D"ЙUМ№Т tыжgŸ}V†Jю*œœœhоМ9={іФХХхКœt4mꔇ~www5qМtуI$’л™™nnnЊГXИшЪЫЫЩЯЯчъеЋФХХ‘@qq1eee$%%qьи1._ОL^^хххXYYJ‡puu­Я—%‘H$’ћ)фI$I=ѓХ_””ФчŸ^п]‘HъŒ……ооо<ќ№У4jд[[л:?зЧЧ‡АА0кДiƒ­­­№$ЩmAЋPkkkЕЊЖŸŸŸA^ЛЪЪJђђђ(**Rѓ}‘ŸŸ^Џ78ІПП?aaaДhбKKь$‘H$’[ђ$‰ЄžБББaнКuЬœ9“­[Зжww$’“`ЃЃ#элЗЇ]ЛvxxxдщжжжгЅK<==БААnT‰DR/ИИИIЫ–-qqqЙюч[ZZвЎ];BCCёёё‘c™D"‘Hn RШ“H$’;€РР@–/_Юˆ#И|љr}wG"Й&BЬГДДФЫЫ‹=zаЈQЃ:ЙQМММ %,,L:ё$Щ-AЈЈIXcЕЕ552(КSW,,,prr"::šрр`Ќ­­Ѕ'‘H$’л‚ђ$‰ф!::šз_ЁC‡^wс‰ЄОААА ""‚ааPМММЎЙЏ™™mлЖ%<<ooялдC‰D"ЉKKKКuыFыж­ЏЫ•чрр@ћіэ Чггy>%‰Dr{Bž„ЪЪJrssыЛ&),,Ќ–‹D"Й—™&!!ЧТУУquueњєщѕ’’BPPюююXZZтшшШЏПўZo§‘Hn7fff,ZДˆ={іАpсТњюŽDR#к Ћ ЁЁЁДoпwww“ћ[XXаКukкЕkwн!l‰Dr=ˆ|ž53ЦџuщаЁЁЁЁjлkсььLHHнЛwЧХХхš0$‰D"ЙйШ_ћ”ььlzш!bcc9zє(ёёёилл3cЦ ўјуzы———Пџў;ЛvэТееЕоњq/QQQСœ9sъЛ’ыРбб‘ѕыз3mк4/Ф4n옳элRmђlnnŽЃЃ#‘‘‘4oоƒОоŽ~зїљ‘H$З†›1ў™››гМys:vьHЃFЎЙЏ™™ўўўDDDаЂE Ќ­­е1яV1r“H$ H!яОeцЬ™\О|™)SІаДiSŠŠŠШЩЩЊ„ŸњТвв’   ZЖlI@@@Нѕу^ттХ‹ќуџЈяnHЎ“цЭ›ѓэЗпђф“O’‘‘Qпн‘HLb\СЖeЫ–tэке`b `kkKPP‘‘‘wЌON%’ћcЧžЂ(ИЛЛгКukТУУЏщАГББ!$$„ЈЈ(д}ЏхМШёI"‘H$)фнЇlлЖ €:U {їюнЫІM›xєбGыГk*wтDяnф№сУѕнЩ_dР€ >œЇžzŠђђђњюŽDR+ 4 kзЎjG››НzѕЂYГfиллзKпфoŠD"ЙfffёаCсяя•••Щ§7nLXX-[ЖМЭ=”H$‰Є Ыњю€Є~HKK0ШвЎ];кЕkW_]’м"цЯŸ_п]м3fЬ _П~МѓЮ;|єбGѕн:“››Ы„‰ЉЩ? дИхDћRoDK2uЪЎїx7Ћ/5SQђ ђЉ03УЬЪ *+АДАЄ8tь(oОѓ–––џkџVєчЏ"њr­~мI§НKpsqeЮчŸзw7$ї07KЄ733Уее•V­ZЩ–-[ащtћXYYЉљ@]\\ъХ%'/JH$‰фОђŽ;FBB 6ЄmлЖЗЌŒŒ Ž9‚™™™ZDтf“™™ЩсУ‡џr"ŒіZЁIII;v '''"""дŠ\Еqъд)’’’ˆŒŒФССЁNЯ)..fяоН”••бЉS'мммj}NAAёёёЄІІтщщIГfЭ№№№ИцsRRRˆ‹‹УЦЦ†ˆˆˆ:%4.++cяоН”——†‹‹‹К-11‘cЧŽсууC‡Ўy>ГВВ8tшцццDDDрьь\kлчЯŸ'>>???кЗo_ч?pйййМїо{ьиБЃNч3++‹ƒbiiIxxxћ'Й؛›Г|љrТТТшаЁO>љd}wЉNБ}з.ЦЭmz"tЯR\\‚GB…ПџFjjЮ.Ю„ДlIчЈ‡АГГУм\NBя'>ў)фIюhДсЕжжж4hа€G}”cЧŽQXXˆ^ЏWїѓїїЇcЧŽДhбKKЫл*фIO"‘H$‚ћBШ;yђ$#GŽ$11‘ЈЈ(тууqsscѕъеlлЖхЫ—ѓЫ/ПššЪРЩЭЭEЇгбЄIіюн РкЕkљшЃШЭЭ%//-ZАcЧƒvŠ‹‹™8q"K–,ЁGфххqфШІOŸЮлoП T9сˆNЇCЇгбЈQ#іяпРКuыј№Уе6BBBиЙsЇA%%%Lœ8‘Х‹гН{wђѓѓ9rфяМѓгІMЋѕ\xyy‘™™Љ>nнК5У‡gљђх@•“fьиБlкД‰ž={’’’ТХ‹™3gO?§4P%V0NGnn.nnnœ8q‚чŸžŸў™ŒŒ xрŽ=j^eŠѕызѓТ /••…››%%%Ь›7ЏЦ§+**˜6mпџ=Эš5УЭЭ§ћї“••ХШ‘#™?~Е6ѓђђ7nызЏ'::šддTЮž=ЫG}ФЫ/П T‰rO>љЄњўћјј№нwп1pр@puueщвЅєэл—)SІ0gЮ5Ї`ЇNјщЇŸ№ђђ2h[Џзѓц›oђѕз_г­[7єz=БББL›67п|S§c6jд(тттШЩЩAЇгqњєiоzы-VЌXЁўQŒˆˆ`уЦјјј\ѓœ–••сээ­і-''ЧррŽ;ˆŠŠRћ7eЪ,X@TTeeeФЦЦђюЛя2eЪ”kЖ#Й=ИЛЛГ~§z}єQ|№СЛ&œЧбй™№^НLn“Й~n-fffЕžcS тЕы*++ nХ}БŸИoќМŠŠ ќ[ЕфBN6'NручGЛшhZvюЌіMмп‹ЙЙљ5kЧГкЊSJ$’;1нŒяАЂ(7|"##йМy3™™™jžZKKKкЗoOhh(>>>7Ѕ-‰D"‘Hў їМ—˜˜H=pppрЬ™3xzzЂ( cЦŒсбG%99™БcЧU9|цЮЫїпЯW_}…ŸŸŸzœnнКбАaC.\ШЗп~K“&M кQ…'Ÿ|’Э›7ѓѓЯ?гЗo_>ўјcо|ѓM,--™2e nnnЬ™3‡ЅK—ђх—_2‘‘‘|ѕеW,ZДˆoОљ†Ц›lучŸfгІMєяп€O>љ„ЉSЇbiiЩдЉSЏy>ФŸWWWrss9qт­ZЕRЗыѕzњєщУсУ‡йППjћт‹/2bФ*++1b...Ь;—ќ‘>ј[[[>ўјcЬЬЬјќѓЯ1bgЮœсТ… <№Р5іgЧŽ :WWWіяпODDqqqќэoЋЮ xѓЭ7™9s&?ўј#=іP%ЂFGGГxёbZЗnЭФ‰ЋНІииXvьиA—.]˜ЫО}ћxѕеWYБb…AЧŒУ?ќРкЕkyќёЧјќѓЯy§ѕз),,dЦŒL:•§ћїѓмsЯ№ќѓЯгЌY3.^МHNN/Ој"р•W^с?џљЯ5пgkkkЪЫЫ9vьЁЁЁИЙЙ‘mrпQЃFБrхJжЏ_Я Aƒ€Њb(“'OІААPЪИChлЖ-Ÿ}іƒ&66жР*‘ЃмФ$Y{[^^NEE…СRYYIEEххх”——SVV†^ЏWoЫЫЫбыѕћTTTЈтVјЋЈЈ ДДKKKєz=IIIФФФU.SБXXXЈЗ–––‹••жжжъ},-- žcМh?њ$7Ъž={XМlЉщ№vЩ S—ЈіК>яЏЫјИJe%IЉЉT˜™ЅeеbeEJFп|ї+VЏFЙŽvdTўНATd$#GŒЈяnH$ fЪ=n‹6lЋV­тƒ>р­ЗоRзgffтыыKEEГfЭтЕз^SЗmмИ‘вЎ];Ž9bpМ5kж0tшP"""T'РђхЫyц™gˆŽŽV'+PхŒђђђR'2юююќєгO<іиcДmл–ЃGДБvэZž|ђIТУУ9pр€К~хЪ• >œюнЛЋХ* JЈђђђЂЌЌŒФФФZУKЁf!oюмЙМњъЋєяпŸM›6Љы/^МHгІMquuхЪ•+jихоН{щкЕ+ооојјјЫЅK—шоН;!!!ФФФд˜,Њђђ=zДк{Аjе*† ` Z„††rьи1^|ёEƒќoBа9r$пџНК~Юœ9Мікk 2„еЋWЋыѓђђpssУннФФDlmmјэЗпд‚Ы—/gј№съsxртууёєєфЪ•+jвіmлЖЕЕ5%%%ъ„qыж­j‚їsчЮЉЧ)))СЧЧ‡‚‚Nž<ЉŠ899UŸ]­(KDDVVVфццbggWуyд&фmйВ…>}њB||МКОИИoooŠ‹‹9}њ4Э›7ЏЕ-ЩэсЅ—^"%%… 6мбТDJJ їяЯ˜м~џємV„0'„ЕђђrJKK)**ЂААттbƒЅЄЄ„’’ѕ~ii)%%%”••QZZJYYY5qЏВВв`Й–SOPZZŠ^ЏЧмм,,,€ъŽ<­уNм QN+і Якк[[[lllАББСжж[[[ьььдЧіііиллcgg‡иккbeeЅŠтVrkиˆдЋWoЩБYИp! , ??Ÿ!C†0uъTZДhqSлYИp!Ћcbш1ьЉ›z\ЩMZZ*Лwя&>ў,•••6р‘GХЧЧKЫšџлJюMЮ9‚’˜Фї‹еwW$Щ-фNž_iЙЇyЌ[З€GyФ`›ЇЇ'mкД!..ЎкљkНy5mћілoT'žРккšFqтФ 6mкФЈQЃnИ~§њЌЗВВЂQЃF?~œM›6ёьГЯжxькXМx1={і4XD“&MИtщkзЎeܘ1}MOOgФˆиккђРЈХ4ЎE||М*bіщгЧ`[џў§БДД4YЉsьиБЬ›7оН{Ќyрвгг ж/\ИЈўо8;;уууCJJ 111ъyЏЩккš!C†<ЇE‹ФЧЧ3`РƒЪ‹"дБЌЌŒмм\5gЁ8ŸбббЧБЕЕЅkзЎќђЫ/,YВ„?ўи m@§ЌкДiT З999uђjЃІўйййбЕkW~§ѕW–,YТ|pУmInsчЮ%::ZuћJюmД"^ЏW:эRXXHaaЁњX+ж aNыЊ3хЦ3эj Л…ъПQZaNЛNQ,,,033CЏзЃзыM†ёšzЭЦЧ5§LЙёД‹pѓY[[Ћ‚Ÿ*ъйллурр€ƒƒvvvЊ№'?kkkЌЌЌдуI$ šгЙПкw”м1_pc‹XЇнЧјyŠЂT\L Й––ащбG яйWWWЬЭЭ BkkЏL-зЪЇ,ЙsБАДрtbR}wC"‘H€{\Ш;zєЈš жTN1ooя›ж–pЮmлЖM _…Њ|sТ‰uтФ‰›вЦіэл ђмнЌ6ЪЫЫ9~ќ8`њмјњњrщв%>Ќ yZДЎЙК к&Š’а IDATЊ…;::тээMrrrЕч;–БcЧRPPРš5kˆ‰‰!..Ž“'O†Žќќ|N:РЯ?џЬ™3gдm™™™ЊрxтФ‰jiƒ ўW]ёџтYУ† ж ` > GgMчраЁCеЖ4kжЬрБ˜\–••Q\\lђ9зЫєOR?XYYёŸџќ‡АА0BCCЋ к’Л­˜VZZЊ qХХХB]aa!Ћ…ЫЎДДд`!Ак +`р|г:гDЋXЇ _еоŠч‰ћТ=ЇœчОh'гЦ9јDˆnee%хххеœ€ЦЂЃж}X\\\Э5ЈEыштžpёiн|8::ˆ|ŽŽŽЊиЇнпккк ”W"‘мDЎ_эQQQapaТxбŽbПк.^hЧэИyхЪѕBHJJ ;vьPѓ0k…9уХјт‚vМеŽЕЦЗТ5,nЕЧзК–%‰DrsO yкkІЊЇџйЏ eeeежQRRT :к ЁnnnjŽБКVЪ---­ЖЎЄЄ„ЂЂЂлxџ§їЏЋ S”””ЈчФ”лK8аD?ŒщаЁУuЕWPP ц>2ІІ*ЙLŸ>… вЅK† ТјёуйЕkуЦ3и7''G§3цттRэМ ЇYчџOТЎхZ!С" З6ФЙњ+чѓvTН‘ўIъ___VЏ^ЭрСƒйЗo_Еœ’;m:‘{ЎЌЌЬРY———GNNŽZє(77—‚‚ђђђ((( ДДд`R*&’ЦF{{ћjю4э­wmll \kBшB•pЅiCRЕBŸёR“ˆTsУˆ[уIЕБP'Ю—XDАp чЁvЛіОі˜"ь8''G„ЋFМ.kkkьээqrrТЩЩ ѕжееWWWUшГЗЗW…=!†JO"ЉSc€БЇ'Е9;ХM‘@ы>жŽкБУ8§€Б gœ:@ŒW"_hee%раЁCcœ)O{ЁФд8*Ц 1kЧ_уTblбКŒ­­­Ћ]Œїk* $‘H$’{‹{ZШгцŠKOOWѓг ДЎЖКbъ9тJ}II =єZ<уЏbЊ ёЃ^\\LTT/Нєв Еa GGGмммШЩЩ!++ЋЦ~Лбuвs=ˆъЎzНž‚‚еmŠЂššZэ9eeetяоУ‡ГtщRFhЮjѓ \]]еЏоН{ѓФO\Wo”РР@’’’Ўћ|Т­‹ЯЏЈЈ`Т„ |љх—’œœќ—њ'Љ_КtщТдЉSQЪЫЫ 777еНwЇž_‰фfЁuг‰я‹жe,nХ}й"ž#sкяoMљюДy3­­­ЋЙфŒ]pІ\lІЦР5sй;јŒЧr­›X+\š ыЗтѕ‹зu­b@fffеrŠ‹ъЮЮЮПюююИККтфф„НННа'‘H$’Л“{ZШГГГу…^`жЌYЬ;—'žxB з\О|yyЦќќќ€*a(55UЭУ/Пќ@aaЁСsоxу ўјужЎ]ЫФ‰ ТLЯœ9У„ иО}{Е6Ў\ЙbаЦќСцЭ›kl#&&†uыж1qтD:vьЈn‹gќјё&]iІ“Eу№тЗоz‹uыжБvэZfܘЁžЏЭ›7“ŸŸOŸ>}ˆˆˆЈvœП‚ЗЗ7C† aХŠЬž=›•+WЊWF?њш#ѕОі<фццUg‹‹‹еа3gЮЈ…’’ бNž<™#FАxёbЦgP566–iгІT'жцc1ІІѓІнWЛmмИq|ёХќілoЄЇЇЋЙшЮœ9УёуЧ QЋѓ^ы8ЕЕ_ЂшFii)WЏ^%00ѕызгЎ];Е_~љ%[Зn%33SdO:ЅVг:thк’дѓчЯЇkзЎЬŸ?џ†нР’ыG8JrssЩЩЩ!33“ЬЬLвггЩЮЮ&77—ќќ|ƒ\vТmUuD~61ЗЎЎЎ8;;dа†[чRв:/юхdъзЏ515јФd[ŠЋзыеїJыцЂC~~>љљљЊШ'Š‹•• ЊыбббQMырсс——xzzттт‚НН=666Rм“мqдцlг~Š‹‹ея„ј~h…:ё]вŽк0xсЎm aNŒoТс*nЕт•qQу4Ц)Дy?ЕŽЕšЦOSчРTб ­иh,вЛЕЁџ"=€Љћк4"„X{ОДЉOФkЉДvД~Ԙ$~_Д‹љФя‰D"‘Hю\юi!р_џњ`яоНєьй“aУ†qщв%жЌYCћіэ Ahh(=zє`лЖm„‡‡гЏ_?вввˆeњєщL›6гЇO3aТ"""xњщЇщгЇ3fЬ`њєщєшбƒПџ§я4kжŒјјx–-[Ц_|aPМ mлЖDGGѓЧFџў§IKKуРекч™gžЁWЏ^ܘ1ƒwоy‡шшhЕГgЯВtщRцЭ›g R™bзЎ]ьмЙSЧfЯžЭ#}њpша!ўјуѕ5}№С<ђШ#єызжЎ]Kџў§yьБט={6ЅЅЅL˜0жЏ_ЏКц~§ѕWbbb ŽгГgOњїяOLL ЛvэR…М™3gвЛwo tЭѓыччGhh(GЅџўДoпžuыжБuыV *МyэкЕќэoуБЧcжЌY3~ќxXП~§5sJъ;;;жЌYC—.]hеЊе-q–JЊPН^OQQљљљфцц’MVVYYYdff’NЇ#77—ЂЂ"е]aaa­­­ƒЮи9!ю‹ќkBРЮ ™{эЦN–к0Юе'rдj ŽфххЉяГVдлEјДЈмkgg‡ЃЃЃšcЯггUмnlllЄSFRяˆqFИЭ„Ш-ОZQ;77NЇ yкаіттbеaЈЙн„@чьь\-Gœ*†‹[!т‰1биЌНецЃ3.ФЃЈjOkr+kбVН5ЕЮTU\mjSn=э…­А'„уЕз^УТТ‚ў§ћ3iв$ƒМWЏ^ХУУУр8Т]˜œœŒЩmЕБqуFо}ї]NžO!lW‚­onѕcwŸVќПGZСTф§дцдV6Т`yy9йййЄЅЅˆ|ЂШ››юююъ­H  їД"Њѓ•H$ЩэХLЉ)ы}Р AƒјёЧ™;wЎ@#‘H$w#яНїПџў;лЗoЏwA(%%…‡ћїч‹ƒLnПSz„“ЂВВ’’’t:)))$$$pхЪ.]КDZZљљљ”••„dY[[ЋE'ќќќTЦЯЯuЂ*sнЛˆPИТТB233Йzѕ*ЩЩЩЄЄЄ’’BvvЖZаD„оЊkЯнн аЄI7nLƒ №єєФССсЎud lDЊцтжЭ$11‘… В`Сђѓѓ2dSЇN5Ш‰|3XИp!{Ў0ђ§їnъqяД!чeee’››Ћ~nХmZZš*L———ЋЯзцmТНННZFˆBnnnъХ с</d(ч#уBь+..&??Ÿœœt:йййdggЋ) t:š›PЄ{аКсNrWWWМММд ўўўХ}DюЯЛq|КbЗlсєК |ПhQ}wE"‘мBю–qьžwф]‹;u")‘H$…їо{C‡ёц›oђйgŸеwwю:ЪЫЫЩЯЯ'==„„._ОЬ•+WHKK#77WЭO$BФьььpvvЦЧЧGыќќќ№ёёQ'ЊТM"\UВjрН%ьээqwwЇI“&jБќќ|ВГГIIIQ>QЙXˆХХХЄЇЇsтФ ёђђRнцAAAјљљсъъЊцЏ•Hў*”––’ŸŸOZZЩЩЩЊh—ššЊ†‹k+:‹Jкк‹"<мннwww<<ЛЛ;>>>4lиРР@ќќќ№єєФоо^ОЇ’ZсВ999ddd––FZZЉЉЉЊkKŒwТugff†ZАE„[ —ШЉ&D;‘ЫN[0с^wiнI Ѓт"’РTЁQLC„PTs№‰ЯG~~Оš433“ффdЮŸ?Џ:0ХoЃ>>>x{{ЋE},-ЋO9ячпЃЙsчЊyЦ P ј]/7ndтФ‰jићЛяОЫћяП=НѓЈЌЌфС4ШOћѕз_ѓт‹/жwзюy6lи@||<ЏНік=/п м—Bо?ўё~јсЮŸ?TЙXVЏ^ЭъеЋoz8†D"‘мNмммXП~=бббДnнZ­P,љeeeфччЋ9ЫЎ\ЙЂ:Є222ШЭЭЅЌЌ œœœ№ёёQE___|||№єєTCХDЎ ЛaB"њЈ­Є(ЁqBрЎum$БM›И^цpЋ!ьZ[[ЋNсˆޘЬЬL222Ta/33“œœђђђHJJ"11Юž=‹ўўўЈVС"ВDRYYЉ~Оt:YYYЄЇЇЋaВ"МRЇгЉљ=Enf___ЕrЖ‘N;QY[ˆw–––jQ ЩŸёD\›ƒOфнЫЫЫ3pю‰мˆкb'™™™jЕn'''U№П—оооE}„Cѓ~ўЬDFFтююЮž={XА`КnєшбјњњўхуFGGГyѓfЦŒУў§ћoVwя(ЬЭЭйМy3ХХХ 4HЯKnœџўїПtьиŸjлrrr2dИИИ0nмИzшЁDЫ})фНёЦL˜0Ёкz''ЇzшD"‘м\кДiУмЙs:t(БББИККжw—ъQ}Д  €ДД4Йtщ/^$!!‚‚UhbK@@ 4 AƒјћћуъъzW‹%zНžќќ|233ЩЫЫЃЌЌLьМММ№ёёЁИȘФФDЪЪЪААА aУ†xzzbee…^ЏчЯ?џ$??ŸЪЪJœœœЦЦЦsssЧ 9зРТТBMъяххEpp0eeežžЎŠwWЏ^%==ььlŠŠŠд|666xzzDPP5Тпп777е#жћ‹ŠŠ ЪЪЪ(**"//ŒŒ RSSеЯRrr2999”––ЈE(qvvЦЭЭ OOOU(9юœБЕЕХккКž_ЁфV"DY;;;ƒbgzНžввRе‰—‘‘aръ.тттbt:щщщTVVbkkЋє  00€€МММpvvЦооўО­внО}{кЗoOddЄ*ф=ѕдSŒ=њ†ŽыффD‹-x№СяY! ((Ј*і&…М›ЧыЏПЮтХ‹M yЮЮЮtъд‰гЇOQН“s_ yЂфКD"‘мЋ >œ§ћї3bФ6nмxпNш+++быѕшt:8qт'Ož$11‘ММ<***дМM...јљљDГfЭЦЫЫ GGЧ{bЂQQQNЇ#66–ииXЎ^НJaa!˜™™б­[7zіьIRRыж­#;;{{{† BзЎ]БАА АА7rіьYЪЫЫiжЌ/М№^^^˜››Ѓзы)**RSVˆ\M2ЃvЬЭЭеJЕžžž<јрƒ“ЭеЋW9wюgЯž%11‘ььlJKKUQяРјњњвМysкДiCѓцЭёђђКЋEgIнЁ’yyy$''sщв%туу9ў<™™™Љпssssѕ‚…ї ЄqуЦСR€ППЁЏ"їžЃЃЃъ+//ЇЈЈNЇŠХ—/_&))I-ŒЂзые‚)qqqиййсыыKPPССС4mк” рффdGі~BћпьfўOЛ_Юу§ђ:o:Ž .дИнТТ‚]Лvнз!ёwїЅ'‘H$їŸ}і?ќ0џўїП™>}z}wчЖЂ( ЅЅЅ$''sцЬN:ХŸўЉаыѕXXXрююŽПП?Эš5ЃYГfj˜ЂНННA‚і{ќќ|Nž<ЩњѕыЩЬЬЄЌЌ KKKlllдќEкjН:NЭ—%\{ŠЂŸŸЏ† gž ##ƒАmл6BBBˆŒŒ$44єіПр{[[[|}}ё№№ $$„ЈЈ(’“џНѓЏЊЪўї›мфоє’Jz’аCЏ"HQpАыќPЌЈ0Ž 8:X,cЃX‘^DiJI !вщхІї~“пљž=Й$„   мїyxrъоћюsЮоkЏЕ>E\Кt‰ЬЬLВВВDŸЮЯЯЇДД”јјxьээёѓѓУЯЯWWWЬЭЭ5ялюЦЛЌЌ,вггЩЩЩЁЂЂ‚††ЁbЊЃЃƒЉЉ)жжж8::ЊхY”BВЅQ }ѕ‘vР€јњњ ХуђђraиЫЫЫJя’Gqqq1qqq˜››3pр@мннёђђТЩЩ 333ЕМ~4hјcјђЫ/Eк”Оа|n4†< 4hИMбееeчЮŒ9’сУ‡3sцЬ?ЛH7Щћ.??ŸДД4ВВВ(,,ЄММœњњzклл155eрРИИИ0hа АВВТЬЬ ƒл6ч[}}=………вооŽ­­-ўўўјљљ!—ЫE.ЃІІ&ЦŒC]]rЙ{{{1Б’Bg%ЫюF<шЪ?XQQ!VuMLLhhhјУыzЛа=Ї•фнhaaГГ3C‡ЅИȘмм\rrrШЯЯyаjkk)))!99WWWМММpuu^zўwQЉTдддєјэЅœw’—­ЎЎЎRHFсю9юЄўЅсЦ"хРью ЉЇЇw[}[Єд вB0ЮЙКК@EE…Pъ.,,DЉT ёŒккZJKKЙtщёёёBЁ{а AиййabbЂ чю…’’’’’055eиАa§ъS’‘пжж–!C†єiŒЙtщYYYX[[уяяS 7MMMФФФ RЉ1bDŸs*•ŠЈЈ(№їїЧЪЪъКю™™Ivv6жжжјљљ]б€œ’’B~~>јњњіыкэээDGGгииˆПП?–––§:ЏІІ†јјxttt1bDŸJМ\МxЅR‰ГГ3^^^}^[ЊЏdx—ълооЮž={xу7њUЦОшшш 66–ЊЊ*aœяѕѕѕФЦЦЂЅЅХˆ#Ў8NijjЂЃЃCYљh y4hаpcccУ?ўШМyѓ8{і,nnnv‘n mmmTTTŸŸOVVфффPVVFkkЋ№lВЕЕХХХ…ЊоэFІRЉ(++###ƒмм\ккк€.o/ЩKG2ищыыcbb‚““MMMШхrЬЬЬд&њНЕSGG%%%dggЃT*EЎЊЊ*rrrDО%mmmЌ­­E›УѓіеззгммŒJЅB&“ ЕWЕћKƒ•••@WК 333єєєDv•J…ББ1VVVЗеDP&“‰Ž РХХ E˜m^^ЅЅЅ”––R^^.ž 777<==qvvfР€§йебаO:::hllЄВВRєdgg“ŸŸ/zЄЩЄЄmgg‡НН=‚=&&&ЗэBХ­Fuu5‰‰‰””” ЋЋ‹ЙЙ9#FŒИ­ѓqKaлRшЖ ЮЮЮдееQYYIYYEEE ЅnЩаWZZJNNiiiиллутт"ђ~Z[[c``pЧѕлеЋWѓЫ/ПP]]MUUЧŽcчЮ|№Ст;юччЧО}ћpwwяѕ<њшЃќєгOшыыS\\Ь!CиКu+ўўўjЧцццђџўпџ#..ŽБcЧrётE _§5cЦŒ ""‚П§эoЂLГgЯц‹/Орпџў7ЛwяІІІ†ккZюПџ~>ўјc:ФЛяО+ŒИЫ–-УЭЭХ‹SQQ€ЉЉ)_§5ѓцЭыQааP{ь1rrr044Є­­§ы_ПЋ]“““YМx1ёёёLœ8‘K—.бввТж­[ЙыЎЛФq‰‰‰ќѕЏЅ  €QЃF%…%ƒ^ll,K—.э1oо<zш!|№Arrr€ЎБж{яНЧ /М ЎНeЫ6nм(Ю[П~=MMM,[ЖLЄ&БЕЕх‡~`ќјё=ъpъд)–,YBKK‹Ш‡шччЧж­[qqqQ;6))‰Х‹sсТ&NœHVVэээlнК•   цЬ™У/Пќ"Ž–2Йm IDATяо+VЌ`экЕL™2EDjTWWsша!‚‚‚дюsфШž}іYфr9оооœ:uŠI“&Бiг&at§ёЧљјуE?XГf ЦЦЦ<џќѓTWW`iiЩwп}ЧŒ3дЎщв%FE{{;gЯžХЯЯЏ_ПїэŒЦЇAƒ З9AAAЌ\Й’љѓчށСŸ]Є‚Є ZWW‡RЉ$%%…‹/ŠpУЮЮN 0`іііИЙЙсххХ Aƒ„кь@kk+ DFFЊ%…Ў­­%--ккZєєєИчž{Ых466RZZJ]] …WWзžw—гжжFbb"чЯŸчвЅKb{yy9111]b"!!!јњњЂЅЅ%„5rss)..ІККšііvtuuБЖЖЦЩЩ lmm…БЕЎЎŽффdЂЂЂpttФннccc’““)**ЂННooo‚ƒƒoлпЙЛQЯбб‘СƒSRRBzz:ЉЉЉфццR^^NMM ЅЅЅddd’’‚ŸŸОООИККbff&„J4мzЈT*aР+(( ##Cф+++iooGЁP`jjŠ……ііі8;;уфф„““–––= сn>TTT*rУyxxрээ‘‘бmЛht9ZZZ( !ЬуссASSххх’““УЅK—„K}}=™™™ddd`ff†‹‹ žžžxzzтфф„ЙЙ9њњњџ3*ёзЫќљѓёїїч@ЅRёЦo —Ы‰ŽŽКФ?Ю#Эˆ#ШЯЯЧХХ…љѓчSPPРсУ‡prrЂ  €ГgЯі0вНікk444№РаввB{{ЛкўЃGrяНї2kж,vэк…L&#==#F0eЪТУУбззgєшбЌYГ†чž{ЅRЩСƒ)..fяоН899ёщЇŸђбGё—Пќ…ЌЌ,5OЦ„„Б€Ї1фЁ1фiа AУСѓЯ?Oll,‹/цћяПџГ‹sнHFМ’’ #==њњz:::аееХдд???ёёёaрРшщщ§йEџУioo†/iЅ ЂЂ‚ЪЪJ066fєшб˜šš’››ЫoП§FEEzzzBЄЏ•JEJJ бббджжЊнЃЂЂBLКфr9ИЙЙбббARRGŽ!--ъъja0ьььDWWGGGFŒСнwпЭ€аееЅЎЎŽДД4Ž;tхс“Œwссс455Ё­­M{{;˜ššоŒfНЅФZLMMёєєdܘ1dddpсТЩЭЭЅЁЁФФDВВВˆ‹‹cфШ‘Œ3 5ЦМ[ˆЮЮNZ[[Љ­­%55•јјx)(( ЙЙmmmсхeooЗЗ7C† СХХKKЫлжx}#Е_žА§F'pWЉTдзз‹|ЂRШѓœ(^KK ah>|8555dee‘’’Bjj*yyyTUUQUUEee%‰‰‰икктыыЫ№сУqwwЧЪЪъŽX€№їїЧппsssЪЫЫЉЈЈ ,,Lдћ›oОСЩЩI, IJЎнбббсНїо№<ђп}ї'NœрŸџќ'›6mрѕз_'??Ÿ•+Wbggty’НќђЫ,\И%K–pўќyЌЌЌ˜2e =zTэ^ОООјњњЪЏПўЊЖЯССILLфьйГ$''ушшРлoПЭ/ПќB\\ћїячЙчžчЎXБ‚††–/_ЮьйГ№ііfуЦLš4щšкtйВeTTTА|љrFtyЧuvvRVVFnn.nnn,]К”ЊЊ*оzы-1†055хйgŸхЅ—^т•W^aяоНXXX0eЪЮž=ЫёуЧ9{і,чЮЛ^xАА0vэкХŽ;Фv777БИ\XXHll,)))т^Ÿ~њ)‡ІААcЧŽ /E•JХтХ‹iiiсwоу2{{{žzъ)о|ѓM>јржЌYРЫ/ПLee%џћп1b„Z}•JЅ0ъ]Щ“']^‚ЙЙЙjћкккxњщЇiooчеW_ Gžžžмџ§lйВ…uыжёЦoучрСƒЩЪЪ"""‚”” tхі>|ј0>|˜G}Tмчž{юсЕз^ЃНН \УЏ~ћrGђђђђ8tш .Фккњ†\3>>žШШHyф‘п•oцз_EЉTВhбЂ;іƒЎсЮ"""‚ффd}єQ1 а№ЧђљчŸТ'Ÿ|ЂцтџПHii).\ 66–ффd***hmmЦqssУТТ==Н;Жпiiiadd„‰‰ ­­­"ьUWWWxK˜ššŠЩП”їљГzћNuпж§---т’˜†фAЁЏЏОО>MMMdffђу?’““CKK  РЩЩ ”JЅH”.)nЮž=›ї...ІЊЊŠііvДДД066!^w"ZZZXXXˆў?zєh’’’ˆ'''‡њњz˜˜ШАaУ6lnnnwl›нJДЖЖRRRBJJ 111deeQYY)ТЮѕєєpvvЦггГGюCI чNЇЃЃƒжжVс-$х˜T(ДЕЕ‰мu2™ …B\.яѕ'-ЕЗЗгоо.СKJчRiw$/ЪКК:ў]“нккZєѕѕEюЫ;ЩЛЌ7tuuБААРииOOOюКы.ђђђHMMое"Яmbb"nnn 2„СƒуффtGМГЄўёшЃЊ/ЅАcЅR‰RЉье7wюмcŸЙsчrтФ іюнЫ† hmmeћіэ= cSІL **Š .ˆpмОњlіMžœ .\Б,зŠ4ІДЖЖюёмIэ•ŸŸOII‰ј[ЂЗzїж4єЮ1ЛёііцЬ™3x{{пыiiiсххEDDФb~јaBCC{э fffиккRYYyЭ–№+ёХ_`aaqCg4hј=М№Т |єбGН&eU( 4ˆŒŒŒ+&фе№ЧрььЬwп}ЧЂE‹ˆŒŒTЫCr+гииHQQ)))ФЦЦ’žžNee%2™Œ2hа ќќќ№ђђТССAxei@ЯT*ХХХbаennŽAAA"—‘фI'бнXwЕ{ИККЂRЉ())†<щССС@зїSKK‹ИИ8ВВВhllD[[[Јh"4жаа}}}ккк(..&''ЇЧ@Ко/nnnLš4 фr9---Ҙu'#“Щ000РРР+++ьььpppРооžДД4ŠŠŠ(,,ЄІІ†ВВ2Š‹‹ ФХХSSSwзMDš№H9У233III!##ƒ‚‚jkkбббaрР8::тъъŠ››ЮЮЮXYYнv Ј7’–– †МММ{{{‘~ЁГГ“„„bbb(--Ѕ­­M„ЦBWš;v,ОООXXXаииHbb"III"Э@{{;еееDGG‹пнббџџ™o№ЭFKKKx8š››ckk+“oš˜˜žžNkkk‡№ї")бhа№gаммLZZкїЫd2тттЈЋЋыЗЛ†›Ч”)SXВd ,рдЉSЗД7@gg' dffCttДSдU‡ Т№сУqqqб$vяi‚tyxБnж=‰ђяuПGїў$yZtПGKK uuu”••‰mФЧЧ“‘‘!oхххдзз –ввRšššzќОјјј0lи0k( БВВbа AИККCvv6ххх$''SPP@YYЃGЦлл+++tuuџьЂп–HЁ–’wбљѓчЩЭЭЅЉЉIˆНикк2dШ|}}qqqСТТBѓ~ыRHЌ4бnkkЃККZєe---кллihh ЊЊŠввRœœœ011AOOЮЮN:::ЈЌЌЄЁЁ…B!дН;;;ЉЏЏЇММœЌЌ,.]К$TВЅ$)…€”@ђ<“МіЭЗъ*шыыурр€^^^фчч“@ZZyyyTTT‘‘Aaa!ййй :”ЁC‡тъъŠББёmЉD-ѕ‘хЪЫЫ{ь“tuu{Ь+**дrІIFhшнЛЏ7zЛчхєЗ.’к)t•ћђywqqqПЎ]c‰‚‚‚+ЮС%шj)g Јз­ЗіјН‹+§mЩ№%—ЫљћпџочБ—ззЧЧчšЫѕёЧ3}њє>ЁаЋgЄд^КККjэ(qЛ=Ѓ4w„!OKKы†ё ЫћрJљіОњъЋЋž/­п2339sцŒЦЇсOcћіэWu–Ых#о-ФЪ•+‰gйВe|ђЩ'vqzЅЃЃƒццf8~ќ8/^ЄКК™L†••#GŽ$((__п^Wj5єЭZэьььМІkuvvвоо.Vэ;::D>МоаееE[[[фЛ|ђkff†•••šБPУ•бззЧХХGGG|}}‰ˆˆрќљѓ"міЗп~#??ŸqуЦ‚ЦѓыЃRЉ(--%::šѓчЯ“’’Bmm-ккксььŒПП?ЃFbа A"SCџ<%Q )ЊƒF&“‘‘‘СЅK—ЈЉЉЁВВ’””<<<АВВчКИИ`ccƒЕЕ5іііЂRЉ(**"<<œгЇOS]]MBBC† Сйй‚‚‚011сќљѓBгккšрр`aь“Bо5†ђО‘Щd˜››cnnŽЗЗ7yyyФХХEzz:MMM$&&’““CRRуЦcиАa"EРњмH†МфффћЄ…їєєєpqqСлл›ддTвгг>|И86##ƒŽŽєѕѕ™0a‚и.ѕлЫНјЁKUѕJє5Vіu?fШ! Ењю‘pEEEW7єЦ№сУEфСбЃGtuuёііfЦŒ ­­MLL Ч'** €ВВ2E~5™LЦШ‘#ЉЈЈ ЊЊŠŒŒ !’бкк*rBзиКЊЊŠЦЦFььь9r$ЦЦЦфффPXX(<,'OžŒxgъыыkŒфз€ЎЎ.NNNXZZтччGbbЂPl­ЏЏ'55UЄрЦЯЯя–_@–B`/џwЄqНЭѕЎДOњN8pЅR)„Ђ:;;йБcZZZjcїUЋVёаCБcЧ-Z$ЖямЙ€_|QmЎ Э!/\И@kkЋ№ФпИqЃˆšИќ[нНœНеЅЗ}rЙœХ‹ѓС№йgŸqяНїŠчn§њѕЂўНныrŒyќёЧйИq#~ј!ѓчЯщ:ЂЂЂXП~=§ы_…ЗлЋЏОЪŽ;дRэкЕ шЪOз=ТA*ГTžоъелОk§m'MšD`` qqqЌ^НšoОљF-uйВeДЖЖЂ­­ЉЉ)>њ(_~љ%|№sчЮо–|єбG<§єгтк’З_vv6ах(”­–ЯАЗ2yxx№рƒђ§їпГkз.žzъ)ЕівжжюЁ'аWНЅm—є”J%гЇOЇЕЕ•#GŽєлCєvцЖ6ф§ћпџцмЙsджжR]]ЭУ?ЬK/НРБcЧиМy3еееTUUёЬ3ЯрссС_џњW233ЎŽЙuыV5U˜_|‘мм\jkkЉЉЉс­Зотž{юК,вЧŽЧNžтлoПКV0іяп/ЎY^^ЮђхЫйЛw/ƒ ";;›СƒГaУ†кg;vvvђ№УS]]Muu5ќћпџfС‚dddˆЖњъЋЏ;v,аe_Еj555TWWуыыЫцЭ›yюЙчјц›ohmmхБЧcЫ–-@зCЛnн:ж­[Ч€hhh@.—ѓСЉёьььъAККК:tˆїпŸп~ћMlЗББaпО}Œ?^M5L.—Г}ћv>|ИpxійgYЖlYŸmQRRТЫ/ПЬоН{ёєєЄЄЄWWW6oоЌжŽ………МєвK9r///222˜0aŸ~њЉPi’кHjзёуЧѓєгOѓшЃrюм9 +qшЧЌіQ=x№ [Зnч-_Оsss–,YBNN~~~lлЖ€€€uHNNцХ_$::gggвгг™={6Ÿ~њiЄЎEEEМќђЫьпПOOOŠ‹‹ё№№`ѓцЭ <˜Ч\є9€|Pф—yђЩ'y§ѕзyт‰'ЈЈЈ§ўГЯ>+JёёёМ№Т $''уффDff&?ќ0ыж­НпћЬjИ2ЦЦЦьнЛ—ёуЧ3tшPЕUи?“жжVrrrˆˆˆрьйГбооЮР  88ЬЬЬnщАр; iм}bZ__OEE•••шъъЂЃЃƒL&УЬЬ rssщььФмм<<<Ф7NђмkllЄІІGGGLLLz иЏеЈсПшъъbnnŽŸŸŸШKuюм9ВГГ)..ІЕЕ•КК:ІL™‚ЯU}4\™жжV ИpсчЯŸ';;›ъъjфr9ююю <˜ЁC‡тььŒЅЅЅЦ я:щоv&&&ИККтчч'UˆЅЅЅ8ЎЅЅERT*ѕѕѕФЦЦ’’’BQQuuuДЗЗ фЦЦFК+ЉЗЗЗЋхЅью=ЌЃЃƒЦЦЦšпѕ:ЫхшъъЂЏЏ……NNN$$$””DNNхххDGGSYYIaa!У‡Чееѕ–НкП?П§і›ШY ]ѓжФФDмннYО|9„‡‡‹ЙЪ† ˜9s&ѓчЯ'**ŠШШHŠŠŠјњыЏЉ­­eюмЙШd2ђђђ˜?>:::Ьš5KЬЏ>љфaš6mšИїЂE‹ˆe§њѕЌZЕŠGy„№№pж­[ЧЬ™3YГfZљчЬ™ƒГГ3iiiŒ3†‰'’ššJnn.Я<ѓ Ÿ|ђ ‡fЭš5ущщЩщгЇХќц№сУИЛЛ3eЪZZZ8uъ”˜Ч8q‚яПџžI“&aggЧš5k хЗп~cцЬ™м{яН\Иp№№pЦЯЉSЇјт‹/hjjтЩ'ŸьгQхНїоiZЦŒУ‚ hnnцЧфыЏПсЖЏМђ .\`гІMxzzrЯ=їpєшQОўњk{ь1ž{ю9 k~}ьи1ЁЌЦж­[;v,ццц9r„Н{їУ7п|УиБcikkуьйГ$&&]S###юЙчŠ‹‹ ‹ ћїяЧооž3f`ffЦŽ;˜>}:[ЗnЅААљѓчгккЪО}ћhooJЕяПџ>111ФХХ‰њ666ВsчNО§і[Ем|гЇO'>>ž7оxƒ .№ѓЯ?Гlй2 '::ZЄлМy3хххЬš5 …BСЇŸ~Jff&Ы—/ЧЪЪ ___6nмHTTыж­^}™™™„††Š<ЪћіэУжж–щгЇS]]Mhh(aaaќќѓЯxzz2mк4ЌЌЌ хтХ‹ќњыЏЗœТŸС­ѕVЛСŒ=[[[оzы-вгг™9sІичттТьйГYЕjyyy?~œwп}—UЋVсттТЦйО};їо{/ТJ=mк4JKKYЖlеееj‰.Пњъ+Z[[ёѕѕЅЅЅ…-[ЖЫЗЅЅ%КККЬ;—ќќ|a0Кц‘‘‘Ќ\Й’uыжqрРaН„„„——ЧЎ]˘3gхххикк2sцLrrrаббЁДД”кккHNNЦбб‘ЂЂ"‚ƒƒЙыЎЛˆŒŒФжжsssцЬ™УчŸNdd$ЦЦЦЬœ9“ЇŸ~šuыжqј№aо}ї]}єQ|||„QЮннYГfБbХ ”J%‡"::šЕkз2pр@>ўјcіэлЧЌYГШШШPѓЂHJJbьиБилл“™™‰••ЉЉЉŒ;–Щ“')Ž/++#$$„‚‚іюнЫЌYГ(--ХЮЮŽ™3g’ЭЛяОЫoМС„ ШЯЯg§њѕŒ5 јяЪЮьйГ)++cщвЅДДДєС‰‰aТ„ јћћ“››‹‘‘QQQŒ7Ž„„Nž<‰ЎЎюUŸйM›6ё§їпїxf5єЗЗ76lрўћя'**ЊOг?‚жжVВВВ'<<œмм\сЉШˆ#№№№@ЁPh&CзЩяiПЋЃЋЋ+&А*•ŠђђrbbbЈЏЏG.—уфф„ЇЇ'жжжxzz’’’BSSeee"Н&нммLmm-TWWcooЏё^Й Ha~ЎЎЎ˜ššbhhHdd$ЉЉЉ”——‹0›жжV† rЫ{ИмŠH*ЊБББФЧЧsщв%:;;0` :”Сƒ3pр@ˆХ ЂЛ7‡dєщnˆжггS+wttˆsšššHMMхєщгdffваа€žž–––тлгббA]]ИWїѓ/ПokИvЄя––zzzиккbjj*BŸ„—ЋЎ^YYIPPnnnнRy ;vЌp‚ИœДД4JKKљлпў&ЖEGG3ў|233)((`щвЅjћ$Е№Ÿџќ[[[6mкФ›oОIEE>>>œ8q‚I“&ѕИпКuы˜љ„ŠŠ Ь™3gИыЎЛФ9RнyфЕКQRRBJJ ,ћ9r$VVVܘ1ƒ аоо.D=юtnkCžєrЩ‹/ОHxxИ0ф™™™aff&&=цццН†ЋЎ\Й’ЄЄ$V­Z%dУЭЭЭYГf ГfЭbљђхjо{—ЃЅЅХТ… БГГулoПЅММœeЫ–qп}їpЯ=ї№њыЏѓњыЏГtщRNž<‰ЕЕ5љЫ_hkkуЇŸ~BЉTrєшQ"##йП?кккŒ3…BСёуЧйИq#ООО<іиc@з єэЗпц›oОaЩ’%LŸ> <==9vь#FŒ@ЉTђђЫ/ГyѓfъъъиИq#+WЎTSю544фГЯ>cиАaЄЄЄ T*…B˜L&ЃББ‘xрЊF<€+Vˆ—юœ9sиЖm*•ŠТТB222№ёёaљђхфффАvэZс}7pр@–.]Ъ+ЏМТЫ/ПЬ?ќ€ЕЕ5>ј ЙЙЙœ={–_§•ˆXpp0)))ьлЗoП§Vђ|}}ёѕѕeЧŽ=z”Ÿ~њ‰ФФDqЏрр`œœœ(,,фШ‘#j/Л'Ÿ|’ЊЊ*Жmл& 6оооТлѓЃ>тЕз^реW_%;;›ЇŸ~ZєћяОћŽŽŽђѓѓЩЪЪюж’чЉ]>8ў| k€••ЅЖЏГГ“'žx‚њњzV­Z%МяFŽЩ§їпЯЖmлј№УyѕеWћѕЬ†‡‡їxf5\yѓцqіьY-ZФ‘#Gў”Ўф}•——Ghh( ЇЇ‡‡‡!!! >{{ћ[j ўПЬ•&–нsоѕ–џЎЏЩЊжжж˜››S]]Mee%БББ$&&ЂЃЃУ]wн%’ј:”ЌЌ,‘А\ 9ДДДЄЃЃC$Ђ—”§§§БЕЕеLoRтѓqуЦabb‚ОО>ёёё”——%<.ћTиг№_T*$%%J||Ы–-Лjд™žžяМѓNЏe~ђЩ'ЏzЙ\Ю‹/ОШ‹/ОxХcЦЏЊмggg‚‚‚ЎxЎ‘‘?ўјуUЫq'qG,љѕЕВ)э›6mš0HлGŒtYЏхšзSІYГfЁЏЏЯ!CдЖKТ’ uijjт—[ЏЅ$Ÿ?§є“Гюo™Л[вaд;uъ”яь~Nbb">ј 2™ŒћюЛввR‘ uУ† =>666R[[Ыwп}'Ж;88Аkз.tuuљђЫ/йИq#=єМљц›=ЪШФ‰ikkу‹/Ол[[[йБcЯ?џќUыоииШЖmлд>œЃFТТТ‚мннЉЉЉaЧŽм}їнjзъЗkз.5ЕFi щфф$ŒxнЏ}їС{яНWё k2иуМШШH"##144dъдЉjзђѓѓэ\__/ŒЪны;zєhЬЭЭ7nœШ+б_zыѓaaa$$$ —Ы{ЌJэѕљчŸїzk}f5єЭ{яН‡––VЏЯаA{{;ќђЫ/œ:uŠММ<єѕѕё№№`юмЙLš4 '''я:‘ЩdшъъЂЋЋ‹L&ыu"Ћ­­-ŽЛќ˜ЮЮNБ_ “эОпии777с™-—Ыщшш ЉЉ‰ЦЦFšššPЉTсээЭ§їпЯ№сУБЖЖІООž„„N:Х™3gˆ‰‰!''‡ІІ& „ш…4зббщЕ Ў###FЭьйГ;v,ЦЦЦДЖЖЭ‰'HLLМЊзƒ„КiBB{іь!,, ЅR)’ЫЯ;—yѓц1bФяs=сіДДДŸŸ/RГилл3mк4цЯŸЯнwпЭИqуpwwя3ЕУх‚mmm455бккJ{{ЛцКСсыыЫТ… ™7o~~~QUUХщгЇйЙsЇЙеU5hаp;№ч/Iм"H†ŒюHqђ§I yЃxѕеWyѕеWˆ‹‹уФ‰ФЦЦєžВ/bccEљ§ѕWoˆјt•JХ… Ўj§—044^mнUsbbbдЄЫ%$Џ.@-4Gђlь-Ї$iЎц>>vьXжЏ_Я‹/ОШ3Яи]AшrњлwCCCЎ—oОљFlяььdпО}ЄІІвииH\\œћю^п![#8ў<а%/ЙЈ‡дЧrss)**э'qЋ<ГЗ 2™ŒmлЖ1bФ„'хJЅBЉTrќјqЮŸ?OEEІІІ <˜9sцрююЎQ$НHm*M œœzМЇ$БœЉSЇŠpX777NІP(3f ...ЈT*lll000я^]]]yр№їїЇДД”ІІ&:::ажжЦнн]<Їњњњјјј`eeE~~>EEETVVввв‚ЖЖ6rЙLLLАВВbа AШхrŒёѓѓя(5U9 зЎЎ.ЎЎЎШхrфr9П§і$''ЃЅЅ…ББ1j!<д)--%&&†У‡“ŸŸOSSжжжјћћ3uъTммм4љвn"зcЌбжжVЫQX__OAAХХХЈT*RRR8ў<хххWМ†$шЃЃЃC[[………ќќѓЯиии`jjŠC† бфјМHЊЯAAAX[[sюм9Юž=KII YYY>|XЄК^С? 4hјГбђўibб?уУкббСцЭ›…ЯТ… yр5jЏМђЪ5_ЏДДTќПААPmаann.‹$Пўа[ВkЙ\.r"I9C.?ЇЛdxwjjjDˆpwЄmв1нyс…иН{7gЮœЁДД”–––+ЊWЮš5 222иБc=і›6mRSыщ‹юЦКОVЮЛ—ѓђњHіЮЮN5‘ ‰оњ`шЋяvШvя ’Ђ”D@@€нUЉTjЦК›щ)аŸпКд/7фѕ–O3О> РюнЛЙчž{№ёёщ!UГ(--%::šааP***000`шаЁLž<OOO 49Ѓn’!ORњвззяёьщшшрььŒ™™*• mmm!*"Љ,Ž3†––:;;Q(‰пGЪ]ффф„™™ЭЭЭjJ|†††тЂ­­BЁРЮЮ333ммм„*Є$šЁЃЃƒ\.GЁP ЏЏL&УФФ___‘ЮBOOЏзwˆ†ыCЁP`ooЯФ‰QЉT„‡‡SRRBzz:GŽAЁPрффЄ1цѕBqq1‘‘‘œєRnПюlпОИИ8†.Œ^йййНжEЪ?єG3rфH”JeЏ9ф:::XП~=эээ 6LєЋоъћ§їпsсТёwo}~нКu}і[јяo_YYйУыRjЏaУ†i&ь0O?§4wнu?ўјMЭ%# ЇHIХ;;;qpp ((ˆ€€ђА З:::xzzŒŸŸ …‚ВВ2"""HOO‰лсеu•у:::hllфтХ‹„……‘’’BGGіііŒ7ŽБcЧтццІ1т§шъъbee%Ђ МННБЖЖV3šщщщсрр@@@ўўўxzzbbb""Є“&MbєшбрччGPP'NdьиБтњиллЋyЇъщщ1dШ&L˜ ФšЄc%Яhяц"y O:•qуЦсъъŠ––999;vŒ‹/RUUuЭi‹4hа сVрŽ№Ш“<Хz{QпŒ}FFFдзз“——ЧаЁCINNІККZ„3u?Џћљ’qEЅRЉmЏЌЌdгІMНмЄЂММ< kаyќјqо|ѓM,--YДhлЖmуНїоуž{юQ[•ъ>њHˆTТ€і№УЋyoIѕшkЕўЅ—^тлoПхаЁCДЕЕ ƒYRRiiiИЛЛЋI}geeqяНїђо{я щь?ў˜Х‹ГtщRFŽ)ТDЛchhШтХ‹yџ§ї9}њ4ыж­ыw}YДh[ЗnхУ?dсТ…Т+%++‹eЫ–BЁрЅ—^bЭš5ьйГGMк[ЪCЗtщR zДQo}ЉЏ}зк?ЇN*Мп}їнJSяПџ>ссс,[Ж SSSxрОџў{жЏ_Я§їп/ŒБ,[ЖŒИИ8qЎфI#ѕСВВ2.^МˆЗЗwŸeђёёaЮœ98p€§ћїЋ)tIо’’Šюя­З†пЧЇŸ~ЪИqуј№УWXђ1^Мx‘†† aиАaWѕ^ж AУЭG24шшш0x№`ъыыQ*•$&&’žžN||<ЖЖЖЃ;аввBnn.GŽ!55•жжVШДiг˜2™ ІM›†ŽŽЄІІrщв%Ž?ŽЁЁЁјЇAƒ џKШжЌYГцЯ.ФЭBЉTrўќyЖlй‚RЉDKK WWWŒЉЋЋумЙslйВ…ŠŠ tttprrТТТ‚КК:ТУУйВe %%%т@[[› &№Ы/ПУЉSЇазз'''‡ЏОњŠ7оxƒ;vєў(‘ŸŸЯз_ eeeТ+я?џљ_§5nnnќ№УвммЬљѓчйО};‰‰‰ДЕЕсээMkkk КЕЕ5іііьиБƒЌЌ,&L˜@QQ?ў8ЕИз§$''sцЬ222аззЧппŸ3f`ooЏЩ[ЃAУ-†ŽŽ …mmm222hiiЁ­­ SSSœЏшiЖчУXўяёMmm-БББФФФаккŠŸŸ!!!§ыю/qqqфедpQ0IЬррСƒ\Мx‘ЦЦFœœœ˜0aгІMУмм\~ќ"хз”ŒkRxewCž~+# StWšевв овqв12™ Й\.ЖK†ЙЫНьЄћHy>ЅRоQ  RJ™LFyy9UUUддд “Щ033УЦЦцЊПGaf&e)ЉЬ›3ч*Е ў ўWоЭZЗБїёуЧйН{wэ=іТ˜жeЫ–ЁT*йЖm[}Я?џ<БББœ;wЎЧОз^{M(Е*•Jž{ю9BCCбггcЩ’%ќ§яG[[›§ы_ТkЉ;Ÿ}і:::œ={–5kж˜˜ˆЖЖ6AAAМђЪ+ГcЧ6mк„ЃЃ#+WЎФУУшђР[Лv-_}ѕuuuŒ?žЯ>ћL-QCC}є{їю%''sssBBBXБb…šзT_œ={–œœœ8{і,Я?џ<ссс( fЮœЩ[oН%МЖJJJXНzukиии№ЯўГзы‡……ёЮ;я\.gъдЉЌ^НZ(т&&&і№"ЛяОћpvvцƒ>шqН|ёуЧїи>fЬž{ю9yф‘~еЛ;UUUЌ]Л–џЯо{‡ЧQžэлчі•VЛЊЋ•ДZѕ.YВlЙуЦ6`Hh)o€Р/'„B07д№вв!&BBшCBHlР6Ц–‹,ЙШъВКVeUvWZm§ўа7­šepХs‡аЮЬ3Я<;ѓьЬ5ї}няМѓ6›””~№ƒpУ 7­чѕzyњщЇљѓŸџLSS‹…nИќрbФaMM O>љф„}\{эЕddd№Ш#LXvХWАyѓц Ы~ўѓŸS]]=щ9џ“ŸќD<_кккxєбGљрƒшюю&!!uыжё“ŸќdТУЭfус‡fѓцЭєїї“’’Т~є#Оёo­788ШјCўѕЏ!—ЫЙюКыx№СQЋе<§єгbъѕX~јaq<ђШ#Мљц›єѕѕ‘ЭmЗн)КeЫ–ЯtЭЮš5kТч3чУ?фњыЏЇДДT,.0:::XЕnOэ-tЙнnч­ЗотЃ>ЂГГ“ЄЄ$ЎОњj,X І7IHHœ]ŒŒŒаааРkЏНЦў§ћ ,ZДˆ+ЏМrЪт8_З$г9‰УЩ ЅЅ…чž{ŽgŸ}ЛнЮWОђюМѓЮпзЬ”чž{ŽЭMмpпФћяvэкХoМAoo/111,YВ„еЋW“šš*‰xg‡ццfvюмЩ{яНЧРРqqqЌXБ‚ЕkзЗњљž§‹Ъ77ётŸўtšz,!!q&8WžAОаBžФЩeЌзддtІЛѓ™8pр—]vSVИ•цбGeгІMlлЖmЦзЭtB^  ООž^xУ‡ЃRЉ˜7oз_=FЃQŠЦ“8‹щыыугO?хЕз^ЃГГ“єєtжЎ]Ыe—]6Љ`ѕEђ†‡‡)++уŸџќ'{іьAЃбАhб".ОјbfЯž-yтIHœEИ\.иМy3{їюexx˜мм\.ЙфVЌX1э§‡$фIHœœ+BždЮ qТœ+кярр kзЎeTлЄщ IDATэкЕŒŒŒрѓљјсШ§їп/‰x'РЯ~і34 /М№ТIi/ааа@[[УУУФФФ-І[KHHœНшt:ђѓѓХЊЕНННдззуt:EŸвѓ‰žžЊЋЋЉЎЎ іЬ™3‡ЌЌ,IФ“8ЫаjЕbкЛйlF&“бввBEE}}}ЂчЁ„„„ФйŽ$фIЬЁ*Ўлэ>У=™;vьрƒ>рƒ> ЏЏлoП•JХЗОѕ­3н5 ‰s ™LFkk+‹/>)эљ§~ЊЋЋ@&“a2™HOO—вЯ$$ЮT*qqqAžУ­­­єііžwBžпяЇЁЁЊЊ*њћћQЋеЬ;—ммм Т_gЁЁЁQXXHTTTWWSSSУШШШ™юоч•W^aеЊUЬ›7ЬЬЬIm</НєвЄж9'†гщdЭš5,^МXЌh-ќ“˜IШ“8.@€ЋЏОš›nК ѕ\ДhЗп~ћюйє,ZДH,т‘ŸŸOKK oНѕ–T%LBт)//'PXXxRк 455сvЛбщt˜L&тттNJлЇСМ?55•№№p<ƒƒƒtttœwBžнnЇООžЖЖ6дj5fГ™ттт“^lCBBтф!—Ыбh4Ь™3‡ФФD }}}ьлЗЛн~Юd*,XР]wнХE]D}}====жyъЉЇјц7ПЩŠ+ЮК(F—ЫХюнЛ?гЖУУУ”–Nюэ|ЊPЋеќєЇ?хЎЛюЂЋЋ‹жжжs&hFтЬ"х0I™LЦнwп=сѓГНhTTGŽЁММ“ЩDjjъ™ю’„Ф9ЩІM›ИњъЋOZ{~ПŸЎЎ.<бббDFFzвк—8ЕШхrbbb0 Шхr†‡‡щююЦуёrІЛwкАZ­ДЖЖвппOHHyyy˜Эцѓj $$ЮEфr9)))ЄЅЅбддФРРuuuєєєqж?уœJRSSIMM%::šЧ{lЪu„1<лВ)ЪЪЪјюwПKEEХ oЛwя^nП§vіяп z69*•ŠUЋV™™9Љp*!1’'1#цЮ{ІЛ№™аjЕ,\И№LwCBтœfгІMќс8ЉmіѕѕсѓљащtшѕzБšГ„„ФйL&CЏзŠRЉФыѕ200€пя?г];mј§~Z[[Eгd2‘ŸŸ^Џ?ыl%$$&NRR&“‰оо^:::шььФl6ŸзBžРt†џ_ўђ—imm%**ъЌ+ №YМ“БэЩ@Ъ“8ЄГEBBBBbJъъъшюю>щ‚ј№№0@ЕZFЃ‘n^$$Ю1„kWЉTтїћqЛнч•чѓљhooЧnЗЃT*‰ˆˆ 55U*p!!qŽ P(HHHРd2p8X­V†‡‡ЯtзЮ тттЮЪљюХ_ќЬлОєвK'Б'ЇщЩIBBBBbJоzы-ЎМђЪ“.Д 4gл›\‰/@рМї::•ШdВ ыї|ы@ €ЯчЃЋЋ‹ЁЁ!ДZ-бббDEEIбxчQQQDGGЃT*ёљ|єєє044tІЛuBttt`Гй&]цёxЈЏЏЇЃЃуИэx<1Нјd300@[[лЄЫќ~?---;vlF/ƒ:;;illœрЭчѓљИчž{иГgЯ їЯчѓБaУіэл7ЃѕН^яŒЧu::;;ЉЏЏ?!YЇгImmэ”пљx|>ЧŽЃЅЅх„~Ї­V+ЭЭЭОЧCCCнннЧm#аввBSSг НшЁЎЎŽОООos>" ySВiг&ЎМђЪ“оЎVЋE&“сvЛЯЛHž“I Рхr100@__6› Лн.%ќ~?CCCєїїcГйАйlєѕѕ1<<<сцбяїуrЙ‚жлžАЮиі„§Ž§зппЯрр .—kЪT!Sиf``@ЌŽ>]ŸњњњАлэј|О)Mјяd}ћoќБIЬЧƒлэЦчѓ‰0Юa^ˆ@t8xН^дj5ƒааP)КXBтBЃбFHH@@ќM8л^LќуџрўчИєвKYВd ќущююfеЊU$%%ЯŸџќgq}—ЫХ† 0™L\~љхфцц2{іlЖoп>iћO>љ$qqqdeea2™јв—О4Љ Зmл6ЎЛю:ЎИт –/_ЮзПўuqйбЃGЙс†ИтŠ+XЖl?јС№zНмzы­F, пџўїƒклИq#ЉЉЉ,]К”%K–””ФѓЯ??iп{я=fЭšEVV—]vQQQlиАПпO[[qqqќђ—П ККšŒŒ ё_KKЫ”cлммŒЩdтбG ВВ2hлііvq]ŸЯЧC=D||<ыж­ЃИȘттbЖmл6eћ“q№рA.\HBB™™™ЄЄЄ№ќcкm^~љe IMMхЫ_ў2ёёёФЦЦrџ§їOzэїћyьБЧ0›Э\|ёХЬ™3‡ЌЌ,оyчqўў~nКщ&ЎМђJVЎ\ЩкЕkБZ­ЌYГ†јјxRRRШЭЭeзЎ]ќх/СbБ‘‘A||<_љЪWp8“ії/љ iii,]К”+V––Ц_џњз uўяџўЏ|х+Ќ^НšyѓцбжжЦу?.ž‹FЃ‘Џ~ѕЋ œајž/Hy“вжжFuu5Ы—/?щmGDDаннЭаај0,љф8‡ЃGRZZŠнnFMЈ‹ŠŠШЬЬD&“122ТЇŸ~JUU•˜2$“ЩШЭЭeжЌY$%%‰эyНо эЅЄЄPTTDVVnЗ›нЛwsєшб)# Z­–ЈЈ(HII!!!…BL&УчѓбббС|Ррр >ŸЃбHAA%%%Am SUUEii)NЇ…BA||>ž+V№ф“OR[[Ыš5kјъWПЪеW_MXX›7ofуЦмxуј|>ЎМђJЖnнЪ[oНХКuыpЙ\\sЭ5ЌYГ†-[ЖАdЩБэ|_ќтЬ;—?ўёФФФ№№УsгM7Mш‡бhdйВeќч?џaЧŽ‰Ы \poНѕŸ|ђ ƒ{яНЧУнwпЭ<РГЯ>Ыo~ѓ ПјХ/x№Сљпџ§_~ё‹_ “ЩИїо{Йљц›тЖлnл~щЅ—ИщІ›(**тиБcDEEqп}їёРЩэЗпNii)}єпўіЗIMM ЦтттІл={іАuыVжЏ_Ozz:›7o—ЧЦЦŠџу7ђђЫ/ѓъЋЏrЭ5зрvЛљкзОЦš5kxћэЗYЛvэqПЫњњzVЎ\‰гщфќ#W\qŸ~њ)пњжЗІŸ{ю9nЙх~џћпѓя|ФМф’KИџўћ‰ŠŠš ’оrЫ-<џќѓ<ѓЬ3Ќ_ПŸЯЧњѕыЙњъЋyэЕзИъЊЋPЉT,ZДˆ]ЛvёЮ;я`4ЙђЪ+YНz5wп}7›6mтwПћ_њв—xєбGyьБЧјэoKxx8?ћйЯxу70 <їмsAћ~ьБЧИыЎЛФяро{ях†n ЇЇ‡§шGфццтvЛЙяОћИяОћhhhряџ;NЇ“ 6№њыЏЃбhјЫ_ўrмБ=п„< ‰IyћэЗЙќђЫOКŠ\.Чd2‰‘U}}}8Љвуg@№щкН{7НННРhкEbb"™™™РS@vяо-Ое”ЫхєііЂбh0™Lh4БНŽŽJKKХЗё‡ƒФФDqŸ^Џ—КК:vэк5щ[R™L†\.G­V†Щd"++‹љѓч“––†VЋХчѓ100РО}ћФ Ц)))DDDLђмn7­­­”––bГйPЋеdffВtщRT*ѕѕѕькЕ‹ўўў;™LFAAfГYђNЁђДнn' еj1(•вmЅФЙ…ЯчYјoЪИBЁ8Џ„щ“Щи1„ Й\Ž\.GЉTžbw 8Ћњ9gЮцЬ™УоН{Љ­­х§їп'??Ÿя}я{TUUАtщRžyц>јрОіЕЏБnн:`4 т‰'ž //я}я{”——аииШC=„\.чеW_%--MlcЩ’%вaѓђђШЫЫ#..Ž7п|3h™йlц–[nAЁP№яџ›ііvЌV+Лwяцх—_F&“Бhб" {їюхс‡&--{яНWыџ§пџeуЦмyч|ѕЋ_Хh4вннЭїОї=ќ~?Я?џўјуМєвKмvлm\vйeшt:nЙх xёХщююцћпџ>їмsЫ—/gЫ–-TVVrы­ЗRSSƒХbFЯЉ /М_|‘gžyFУ=Ъ=їмCdd$?џљЯХяіž{юсЉЇžтЮ;яdнКuddd№Ѕ/}‰Ы/ПœћяПŸ@ @ee%лЖmя%YДhЏНіO=ѕƒaкБ=пюИ$$$$$&eгІMAoDO2™ ‹ХBcc#CCCX­VКЛЛ1'}__t‡ЁЁ!1:ЮхryЧмn7NЇ3(‚ЎЎЎŽФФDrrr‚„Кёэ уѕz‘ЩdтC™лэZGЋеЂгщP*•Ђ˜гщФfГбккJss3NЇNGBB0њА7<<ŒгщФыѕтrЙ№xЕДД088ˆRЉФ`0`2™ЮЋБ„Й\ŽЯчУэvуёxЫхgTpЙ\т55‚ Ђбhаh4Ћ@ Ррр`PъєTmhЕZдjѕЄЧэѓљpЙ\bъеLМQU*aaaЈеjќ~?^ЏWŒкъX *• ­V;#ЁHHзw8 тt:Сяї‹бФaaa Б/улСщtŠЉљ*•АBCC'ŒлэfppP<~­VKhh(*• ‡УЫхšqии1ЦJЁPˆћаh4„††Š/тЦЮЗcЧNЃб гщ‚ЮБ}цйЉ^ь э;ёŸЧуЯс|Њ]ыtКIЯНгпяЧуёˆз‹pўœM"оX„ё*--хЗП§-П§эoйАaƒјлњдSOЃтаXВГГбh4ю›ЧІџТЯёж8‘‘‘$%%Q__ЯПџ§o.Пќr јћќюwПДЭьйГЉЌЌdѕъеЂˆЃт2Œ^ћнннтљЗqуFМ^/]tQPІ ќН§ілlмИQLeЛяя|ч;AїѓцЭчЗЎЎ.IШЧљsЧ%!!!!1cl6{їюeѕъе'Нm™LFVVeee8NЌV+ЧŽ#''Gђ—:A„ŽБc?›І1ўСЄЏЏккZЊЊЊ0›ЭтђЩк›jПТџ'$$ŸŸбhЃэ*++immehhˆююnЖoпNvv6сссшtКiлŸl“§­T*)(( ,,,Ш_ЏННЊЊ*б‡Ÿœœ222‚Дccc1›ЭЧнПФёzНєїїSWWЧРР:ŽјјxŒFу(?]Œ@”JЅ(”ЃRЉЮи8кллЉЈЈ˜в]ˆ–ŒŒ$>>‹ХBxxxа—ЯчЃЂЂ‚––†‡‡'\rЙ­VKxx8‰‰‰$$$LhF_466Šцѓ3ђL&ГgЯ&11ЏзKgg'ЛwяS§Ч"“ЩФШ_ЃбHRR111ЂыTcфt:ЉЏЏЇВВ’ккZ:;;q:ј|>1M<>>žмм\ђђђ0›ЭAѓF РjЕRQQеjFsrrШЫЫ кЗЫхЂЉЉ‰]Лv‰ЧoБX(**"66–C‡‰/:fТи1Œ‰‰aЮœ9DEEбммЬЇŸ~*Ў—˜˜HQQ‘˜Rшp88zє(•••bjЕšддTfЭšExxИИэШШMMMьоН[),,$>>~BŸќ~?дееQUUECC]]]bъ§иѓ%..ŽффdВГГIOO',,lFЧ}Њahh—Ы…L&ХЯГUШˆ‹‹ЃзхrЙ(ЂX­Vjjj(++ ŠTЂпa4Вkіьйb„зx8)‘ъBD аgСЋЏЕЕ•?ўётчCCCTWWpрР`TД&DЩ=їмsR:O%‚Oмdз€йlІББ‘]ЛvM+ф8p@МІЛN‡ХbЁЎЎnТvwп}7wп}7GŽaЫ–-8p€;wН№ћ§|ђЩ'РЈWриёЕлэtvvЃч€ ф Х_Ц"\ЃщщщAŸ  >Ÿ/H|ФпЩЦI8OЧЮUcЩЯЯњ[.—c0шыыћLі)_t$!OBBBBb›7oцт‹/ž]p2ЫхdeeO?нннTVVВpсТѓЮgыL"<є oц###Ї\wК‡!ТrйВedddˆ[‡цНїоЃВВЧУрр dgg yŸЧT\ЁPŸŸOVVVP;‡ТnЗгии(FƒфччГ|љђ у"y$fЮ№№0GŽЁЕЕ•ссaL&щщщшѕњѓцкR/cbb ЁЇЇG,ђ2>КщtтїћioogлЖm;vlвu^ЃбNJJ +WЎ$;;›ˆˆБ@Ю(//ŸДjриєљˆˆ XИp!bš>Œ>”744№юЛяЮЈџrЙœЬЬL0›Эx<ЌV+[ЖlЁЋЋkЪcQ*•„††bБXИр‚ ˜={6&“iТњ^Џ—оо^ЖlйТў§ћХsиуёЭ]]]444PQQAVV‹-bўќљbJŒV›мБc‡(š˜ЭfT*999AпПЫхš0%%%$%%a49x№ {їю­ЦL>GЪхr’““1›Э„„„аииДЙsч’˜˜$ф9r„їо{OlOЁPPPP€Z­fўќљA}>vьяОћЎX§{Юœ9˜Эц чУУУ455БuыVŽ9BWW—XфHH­ŽЃННккZіюнЫМyѓИќђЫЯИ­A?НННИнnфr9111ЇфОчdГ`С‚I_| Т2ŒFнЗœR9o\aљd‘NcЇ? &“iЪєVсzюшш ЌЌ,h™ЉV\\ ^cХцгЭШШˆш1Ќзы',Цяxc—ŸШ˜^xсž|ђIœN'з\s —]vљљљмyчAы …Ц`ДЧјѓфпј0I8­V;eп';юЩŽёГŒSDDФ„ЯІ›Яw$!OBBBBb›6mт+_љЪ)i[&“a2™ШЩЩЁГГ3шЁiоМygќ §ЩD8F#,ЈЏЏч№сУ”””ˆ уЗ5ўo•J…NЇoв€X§ЎЎЎNLб;йUb…ˆFдчааPёX„IЁ:сLoF%&"+ЅЅЅєїїЃRЉ0›Эdffž7"ž€\.'>>žАА0:::Айl455{в}EO!5^ˆ`“ЫхЈT*БO^ЏЗлнnE Ax),,DЇгСnЗcЗлEсRИЮМ^Џ˜6йппнnЧяїЃзыƒЂL„ъОcЃщ„т“/ТЕ:6Ђиыѕтt:Х6„”x!ЅYH‹ьяяЇППŸЯ‡BЁР`0yUyН^:::јшЃиЙs'эээИ\.4 ФФФ RЉp:єєє`ЕZqЙ\ŒŒŒˆv+WЎгѓН^/УУУbП†††&ЕR7‡8o ‰)Ї“ЭЯB„ЫиtbFƒRЉЪ§~а8y<œNЇ™3vТњТw:vўnllЄЂЂ‚мм\qокs8b†††&Єk;jjjјрƒЈЌЌЄЗЗЧ#zЏFGG‹Т€P]НЗЗ—ССAl6лЄUЪO'~П_МQХd2~НSo+нvлmЌXБbкvсdlЕРXQ№Г0] N‡гщфвK/eУ† гЖ#ќfO)ƒƒƒМђЪ+мrЫ-'Мm?ЏПў:пўіЗ‰ˆˆ ППв—BєtЧ СB•нnŸ œM5цз_=/Пќ2wмq<ђˆ˜~*xч%44TœОёop§ѕзO'“ЩDUUеgЇѓэ>тѓ" yA8>ўјcўќч?ŸВ}„††2kж,ъъъшээХjЕВkз.Ьf3ЩЩЩAQ'™LF\\œ˜лееХО}ћHKK#22ђИ"оLov.ьћT1v?“ѕYz›ћљєііrфШ>Ь№№А(тѕX<_Ых$&&Ccc#ƒƒƒTVV’““# Mg‚ётС` ##ƒєєt1ZЖГГ“ІІ&ЌV+6›ŠŠ ˆ‹‹#55uB;JЅ’ииXŠ‹‹ СnЗгжжFMMи^MM ™™™вХЦGnnnPtлиО›L&бGk2єz=ХХХФФФрѓљАZ­дзз‹ХWjkkБX,Ьš5+Hв§ЗoпNkk+^Џ—ЈЈ(ВВВ(..&66VєЌkiiсРтїZ]]JЅТbБ••5eдЪTѓлxЋƒБЖ‚5РиД1›ЭЦсУ‡щььХЭќќќ )О111ЦI-fвa_B:lVV–8fуеёэћ|>кккиН{7{їюХnЗ#—Ы‰‹‹#++‹œœ1bF#їhkkЃЙЙ“ЩtЦкэvЛxчx\\м9!ф­Є:–ддTЂЃЃщээхР“ yяОћ.йййdee1wю\оyчjkk'ЌWQQqJњЃQЉџќч?ХЂ“эЛЇЇ‡‹.КˆЙsчВiг&бŽeЌXщvЛyєбGЙчž{DпH H$ЎЉЉсјУq…МЩЖ­ЊЊbуЦ|ћлпцТ /ф­ЗоЂЉЉ)hЛ@ F@Џ\Йrк}‹щЈЕЕЕAоаэээ“FяиБƒ—_~™№№№ F#ЧЃVЋ),,ЄЂЂ‚ђђђI…МэлЗ:ЁИиЩ`хЪ•SF… v'^xсIпяљˆ$фIHHHHёўћяГxётiS-?/ …‚ŒŒ ВГГiooS<333 %>>ўŒпфQ˜LРJHH@ЋевввBss3‡bўќљbдЮdтлt‚œЫхЂЗЗW|№tЛн:tˆііvFFFФьШШHIЄ=Gq:дддАgЯКЛЛQЋеdee‰О‡ч‚ .јУ rј№a-Z„С`8kвѓ"##)))aѕъеbЄ]}}=;vь =iяЂ7ЕZйlfнКuDGGгззЧЁC‡шъъЂЗЗW,HaЕZЇ­і)“ЩHLLфт‹/&##cвu„ШПЉgљђхdgg#“ЩЈЎЎцу?€щээХnЗ‹щЕ~ПЋеЪСƒ9vь@€ааPВВВXНz5sчЮЃXМ^/нннDGGѓюЛявккŠнnЇООžВВ2Ьfѓ„рЯŠL&cЮœ9Ьš5Kœ_€ј‚K№В’Ых3ўќ Й\NHHШ Wь‹ЫхЂНН}ћі7уљйсpP[[KYY™XН<&&†ттbVЎ\) žТяИ=iГйЈЏЏ'œбyУяїгввBcc#6›вгг1gѕo”!9е‹Й\ЮwПћ]zш!ž~њinОљц (єЊЊ*nНѕVбЧьњыЏчс‡цРьпПŸЙsчЃз‘№2wВт BфчdEZ„ЯІЛ‡Лѕж[љч?џЩ;яМУ‘#G‚Мбјц7ПЩ#<Р 7мРC=D??ў8їнwŸИю#ќ№CњћћХ(уѕ,к IDATФОО>ЖmлFTTпўіЗХѕЧзLї!1Š$фIHHHHБiгІ •ЎNбоо.F†|єбGDFFЂзыЯKqрt “ЩаыѕdffЂVЋijjЂГГ“ђђr"##'м,ПyO  ЅЅ…O>љ„ЪЪJ|>ƒƒƒ=zЋеŠзыEЉTAJJŠTuьФяїгммЬО}ћ8tш(b‘žž~оЉ '==ЊЊ*КЛЛ9vьGŽСh4ž5BžBЁ@ЇгЅt ТcUU• 6000izќЗBЊС` **Š№№p|>111єїїуѕzEЁцxЈTЊЯ5ПЫхrєz=hЕZбpћіэЂПŸзы šЧ<шЯ&ЬeFЃ‘ЂЂ"цЭ›ЅT*1™L,_ОœккZ1дсpp№рA–.]:щіY…Н `zН>ШЛS(Т>щИ}ж} зэРР{іьaюмЙ3žŸЛЛЛihh ­­MьCnn.K—.eіьйњЄP(P*•ЂЯо™|(эŠŠ š››!66–ЂЂ"єz§Y9Ÿйl6Ž9"њЩэмЙ“]Лv‘––6Сђч?џ9;wюфЃ>bйВeмqЧФЦЦRQQСЏ§kž|ђIБШSrr2?ў8?јСИтŠ+Иџўћ1™Lќђ—ПdС‚ДЖЖтp8xрXБb‹-ЂЂЂ‚§ы_РhБЧы_фффOyy9[ЗnFEУ?ќффф ….НєR~ќуѓЋ_§ŠUЋVqїнw“——Gcc#ПўѕЏYЛv-—\r 0ZhхwПћызЏч ООž Аoп>ЖlйT8ЁЈЈƒСРрр 7мp™™™<ёФ|єбGЧуттbєz=vЛo~ѓ›ЄЅЅёФOАcЧ-ZФ/љKюКы.nП§v~љЫ_вббСmЗнFll,/ПќђŒЮ_§ъWьоН›^xааP.Ль2vюмЩыЏПNQQќщOB­VГnн:.ИрBCCфЦoфц›oІЉЉ‰G}”/}щKќіЗПЅЁЁя|ч;F|№AnОљf>ўјcўўїПГtщR6lи@JJ UUU<љф“мvлmЬž=-Р!јkіѕѕБyѓf 1 9r„}ћіЃ*vэкEAAьйГGœOп|ѓM.НєR 0™Lќх/скkЏхпј/Ој"@€ѕыз#“ЩxщЅ—ФЈыккZБ˜ РoМСкЕk™5kѕѕѕTTTˆіяМѓ …"ЈrёљŽ$фIHHHHˆx<>јрž|ђЩгВПДД4JJJшшшр№сУ466ђёЧЃRЉXА`СДЦЛŸ‹Х‚BЁЋЫVTTœœŒУс˜Д юTE3zzz‚ќ›'сСxйВedeeЁгщЄ7ЋчMMM|єбG”••122‚NЇcйВeфццžзžƒ …‚єєtВВВhhhРщtRZZŠйl&22ђs›ХŸj>kКЙр{7<<,ЖЁгщˆŠŠ:ЎЈфvЛ ЏЏoв§ •€ЇŠц? ‰a0*Œ † БЗлэєєєy6%$$˜˜8щoŒ\.',,ŒЬЬLjjjФbнннєєєзыѓ2ўхЩё^Іыœ2™L,\бееE[[DGG‹б‰гЕлее…еjХ[Н^Ozz:‹eF)Оg2тохr‰–=== вгг)((8kя9ЪЪЪиИq#b4ыo~ѓ.М№BжЏ_ДЎFЃс§їпч™gžсх—_цж[oEЏз3oо<^§u–,YДўmЗн†йlцЩ'ŸфЧ?ў1111Ќ_Пž/љЫДЖЖЂзы)++‹б<ўју\{эЕМ№Т Ь›7kЏН–_§ъWAЫž}іY, O<ёФ„czт‰'XВd Пџ§яyрфццrЯ=ї№ѕЏ=hн›oО™””}єQўёАeЫ.Ир>ќ№CБpŒЮЏНіwоy'oП§6ЉЉЉМёЦbЄсtшѕz^yх6lиР[oНEZZ›6m/€Ÿ§ьg№ФO€^Џч’K.снwпХбуaБXиН{7їо{/oОљ&§ы_YО|9џљЯx№С‰ŠŠB­VГiг&–/_Nrr2џјЧ?ИяОћxџ§їљ№УYА`Я>ћ,Ы–-ЃЈЈˆgŸ}ЛнЮ~є#`єћы_џЪХ_ЬѓЯ?ЯOњSдj5EEE<§єгA‘ƒ>њ(@@ќЮўіЗПQ[[KQQ7n$++KДLјЭo~У]wнХoМA]]ИЭў§ћЉЏЏчйgŸрђЫ/gзЎ]<№РbQeЫ–Б{їю !юЅ—^ЂККZlgпО}TWWѓмsЯёїПџC‡qеUWЃТ№O<1Љ/рљŠ$фIHHHHˆќч?џ!??вВёЇNGNN}}}иl6КККЈЊЊBЋеЂRЉ˜;w.jЕњ”zЋТТТHOO'??ŸŽŽККК8zєш%Љ>кЛL(~NBB999”””RЉФэv‹•/gђнž.Ÿ=‰`ёbыж­”——глл‹^ЏЇЄЄ„yѓцa2™ЮЪш•гIll,999дееQQQASSeeeDEEQPPpЦ-ќ~ПшOЃпiss3UUU*(ъѕњIЏ/ЏзKOO{іьС`0аппO]]нннxН^ ЉЉЉdffNлСKъwо™4ВLЁPpбE‘žž>eбЃЁЁ!<(VВ‡‡УЧу™6}ј\СbБ еjEЏСŠŠ 222HII™t§БѓАPEH_дыѕФФФLінn7'шхM @.—ЃT*OЛpцvЛikkcЫ–-ДДДрёxHMM}ЧњMЌZЕŠUЋVЭx}ЕZЭјC~јУЮh§+ЏМrвLŒ]ЛvMјьеW_Вщ–Ш~'cІcАzѕjVЏ^}B§Иф’KФHРЉИєвK›B{<Ьf3Я?џќ„Я…Tйё,_О|ЪЈТыЎЛŽыЎЛnТч2™ŒoМ‘oМqкОМђЪ+S.›jМ…ŠТгQ\\ЬІM›І]ч˜rй=їмsм}œяœГ•„„„„ФсtЅе KХХХиl6>љфzzz8|јАxЃŸMXXи ўЂЁP(0ˆ"Mmm-JЅђ„Њ Ъd2Ьf3YYYЂН\.GЋеЩdТl6‰>‚ˆ7жkЪчѓсvЛёћ§AтпяЧхr‰‚rЙ\Ќzy.=4ŸkИ\.Z[[йН{7ЅЅЅДЕЕJnn.+WЎ$99љЌ^9„††’žžЮœ9shiiЁППŸУ‡IDDЩЩЩgДД­кЈVЋ1 тwъrЙшыыУщt*Vv#`є|бщtRЄц)dxx˜ццfіюнЫПџ§oЌV+†ЬЬL–.]JQQбI3ќ?—Ђ‘bcc™3g 8p€ŽŽіяп^ЏGЏзc0ЮXЄO__ћіэурСƒШd21эныѕŠ~s™™™фццb2™&m„ з‡Cќ[8іˆˆђђђШЩЩ™‘яRЉ$44t‚рџѕQ›юМ+њ§~QјŠ˜˜8ЉP8–Я’Ў:ЖкьсЗWЁPPQQУс ККzЪяqМхТXІЯккZЖnн*~g”””PTT4уШьЯC РfГqша!vюмIgg'†œœŠŠŠfœ)!!!qЖ yРh‰ћ„„вввNћО5 iii\vйeіюн‹ЭfcчЮ ГfЭŠŠŠІM…’˜žЩЦMЅRЫТ… ЉЏЏЇЃЃCЌPv"Јеjб€~К‡cЁrЙœааPЈЉЉFSЕš››9vьЉЉЉhЕZœN'mmmдддˆUмt:FЃN' 'A˜ёx<444Аmл6ЖoпNww7JЅ’ЬЬL–/_Ю’%K&˜ѓŸЏчŸVЋ%99™K/НT,ааа€зыEЇгБxёbТУУЯШљ№x ЎЎŽЖЖ6о~ћmќ~Пш)xКќып3™L†FЃго- БББЂx6Yq!кэЊЋЎ ф”––вииШрр ЅЅЅhЕZЂЂЂHHH˜В/2™Œ„„–/_.іGЋе‰*ућc4ЙъЊЋАX,ДЕЕБwя^ЪЫЫЁККƒС@HH .л !<<œАА0б'ЏЇЇ‡ооо olФАпяЇ­­MЌ˜(ˆ‘‘‘Ђ˜76Њачѓ‰е{Ч[ŒQЫˆГE8R*•ФФФАxёb:;;щяяЇЖЖ›Э6эМЙ700@GG}}}Aў†)))ЌXБ‚ффdŽ9]}:„mСšaЧŽlнК•ЃG"—Ы‰‰‰ьЉќ%$$$Юf$!OBBBB€Э›7‹%шЯjЕšддTбŸhЧŽДЗЗгииˆлэЦfГБpсB222$п<ў›Ю4ОТсTыN†RЉ$**ŠйГgгооЮрррq= Ікч‰zЁЁЁфффАpсBбƒMHэъшш‹b8FFFP*•$''3wю\rssOHФ;[#bЮ†‡‡щшш ЌЌLh‡(ЖЎ\Й’œœ"""$ёt „(г’’1вЈЖЖ–жжVўѓŸџрrɘ7o‹хДŽaxx8………,[ЖLќLˆ. ЋФ Lv­U\SRRˆŒŒ$22™LFWWCCCєііR]]MZZqqqгŸRЉDЇгa0І\g|Цў­VЋIHH ##ƒЄЄ$”J%ƒƒƒTVV222Bmm-‰‰‰ЄЇЇ‹еeu:БББФХХбнн @{{;ѕѕѕфццb4џ KnЗ›ЮЮЮ ‚ BЊPQRЃбvpЙ\ тt:ƒ m~‚Т1у~ЖјK …*ŠŠŠиЗoŸhe000A7žииXЬf3:Їг‰ЫхЂЊЊ ‹Х"VОHMM%&&†””њњњшяяЧыѕžЯуёаннMYYќ1ѕѕѕј|>Ьf3+VЌ ИȘшшhiN“8'‘„< іяп/Ÿit:iiih44 ЅЅЅ455бммŒУсРfГQRRBNNqqqчušŸ`"ŽƒFЃA.—E—ЈT*ДZ-G,1жяIЃб——GMM }}}bŠаžBЁ˜а^HHˆ%їYќъ”J%FЃ‘%K– VЋЉЊЊТjЕтp8D1QЁP бhˆŽŽЦd2QXXHqqё”ІќBŸ„1бjЕgm5Т3‰ЯчУfГQ__ЯСƒ)++ЃЅЅ€„„ђђђXКt)999шѕzщї8~yѓцЭЃГъыыЉ­­F§нцЭ›GJJJP…S‰FЃ!&&†дддo3•˜'Єа'''уt:)//ЇЁЁ‘‘ккк8tшEEEDGGOљ’ХыѕтrЙІLЋT(тПё}Ђѓ„љ,22’мм\кккЈЏЏЧэv‹E{jjj0( T* deeQ[[ЫШШ6›У‡ЭьйГEC—ЫEgg'eeeдеесp8P(DEEQXXHddЄ(FЦЦЦŠs­гщЄЅЅ…ЊЊ*rrrP*• S__O}}Нx:ŽЈЈЈ е]Я$jЕšФФDfЭšEww7ЭЭЭЧ-xMZZЩЩЩ=zŸЯGcc#ЅЅЅ(•JввваыѕЈT*ТУУ<­Š„b=р“O>ЁЁЁŸЯ‡Хbaўќљ,]К”ИИ8ЉР…„„Ф9‹tW+!!!!СІM›ИњъЋЯt7DBBBHII!""Н^ЯюнЛЉЋЋЃЇЇ‡žž:;;БZ­’’’rFЭфЯ$BЊiAAЄЇЇE„( ),,Фщt"—ЫIJJšP™PЈ (—Ыщщщ—ЅЇЇЅPЩхr)((лKIIAЇгPп…ђмм\"##ЩШШ ББQŒђёћ§AЬiiiЄЅЅ}мяZˆЬљеj5&“Izhћџёљ|И\.ККК8rфћіэЃВВ›ЭFHHIIIГpсBQ”˜Тѕ%Tfіx\.ЕЕЕ„„„000€VЋХТњњz`t.NHHРbБL‘xЂ|ояX&“JQQuuutwwзПNЇг‘žžNII ]]]єїїcГй(++ЃЏЏќќ|тттащt:::шээ=ЁBJŸ‡УASS{їюeчЮ466Š• .dХŠbЊЙ„„„ФЙŠtg&!!!!С[oНХŸџќч3н яž5kжЧŽ;иЛw/===TUUбооNMM K–,ЁЄЄ„ШШШгхrЖ VЋ),,$33SL‡Ђх4 +VЌ`ётХт:fB$ЃFЃaбЂEуёxФЯ'koљђх,ZДhкіfŠBЁРl6“Р‚ ї/Dj4š n2sњБX,ŒF#]t‘Хd€>№љ|иэvъыыйО};хххX­V|>jЕšŒŒ V­ZEIIЩёtћ" P(HJJ",,ŒАА0оџ}š››illЄЇЇ‡––.НєRБвыЙ цmK&“a0())aџў§иэv<VЋ•;w’žž>щ|DяРЩФa™LFVVз\sЭЄBоd•Qu:ЩЩЩфццвппнnЧfГqєшQjjj(**"$$ƒС@^^—]vяМѓ--- QUUE]]!!!Ђ№*Tѕ•Щd„……‘››ЫŠ+HMMЃR йййЬž=›={і088ˆеjхУ?ЄДД…BСШШnЗ;ЈBpAAйййgхK…ДД4ВВВhnnІЉЉiТђёб‘fГ™ .ИЛнЮЇŸ~ŠЭfc``€ђђr> эёxЦяї#“Щ‚Ђ.OBEцЃGВuыV8@OO …‚ИИ8.М№B.ИрЉB­„„ФIШ“8ЯЉЉЉappyѓцщЎLŠJЅЂ  €˜˜222иЖmЕЕЕ qша!ккк(++ЃЄЄDŒ8бч\FЈ&Љбh‚R_ЧЏ\.GЇгT1p24 *•jвtЖЯвPYrќУњјяяxпЇJЅЃљЦіћ‹zЬЁxШ(++УjЕ244$F Э›7Х‹“œœ|R#†ЮGфr9‘‘‘,[Ж ƒСРж­[9tшƒƒƒ”——гззЧ‚ ˜7oщщщ'Mи A—ЧѓЛœŠБўhcлЎ!FCJJ ™™™єѕѕбллЫааTUU‰зој§ t'Лe2ƒƒƒИню }Oч™'—Ы‰ˆˆ`ўќљTVV244„ЯчУjЕВ}ћv‰GЁP`0XДh!!!”––rєшQЌV+###8Ю љLЇг‰QЪ%%%dggЭsJЅ’„„ЎКъ*ТТТ8tш cЗл‘ЩdbЕ[Н^Oll,K–,aбЂEЧ’„ёяCz&“IŒN’ј|тQaa!jЕš˜˜8@ss3ЧŽ‹ŒЬž=›‚‚bccƒ*Ёž(2™ ЃбШœ9sDБ(..N,њ0г6фrɘRэp8аjЕ$''h"Ь.\HHHнннA‘V~П­VKbb"K—.ёО‰ŒŒў•=ў|Бш„бh$222(šKЋе’••ХђхЫщььФэvЃRЉˆŠŠТяїуѓљФ~………‰‚NQQэээєєє022”ЮХbЃ{ЧWk^Ђ$%%БvэZrrrФЖk…BNЇУh4b6›IKKУh4N+кёœ^–ШхrЬfѓ”ХjЕšјјx–-[& n™™™„‡‡‹‡„„––&ЎHOOJ–ЩdbњЉBЁ+ќdddY,ы Ж‹-"99™жжVЌVЋ˜n<жыTЏзбhФd2‰ƒŸŸЯGww7UUU”••qфШККК№zНФХХ1kж,–,YBffІшo(!!!ёE@šЭ$$$$Юs6mкФc=vІЛq\дj5БББ„‡‡E||щщщDEEIо) ""‚‚‚ТТТˆŒŒdџў§477‹UЂЛККшшш   ‹ХBddфgŠа“Ых$$$А|љrбу,44є„Ѓ EEEЄІІтёxФЈВёОšJЅ’ММ<ЂЃЃХˆ6™LFtt4!!!ЈT*вггO(Ѕ=,, Ѓб(zhšL&.Кш"FFF€QбN(b! RЉ0,[Ж Лн.ІВ*•J Cа9-D№щѕzЃбIHХ ‹M† цЅІІb2™dpp—Ы%FуiЕZєz=hЕк]_B„avvЖИ‹Х2Ѕ}VЋ%%%…uыж‰Т]xx8бббAуšŸŸOLLŒИŽЩdšyNAAFЃQsM%މ‰™t ”J%БББDFF’’’Трр Xm\8'ћН^NЇC­VЎпdЏз‹нnчиБcTVVrфШъъъАйl„……‘žžNAAsцЬ!77­Vћ…zЙГwя^žyцЊЋЋбщt\tбEм~ћэgeЪЖФDКЛЛЉЌЌdйВe_ЈѓRтє" yч1­­­;vlЦgсС)++ “ЩDZZ|˜ќќ|ВГГБX,ФФФ гщP*•в“ФЁˆ…нnЇННккZ*++ЉЉЉСfГ!“ЩащtX,233™3gйййF)RхFNNFЃ‘јјxvэк%8|ј0---455QTTDvv6qqqшѕњў^ЂЂЂˆŠŠњ\}•Ых3Њr+“Щм\• IDATŽЛП‹BЁ <<œYГfЗ‚Пу‰Д­зыOJѕиБm}^џ5сЭЬЬœё6ТKЎщЊykЕZ1Тp{яgœЯљŒ{>Ÿѓ:яЁ  №ГsчN^yх•Zй‰ЗББЁeЫ–јњњвІMЮ;GPPБББЈT*ьмее•&MšHзAieЁz ЅЅЅ“MLL —/_цъеЋDEEЩx]"sgгІMiлЖ-­[ЗўW-(ќЁЁ!...899сууУЉSЇ8ў|јУЎЦ}GdШsuuХХХ…FOdd$сссмО}›ДД4T*Зnн"22kkk\]]ёђђТЧЧ‡Кuытшш(;й&&&*BˆТП‚Z­ІАА‚‚T*щщщ$$$ЩэлЗЅѕ]QQ&&&XXX`gg‡ЋЋ+ОООвOФWSxДбLърххEЃF %88˜ИИ8222И}ћ6ЗoпцъеЋјњњвАaCъзЏ‡‡vvv2KЌ"ъ)д&D|ЯММ<233IHHжєбббЄЅЅЁVЋх3НnнК4mк”ІM›RЏ^=,,,žˆчђЊUЋиО};ссс@y|уПўњ €}ћіЩvўкЕkLŸ>У‡SVV†ЏЏ/Ÿ~њ)C‡•emнК•Ы—/“™™IFFгІMУккšwп}—'Nа AіьйƒЏЏoЕu*++cхЪ•ќ№УмИqƒВВ2^zщ%цЯŸ/3.geeБhб"ВВВШШШРгг“щгЇ3mк4жЏ_OFFЭš5cоМyМђЪ+•іQ\\ЬїпЯЊUЋˆŽŽЦЬЬ ???цЯŸOƒ 8qт‡"33“ЬЬL^{э5КvэЪјёуйО};VVVќќѓЯ:tˆK—.i•§вK/ёёЧГtщRіьй#члии№Х_Аiг&yŽ:uъ„'N$44[[[FŽЩмЙse,ЦяОћŽйГg“™™ Р—_~ЩкЕk№ѓѓcъдЉќ№УФФФШњŽ3???­zedd№љчŸѓѓЯ?SPP€­­-oП§6“'O–РЏ]ЛЦ–-[ШШШ 33“Ў]ЛвГgO&L˜РО}ћ())ЁC‡,YВфŽЩ‚j/АЇ   №’““УщгЇйВeЫУЎЪEOOlllhиА!;v$**ŠkзЎЪЭ›7ЩШШ@ЅRNDDІІІиллSЏ^=|}}ёііЦУУCЫњEOOЏVWЈ=”––RVVFQQ*•ŠјјxЂЂЂИyѓ&Зnн"..ŽœœJKKeђ KKKмннiвЄ Эš5Ѓ~§њИКК*т]-DdI|6lH‡ твЅKDFF’žžNzz:iii\ЙrWWW6lH‹-Ј_П>ЮЮЮXXX``` z 4"yE~~>‰‰‰„‡‡JXXёёёgТѕёёсщЇŸІUЋVдЉSчБLdQ~~~јјјАbХ nпОMлЖm=z4€ДМ:wю=zєрщЇŸццЭ›илл3ў|† Fxx8ГfЭ 77—ЂЂ"жЎ]KII oМё3fЬрЃ>"$$„kзЎБfЭОјт‹jы4zєhVЏ^Эwп}ЧИqуˆgрРtша“'OвДiSJKK),,фмЙsвО}{.^Мˆп~ћ-gЮœaѕъе 0€€€-wгввR^{э5іьйУЄI“˜7o9994lи_|‘ааPђѓѓQЋеьиБƒ””ZЗnЭкЕkiйВ%элЗчиБc,XА€uыжёеW_БdЩ~љх:wю Р!C№ђђтеW_ЅkзЎЬ™3‡ЂЂ"Š‹‹йП?Зnн"&&†ИИ8ОќђKМММјілoYДhaaaьнЛ===^zщ%š7oЮФ‰ с•W^‘ћ™ЛsssQЋеlоМ™ММЭў§ћ122’ѕлГg1110ў|zїюЭ?ќР/Пќ‚ПП?нЛw'88GGЧ{МE!OAAAс dџў§tьиkkы‡]• aѕ"]ДkзŽИИ8"""ˆŒŒ$&&†ŒŒ йБHOO'88KKKd<Н:uърььŒтжІpOЗйььlRRRˆ‹‹#&&FZнeee‘——Gqq1ХХХRшqssУЧЧ‡ рээ‹‹ VVVŠ;x-ІтР€‰‰ юююиййбВeKnмИAhh(ЁЁЁФЧЧSPP@\\œѕœёіі–ƒžžžXYY)Бє)дj5*•ŠЄЄ$nмИADD7oо$%%…œœŠŠŠ())Сдд6lHгІMiа NNNвђєIЃAƒ4hа€пџ///­јЦEEE :”œœ/^,…›)SІАyѓfцЬ™У‹/ОHЧŽyћэЗ8pрссс,[ЖŒaУ†ёж[oIБЏ~§њежgыж­Ќ^Нšž={2~ќx<<сЋЏО`ФˆГ~§z–-[І%ф-[ЖŒ={іаО}{.\@`` dddpўќyzіьIЯž=Й}ћ6[ЗnхШ‘#ийй1wю\њѕы'Я›› .dџў§мМy“ддTœœœpttЄqуЦБnн:ъдЉ”[д•””№Э7пР‰'шдЉ›7o&88˜Аiг&†.-EmmmhжЌYЅдŸ~њ)gЯžхЬ™3•Юы„ И~§:‹/ІeЫ–tяо#FАbХ .\ШдЉSiеЊ­ZЕBЅRёУ?Аiг&vьи!yФˆДjеŠЖlйr_н}j­wсТvюмЩЭ›7166ІE‹ }№ѓѓУйй™UЋV1yђd,-- gеЊUмМy“7nхaћіэqvv– ЧЏПўЪ…  ‘ћГДДЄuыжєызOyyTЈ•ЈеjђђђАВВвЙ|еЊUМїо{ДkзŽsчЮ§ЫЕћgrј№a–.]њАЋђааггУШШHКнКЙЙQЏ^=вггIJJ"!!„„IMM%33“œœ222ˆ‰‰СддTZъйллушшˆ““иййammЅЅ%ццц˜šš*ЎnOТmЌИȘќќ|rssЩЮЮ–ёvRSSeт•ŒŒ вггЅ‹ццц2™‹‹‹№œqppтŽ"?agg‡­­­ЬЖнЈQ#bccх”ššJVVQQQмО} ТТТpuuХнн]Ц хXXX(œ їЕZ-лНЬЬLвввHNN&))‰јјx’’’HMM%;;›ЂЂ"™qобб777)тЙЛЛcooЏXНз€€€JB”цМ'NшмжЯЯKKKœqvvЎv_2о\ZZGŽ‘Ы’““QЋе@ЙЋЏІиPЏ^=lllДц988хnЇза*уйgŸ%>>cccYgM\\\ЄБ……Я?џМжђQЃF1kж,BBB8vьнКuC­VГfЭšj3џъŠ3'Ќ/^МHqqё= ЭЇNB­VЃЏЏ‡‡‡ж2oooRRR ­TŸ6mкT*Od6ж<Џ ЕNШ[Жl?ўј#рЅ—^’ѓ'NœШЉSЇшгЇ™™™tша€iгІ1mк4о{я=V­ZР;яМУдЉSЕЪ;w.cЧŽeљђхLž<™9sцh)ц#GŽd§њѕфцц2hа ЮŸ?ЙЙЙ\юццЦљѓч‰ˆˆ yѓцqќјqY—ћIQQ6l`ХŠ5ђ xѕеWёїїgС‚|ђЩ'ZЫЇL™BŸ>}јэЗпШЮЮЦвв’оН{гЛworrrЄо„ XА`жіыж­Ѓ  JJJ˜5k&Lа:G ЕЃGВ`С­M„ХoU–П"‡ЂUЋVв­@Ё|TSˆzоооЪРл";hBBiiiфффШРм)))вjЪЪЪJŠzтeибб;;;ЌЌЌАААРФФcccйжггS9j1eee”––Ъ€эХХХ2IEvv6йййЄЇЇ“œœ,ЇДД4ВВВ(((@­Vcdd„ББ1жжжXYYagg‡ГГГЬІьсс““гд]Ёjєєє055ХЫЫ ZЖlIzzКhН}ћ6‰‰‰dff’——Ч7Иqуfffиййссс!Ea777ьээЅ(lbb‚‘‘њњњŠ@ЌP#Dћ'ВЭШЏ””nпОM\\ ЄЄЄ——'“QYXXръъŠ““ооодЋWКuытъъњD…ќИ_ЄІІHЗNMььь€rбMW6г^xсЎіOYYлЖmЋфжЅK \HЋˆ—4э( ))ЉЪmt•!шдЉSЕЯI+++оyчОљц–.]JЗnниП?fffВоКаѕО,юг’’ВВВю9И†–––•Ў‘И†P.–VDsyE4ЯЋТуE­ђ–,YB›6mДDќ№Cќ§§щзЏ_%ЪcќілoДhб‚ЌЌ,rrrД–kК VхB(|џїэлGїюняъ˜E4-Lu1yђd5jЄгнўQхIuЋ­)ЂГьъъŠЋЋ+-[Ж”ТLLL Зnн"::šииX’““eршєєtRSSeV9SSS™MдннiушшˆЕЕ5&&&˜ššЪ—6ёмQ:в&eeerRЋеIс.55•ФФD’’’HNN&!!ЄЄ$T*љљљ”””Ш$)њњњbii‰žžžдЉS///МММpqqСТТЂвЫМHˆ   ’XZZтххХsЯ=Grr27oо$<<œШШHbccЩЮЮ&//•JELL PоQtrrЂN:ђО },--166–їЊžžžrп)hЁ™˜'//O>ЃЃЃ‰ŠŠ"&&†””rssЅ—“ОО>вЊдзз— рыы+cпiіЛ”{ююBNVVVЅebž­­­N—N77ЗЛк—Шœ 0ў|™аЁ&шкП.4ћ™III5ЮМъюю~Чu>ќ№C/^ЬО}ћˆŠŠbеЊUМћюЛеоo"­&iiiРпСеqщв%ьээЅe.Ф5TЉTв:_зў…Ѓ&5=Џ ЕъЊVЩLV“^НzёђЫ/K7X™™?ўј#/НєLš4‰Э›7k­sюм9Ž=Ъ_§UЅš/ФЉнЛwГ~§z:wюЬ[oНUiН:uъ<ааЊUЋxу7иЙs'ЌXБ‚яОћЎЪѕ9Тš5ktŠx‚:uъ0zєh,XPIШгDзБЭ™3‡5kжАwя^КvэzGЃ №шВ}ћіj­JаXсЮ`ff&уT5jдˆММ<ВВВHKK#..ŽФФDщŠ›‘‘AAA………‘M\\†††˜˜˜`ff†ЅЅ%ЖЖЖZЎЙііівэЭддTЫrOсс ’QWБœœщ›––&ЇєєtT*•Œm'мjеjЕ–ЛЌ………Œ­(&wwwщъ(ЌЂ u>g•Ž­BUˆфŽŽŽДhб‚ЬЬLтттДФ1№ югФФD._ОŒ……ЖЖЖИИИH7\Q–ЕЕЕlž\JJJ((( 77WX$&&J‹ЛЌЌ,rss),,”mŸžžž Aсщщ‰>>>ИЙЙagg'cЪъыыWъw)mннёќѓЯГbХ bcc+-ѓ4ууirЗЁŸМННБЖЖ&;;›kзЎщђЮŸ?ЇЇg„5]јњњbii‰JЅтТ… •’F\ИpSSгJ_MћьзИuыG%((ˆВВ2~ўљg6lиР_|QЅр В988Ш ŸUёілoпQШЋШмЙsљъЋЏиЗo_ЕІЩ Е‰uыжqіьYКuыіАЋrп8qтоооxyy=ьЊд*D'УЬЬ 333ЌЌЌpppРУУ___i• т%''“žžNzz:deeQXXH^^`ll,-ђLMM177Чвв Ќ­­БББ‘БіФ|!‰ИAš“Тн!\ТдjЕођђђШЭЭ•L*•ŠœœВВВШЮЮ&''GK‚maa!%%%”••ЁЏЏ‰‰ vvvrrppРббQЦPДЕЕХЪЪ 333ЬЭЭ122RЎЁТ=!’cbnnŽЕЕ5NNNјњњ’™™)-FуууINN&%%…ДД4yЏЇЅЅЯѕызБААРЦЦF6ˆиŒ6662T€™™™мŸТуƒІЅБJЅ"33S>ЫDLЯДД4™”'77—ќќ|Š‹‹х —Иg„ ,ЌаэээБДД”™gБююŽтS0pр@ІL™Т7*yiэпП(‹ЄЋЌЛщ >|8K—.eљђхŒ5JЋŒЄЄ$Ьў§ћЅWUНЋZfddФ!CXНz5Ы—/gܘ1вb-??ŸЗп~[&Уј'Ч2aТЖoпЮЖmлx§ѕзяшФХ‹eттb™˜BdkB! –––rцЬ>ћьГJѕеt{ѕђђЂ_П~ќњыЏьлЗБcЧЪeт~јс‡ZmnuчЕт: ЕъщkddDУ† ЁgЯžŒ9’aУ†бЁC-%МG,_О\gп~ћ-Пџў;iiiМџўћ\НzSSS~љхBCCйГgЯыaggЧ–-[шмЙГVМ<ЭXКF—tqљђe&OžЬТ… k,ф­YГ†gžy†–-[ђо{яёѓЯ?“™™Щж­[5jTЅѕ3339~ќ8PžЉїNѕjиА!-[ЖЌБ7oољф“Jж•зЏ_gоМyPZZJЧŽ™1c†Vђ—!ЯбдЉSe–хЋWЏтффФлoПЭјёуЕ^фжЌY#Зr+Я7ВdЩbbbhа SЇNх?џљЮc8wю .$00}}}:wюЬЬ™3e@ZMТУУљђЫ/9qтХХХДhб‚O?§???ЂЃЃyяНїd\МызЏ3zєhЙэїпOxx8ЇOŸ&++ їў IDAT‹ŒŒ \\\˜8qbЅ§?~œЏПўš   LMMyљх—™>}КжшЦeB…‚‚,XРЖmлXДh‘ЬBіщЇŸъt‡=|ј0‹/fдЈQєяп_чyбDqЋН?шыыK‹9‘Et€„ЕžИ—322ШШШПEч'//ќќ|T*%%%R”333“‚ЙЙЙљ„ 'D=Б\ФИu222’БзD™šnтћу„pївќБыŠŠŠ(**вњ.„ИММ<)р‰IЅRЩљbY~~>………2ЗОО>FFF˜™™amm-EV!vиииррр€­­-ЖЖЖX[[cmmББ1†††JМ;…ŠhЌ­­quu•й’гггIKK“UBœЩЪЪ’ТMrrВМП---eќPkkk-ЫaqO‹ЖЪЬЬ йц(їјЃ‰hKJJdhбж Ћcё г|vхфф RЉ(,,ЄЌЌ CCCЬЬЬpuuе#V$€ВВВ’ї…Т?ЃЈЈˆддTЎ_П”П—ЦЧЧcccƒ……ІІІlкД‰^Нz1fЬіяпЅЅ%?ќ№WЎ\aтФ‰rP:77—лЗoЫM/^ЄUЋVXYYеX›3gќёWЏ^ЅoпОLŸ>gggЎ\ЙТДiг3f M›6ЅДД”ДД4._О ќФТнн333вввјѓЯ?ђDзЎ]Ѓnнʘ››3oо<>,У^M™2###/^LГfЭ№ѓѓЃ  €ффd™Œ188˜ЄЄ$ЌЌЌЊѕІщаЁэкЕ#001cЦмёx›5kЦ€XЛv-nnnЬ;—ˆˆ:wюЬˆ#ДжmлЖ-ўўўlмИ‘њѕыѓћяПSЇNZЗnM^^ ФХХх:@Яž=БГГУаа%K–pщв%fЯžMЗnнhиА!чЮcэкЕДoп^fќ­ъ~pttDOOДД4‚ƒƒђў]ll,NNNZnб ЕŸZ%фЬœ9“!C† VЋYНz5ЋWЏ–YizіьЩЋЏОŠЏОњЊЮэœœјњыЏ9r$|ѕеWLž<™)SІ0uъдЊlпО=sцЬaђфЩ„††ђСT›эц~QRRТКuы˜9s&P ДQЃF„……ЩQ‘ŠЩŽGХ,8UqхЪ•­їХ_0}њt <‹б?%** ???LLLиВe uыжх›oОЁgЯžЬŸ?_ЦоЛ}ћ6чЮcлЖmceeХš5kxљх—1b7ndбЂEќѕз_>|јŽћ‰‰!00mлЖQTTDLL —/_цГЯ>Удд”™3g2pр@Оџў{Ц”[Qž?^ŽФМќђЫLž<™ў§ћуяяПП?Ы—/gњєщdffв­[7bbbиКu+mкДaЫ–- >œ€€VЎ\ ”‹v{іьaпО}@љшNзЎ]quueа A 4ˆ‚‚ОќђK7nŒЇЇ'/^”YGgЮœ)Х­V­Z‘––ЦШ‘#ё№№`щвЅw|yњу?шгЇЖЖЖьиБ&MšФK/Н„ППП|ј9r„О}ћтччЧ‰'044фƒ>р™gžaїюн2vхЕkзју?фRНzѕXА`У† ЃiгІЌ\Й’>њˆДД4fЯž-ыqўќy.^МШЅK—фНКgЯШЕkзиКu+Н{їцрСƒ•b0Ў]Л–wп}—ЁC‡Hvv6яНїЯ<ѓ ЧŽгЪшtєшQ^yхьээйЙs'^^^Lœ8‘юнЛsј№aš4iТ€pwwg§њѕXYYёєгOЫэѕѕѕ‰хвЅK?~\>Ь+ yK—.eќјёŒ?žЕkз’’’ТыЏПЮЏПўЪќ!­џќѓO ФккGGGжЏ_ЯрСƒЙuы7nЄџўьмЙГ’XїйgŸФ•+Wю(ф•••ёлoПqшаЁjзSјgNX$Рпт^QQ‘Ьр'„НŠшММ<щ–T\\Ljj*%%%Јеjiщehh(КŠЂž’4 ‘ЏЂР',iDg[ˆ{š 84?]т_M„@_Ћ&ˆѕ4уа‰‘dq4E:ЭyТЂЎтTXX(E8!žŠOM‘Nœџ’’’Jч\xˆ,ЧFFFђмZ[[cgg‡НННэ„еЙЙ9&&&UКЩ*(ќ[hЖMЮЮЮ”––RXXHvvЖѕteщVФYYYrАСииsss™˜EмћіііиккbccЃe9Ќйоˆ6GГMQИџTl;ХsHД‹ВMƒ‘Тz\гŠrтФ ™ЈёщЇŸ&55•О}ћв­[7щuхччG@@Ÿ|ђ rАяЧдђT[А`РллoooЖoпЮіэл™9s&Н{їЎQ}lll8uъГfЭтчŸІSЇN@ЙрѕПџ§7оx€ФФDњіэ+ы №њыЏ3x№`о~ћmйwЫ†.…A'''NŸ>ЭЇŸ~ЪЏПўЪoМ™™™єјѕз_YДh‘,#44”оН{3x№`>ўјуjaФˆЩКW‡ŸŸЭš5cа Addd`nnޘ1c˜?~Ѕ>жФ‰Йpс‡b№рСtэк•_~љ===-ZФюнЛБЗЗЧооž€€XГf -[ЖФЭЭ3gЮ0yђdžyцьььPЉTŒ3†YГfajj ” L›6Mwrr2}ћіeЮœ9XXX№пџўW.ЫЯЯЇ_П~L›6­J}DЁvЂWV S™0vьXBCCu.ялЗ/?ўјc•С;ЫЪЪxёХ9vь&&&Œ1Ў_П.џ ʘ2e aaaвкЉДД”^Нzq№рA \H9r$ќ1111lлЖ­кcйВe C‡eсТ…wlp <ЩХАaУˆ—V _§ЕŒ{wётE-Ср—_~‘1МFŽЩкЕkяИ]”””HЋЎ™3gbbbТœ9sАДД$%%'''Ў^НŠЋЋы]—§ќѓЯsцЬ~џ§wzіь ”_ЇЇžzŠрр`Дb#vшаГgЯbffЦЁC‡dм‡˜˜ъзЏOQQ.\&аwт…^рфЩ“!нoнКEУ† 100 $$___Й——111 0€цЭ›3cЦ ЩЬЬфЧdܘ1 >œM›6БdЩ>ќ№CЙmџў§йЕk7nфЭ7пЪЭД{їюЭЁC‡hдЈчЯŸЧккšРР@КvэЪў§ћёѓѓ“eЈеjкДiУеЋW™7ožV&цќќ|ьььиПџнBГВВhиА!ЩЩЩœ>}Z&hiа ‘‘‘Œ1‚ѕыз“––FЃFШЮЮ–Ѓ>щщщИЙЙaeeEXX˜0D&OЕZЗЗ7ЇOŸ–&іЛwяІ_П~XYY‘””Єд6 €Ю;chhHЗnниГg!ќяџЫЂE‹шж­›Vйрр`ž~њi\]]‰ŒŒ”їЉАЊlмИ1WЏ^E__ŸŒŒ 5jDJJ чЮЃ]Лv”••сыыЫ­[З5j”Œ'Й~§zFŽYišЌ[ЗŽQЃFбЙsgiљ хт\Лvэ№ёё!,,LОаž:uŠN:бІM.\И чбІM шаЁўўўђМЬœ9“йГgѓьГЯЈЕџЙsч2kж,ЦЯЗп~[эЕ dдЈQwLрq?HHHрХоНYz!PчђZјшЙЏˆŽtAAYYY•м–DмЕЌЌ,ђђђ((( ЈЈHЪhŠ]МbЇYИэj |ІІІ2юŸ˜ŒЋЕьге qЭNљ:чы.Ф9M+:!Ј‰ŽЇpѕвL.!>Х”ŸŸЏ%а ‹Чттb)Ю‰ЯŠѕд ьo``€ЁЁЁt}VHRАпmlldr%†˜n^ЏS—ФџЗ>ИпФФФАzѕjVЌXANNƒ тГЯ>ЃqуЦїu?ЋWЏцєэh†Яšy_Ы}”ЎхYYY2[w||<ёёёЄЄЄMnnЎt!зt  &&&2‹“““VьOaЅЊ+{7 е~(_ЭаlCjЕZЋЭЯЭчŠцs&;;[ЖЇšЯбІ Ћ;1Шшюю.cŸЙККтрр€™™™ЮіяqKXqўрABwюbУџП#>ЪˆчЁЎФ‚””™ћAP\\LffІД8Лєшбƒз_]gЌ{С”)S˜?>|№K–,A­V“žž.-шЊCЅRQ\\\mFйъЧьрр ˆтџ2ЕЅнЊuyP.К„„„№чŸВ}ћvŽ;ЦЅK—фЫљoП§Ц7јѓЯ?u>XєєєXО|ЙЬDИrхJ6oо|зОО>6l uыжФЧЧЫxy2хъеЋ4hё |DaњєщВ|љrV­ZЅЕfCsП:Я›7o&..ŽнЛwЃVЋщеЋ)))МѓЮ;вЊЌІœќ№C­€ЗН{їЦРР€œœbbbДтR ЎЄЄ„Йsчj§‡ћіэЫЂE‹*‰ј_§5EEE :TЫ…ИnнКд­[—Nœ8A—.]XП~=)))ДjеJgМHqМ5Ѕ*—хЏПўЕZЭЋЏОЊѕюаЁ...\Кt 9)ЪQЋеЬš5KKмютКИщгЇ3eЪ”ЙЌькЕЋFюЗ GMXжЙККJЫ M‹ {OИ:‰8m">QNNŽњ4­Щ €ђvTЅRUВВЋhm'ўЏšVzšюqзЉhЭ'Оk b_„4cЙˆId­ЋNSдSЋеRмг\ЗЂ•žц6ч‹ЅОООЬ,,‹,,,АВВ’“f|B!д ёгддДRlBх[сqРаа+++,,,prrЂiгІ2ЙІхžf|НДД4iЕ%bEЊT*RRRИqу†l+4cZYYЩј{"ЈА№“†D;#>Ÿd4лH1 Ћ:•JEVV–t}ЭЮЮжz^ˆч‰f" Q–fVYccc™јФббQNТMV$х155•––bpGЕЅ3ќ8",pџ-j’dт^022КЇ}ьиБƒэлЗ3cЦ š7oЮў§ћ‰‰‰aшаЁеnЇщ)х}ЏšжЃ&!žЊу^YсёЇV yaaaфччѓдSOхцЂТњ,++‹ЃGВaУіьйCpp0Пќђ У† гYVƒ 5jЫ–-C__џŽфЊpvvfѓцЭtяоММ< Ф… tЎ›œœ,M‰‰‰Ќ\Й­e‹/жŠ;ЫяПџŽŸŸŸVМ.(O)ž””Ф–-[јњыЏЕв`kЦтЪЭЭ§GЧY‘ииXvяо-узНѓЮ;Ќ^Нš§ћїГrхJЩFЊBX:еЉSЇ’(",рŽ=JiiiЅгsЯ=WЉЯ?џœkзЎ1vьXœ+­WPPPЅ{^DDZѓВВВД~Џ[З-їNŸŸлЖm#77—M›6iЙqЖiгSSS ˆŠŠЊб1-ZД###­r4™0a‚t…ђ$"GŽ!**ŠI“&б­[7ѕдEBB€Nгcaž——Gff&ііі:—k"DвшъJС.і™””Єs›ЊЌоjr\PјUy-[ЖdхЪ•МёЦЄЅЅЩИsК066ц§їпgЦŒ,YВ„Ю… иЕkW•лi"ЎVѕБГГгJР"DчъŽ'>>^ч>ЊЛNUeSВГГЋєВ(~knSXX(ыЖ|љђJюьюююИЛЛЫЏUЏˆWq?())!55U–[1Oзљ255еJœwEWЪЛ!88˜‚‚ZЗn§ЖWјw%###iХЂ‰љ4уУUЬЂЊщZЅЙЌЂ W1ЎœІх›ІEœІ\UVoтўTЋеdggSRR"­р4яkM!NГг­kвДV šюОе xšŸšY‚ХgE DEЈSPјёю•тНYгz677W+›ГІ%˜˜DœJЭam,\u5їЇљŸжŒёЉ)Д‹љšџmЭіA|jZє‰пКЌˆu Lˆя‚ъ$t%лЉhA,Ю™цw!к‰іИbл]БНжlпE[-о‰*ŠЅBˆсФ†ІѕБ˜„5ЄflЯ'н RсёЁcЧŽьиБƒЭ›7ГtщR.\Xm‚ЦАА0VЎ\Щж­[ђX|fffєъеЋFоN џЕJШ300рьйГЄЅЅUыѓ?nм86nмxпЌЯтсЉ‹3fpтФ Ž?ЮІM›№ёё‘–LOOOвггЕцэмЙ“wп}—йГgWЭ4;nЅЅЅЌYГ†їп_ЗдЄДДTZ-_О\Ћ,333zіьЩюнЛ !??џŽцжызЏ—ЩtQq{+++ж­[GЗnнPЉT2™CM^„5›.Ы,‘9W__ПRGЊvkќЇшЪд+Ў™І№ЋIU DФqщК5UWЙЇNТЦЦ†ЌЌ,оxу ‚‚‚Њ™ЦŒУ_|A@@WЎ\aгІM <ИЪњVDœУДДДjзчПКыTе>џЩuЊщ6тхЛЌЌŒџ§я•ВGUUюŽЗ*ђђђˆ‰‰ЁQЃFUЎ#:="#iEЊ;_*ЮжЏПўJП~§Ёт1AИuж„ŠIбСЌJдD!ъiЦЋЋX–f™ЂCЋVЋЩЫЫ#((H…ЎSЇŽtЁЭŠЎЙšSХљТV|VДцјŠtХѕUAсў#ўЇ"&žц Јf;RQи.ŸBр–eт§ZГЭƒZƒšnђ'!ощš*ЦŸBРзџГЂ Ї+ЖgХ,йе‰wтј4cŠіVгBZ šˆc­Aд_n†††r€ТФФD† –ušсФМŠVŒ 3?џќ3У† #;;›юнЛы4маФвв’чž{Ў’G‘тъЊ№(QЋ„}њрссA\\WЎ\ЁUЋVr™ШќўћяыЌ‹Ўѓ|ЗзU“mлЖБ`С™ј$++‹У‡TВєћЉ*IJ›6mhзЎљф,-->|x%їЫІM›вЃG<ؘ1cюъ˜_|ёE† Тж­[8p K–,ЁUЋVœ8q‚йГgKЫГ&Mš0gЮІNЪŒ3dп… ’žžЮœ9shжЌ™,766VZВEEEi‰_šI.ЂЃЃЕ„GЧ1''‡єєt-—bБЌАА„„™Dф“O>aїюн\О|™ў§ћѓэЗптыыKXXSІLСоо^ZЁішбƒВcЧњїяЯвЅKiбЂќёsчЮеŠС)кЈЈ(~њщ'XДh;vьЈTЇ””rssЅ•э AƒиЙs';vь`Ы–-МўњыЈеjІOŸŽЁЁ!ЋV­вВвхˆ{иееЕв2qО4уOОћюЛВwя^ЅPюVћЪ+ЏќЋj}}§j]ž4!я~ BџЖw7c``€ЙЙЙь\š™™сьь,;С‚GЉо ]ЂWE4“яTtYеЬЮ­+“Ћf :]ыjZѓUЬ€­щвZVVF~~>ССП‚+“ IDATСDGGSVV†ЋЋ+­[ЗЦТТBЫ Wг-W3D€ІћЎцwMqO3–Ÿц2M`ЭьАКy(((((ќ№C­џкЕk™7ožЮђЭЬЬ`шаЁъ\ЯввRЇ+Ѓ&ЧчУ?$##Ў]ЛЦшбЃ™7ož-—.]Ъwп}Їељ311aџў§=z”љѓчkY ѓыЏПJ1Г*^|ёEŽ=Ъ?ўШБcЧиО}ЛмўwослoП•uјьГЯД„qО§і[‰)ўњы/оџ}Ў]ЛF§њѕ fР€|їнwвzрРZBЉГГ3gЯžх­ЗотфЩ“ZхyxxшLјђлoП1jд(bbbtZŒVGqq1SЇNeйВeфхххЎщ+VЌаВаXЕj3fЬРЮЮ===ввв˜={ЖV–мЗп~Л’ыЉЋЋ+ЇOŸfмИq•\­­­ ЂE‹rџ‚W^y…E‹бЎ];™@BаН{w–/_”[O~ђЩ'lоМYfЊЕДДdьиБЬ;WKќ,**bЪ”),_О\юЏ^НzЌZЕЊвџ§“O>слoПЅДДцЯŸЯ„  хЕз^Ѓ  @ЎЋЇЇЧ›oОЩЬ™3хy9s&?ќ№ 4 )) Оџў{­{хЙчž“тД kзЎВ>ыіэлГyѓf мђoХŠ 0 в})шдЉSЇNе™!їaQ‹=ї…'IА*))!%%…wп}—гЇOKыгџ§яkuоХѓЂыоМзКн%ІBЭ‰‰‰aѕъеЌXБ‚œœ ФgŸ}FуЦяы~VЏ^ЭєYГpіpПЏх>Tў‰›MзHwџŠюџ:~џёЛќя)Ќёў.R]RBzFЊœЪЪЪ0З0ЧСС##CДТh†аL˜ёџПџ^GcНJлны ИOшz4зДnyИœЌ,ќ:vdнъ5Л* кђЎVЋ„МЂЂ"дjЕ–л\NNбббсссqЧр•џщщщdffRЏ^Н‡]•*)(( ::šмм\мммЄuгУццЭ›ЈT*|}}+eя|P!oэкЕŒ9’ииXRSSёёёЉqвˆ;Grr2>>>икко—25™8q"ЦЦЦеЦМyyyмИqsssъж­+­`+ЂVЋЅ…jУ† Ћ\яaŸŸЯ7044ФЧЧG АКЈщёІЄЄpћіmъзЏџюБ333-ЫФћAYYјњњъДИKJJЂI“&$&&>АDџ„ZєшQИKDжцбЃGsђфIьээ0`3gЮФддTђюџ–———W)YYmчŸИљзt§MХџшƒЊSZZЫ–-уЗп~“ƒє“'OЎ2Щ™Туˆ§Ј  №јђ(<чjТЃгћЎК:ЁVVV4oоќ!дІzьээЋЬ2њЈ`jjZmцЭ‡ХЃ ~zzzтщщy_Ыє№№Иo/AAAlиАwоy‡цЭ›ЩO?§tGЋЧ;annЎг%Н"4mкєžіѕ 033Ћq›PгуurrКЇLU5нЯ?AOOOfеХюнЛљЯўѓH‰x Е—šŠ\ТХLИ§ —ЕЛнЧУx™zћЌ-/… К177ПkKw…G›š™†††2D€Z­Цмммння*гыУnг?j•Ї № PЋе@еI<5>јрЮž=K~~>п|ѓ C‡eЦŒŒUЅТЃУЎ]ЛtКэ+(~ќёGЁШм7T*NNN„……сыы‹Z­nѓ…B››У‡ЧЧЧ“fV2B‰'ю%КuЦШШkkkЦŽKпО}лЕ†щ0U›туэӘ1cщэц†R)ЖU@ И?ˆ_œJqq1 ЌоК;ЉЉЉ|ѕеW-†иАa їД„„ДZ-їДўчњjddDhh(C‡m—UžЉЉ)§ћїgдЈQ˜™™ЁT* КЌ С§@ЁP0tшP‚ƒƒquumїyЖ6Ж„ЯрAƒфЌлт%„@ ю=&"kDDп~ћ-йййxzzђТ /0qтDŠŠŠ8tш‹-ЂЖЖ–cЧŽQVVFii)ІІІ<ѕдSфцц’””Dyy9ЅЅЅXXXАhбЂf§dffђЩ'Ÿpњєi уЧgХŠилл бhˆŽŽІЌЌŒВВ2ŒљѕЏmАsss~ѕЋ_ьугO?%66…BСИqуxѕеWх>Zу“O>сцЭ›”——А~§zœ4hГgЯ–ы%''ѓщЇŸ’€ЙЙ9ГfЭт…^MЏ`Щ’%ЄЄЄ№юЛя’ЭтХ‹yц™gк”IЃб№љчŸГgЯ4 уЧч7оhѕœЂЂ"жЏ_ЯЉSЇ(((Рбб‘ВtщRњіэk№œK—.ёйgŸqіьYLLL˜4iЫ—/—cЂдддШїПММЅRЩ3Я<УњѕыйДiѕѕѕ„‡‡ѓЛп§ЕZMVVkжЌсьйГ8::ђлпў–ЉSЇь;??Ÿuыжqќјq”J%aaaМђЪ+иййЩuNŸ>M~~>ЅЅЅ”••БtщRвггљ№УINNЦЭЭ^x№№№6ЧДЁЁ•+Wђнwпq§њuЬЬЬXГfќљ“O>‰‡‡‡ќџММ<ж­[Ч‰'P*•L˜0W^y[[л6ћв!I;vь`гІMфффрццЦ‚ XИpЁо[jI’иВe ›6m"??–.]JXX˜\'''‡ФФDљ^єызЁC‡ђСƒ‹/–-ЯŽ=ЪчŸNvv6C† с­Зов‹ X\\ЬйГgхБэпП?оооЌZЕŠЄЄ$œyійg™5kVЛЏWЧ… јќѓЯILLD­V3mк4^zщ%9^и•+WxїнwйИq#‰‰‰ђН055eХŠЗе^kьмЙ“G}єЖЏA И[zѕъХЈQЃИtщЙЙЙЭ‚С7Цгг“рр`ќќќ O t>ЖЖЖ„††rётE233[]У yЂ @ ю+R`йВe’BЁо~ћm)>>^њўћя%GGGiнКuвœ9sЄЇŸ~Z’$IЪЯЯ—&Ož,9;;K€,ЗБmл6iђфЩ’“““H#FŒhжЯў§ћ% iТ„ RttД!љљљIюююв•+W$I’Є‚‚iђфЩ’‹‹‹H-і1|ј№f}8p@ВААТТТZьЃ5ж­['­^НZRЋе НњъЋвъеЋЅŸ~њIЎѓУ?H&&&ву?.ХЦЦJ?ўјЃфъъ*IEEE’$IRQQ‘4yђdЩУУC$ooo)99Yђђђ’žўy ”JЅ”››лЊ>ОY?›6m’LLLЄ9sцHЧ—vюм)ѕщгGъпПП”——'I’$eeeI“'O–ммм$@0`€Д|љrЩпп_zц™g$OOO ~јa)99YънЛЗ4gЮiС‚’‘‘‘ЄP(Є­[З6ы;&&FВЕЕ•Ц'§ђЫ/RddЄфяя/ЙЛЛKЩЩЩrНЅK—J~~~ вж­[%'''iбЂEвŒ3$…B!) iуЦmочњњziѕъев+ЏМ"’™™™ДzѕjљШЪЪ’ыFGGK666вјёуЅшшh)22R2dˆфсс!]КtЉЭО$I’44ў| žўy)..NњьГЯ$@њня~'зЋ­­•цЭ›'™™™I_~љЅtіьYщэЗп– …єЇ?§IЎЗeЫiТ„ ’™™™мf@@€4uъTщЩ'Ÿ”чяПўѕ/i§њѕ’ЋЋЋєЋ_§J •ЩббQЪЮЮ–л‹ŠŠвkoбЂERŸ>}Є+VH}є‘4`Р V­Zеьк–-[&вoМбьГЏПўZRЉTвc=&*эйГGЊ­­mжNg_8Кж‘™™)§ё”œœœ$333щщЇŸ–.^Мищr‰уС8ЏOmебjЕRZZšєо{яЕК†щŽ>}њHЫ—/—ђѓѓЅккZБ†‰CтG79К н^‘їэЗпJ€4ў|НђˆˆIЁPH€ДzѕjНЯ~јс‡fŠ<п}їAE^ffІdmm-ѕъеKЊЈЈЫ“’’$ЅR)5JЏўцЭ››)ђtlиАС "/++KВББ‘ЄђђrЙќтХ‹’RЉ”BCCлџacc#в… єЪ%SSSЩЫЫKЊЋЋ“ЫЗoп.вЬ™3ѕъGFFЪŠМI“&IбббвІM›$@222’rrrZ•ујƒHГfЭвћт,ZДH~XjЊШ “щГЯ>г+_О|ЙHЏМђŠСkђіі–jjjфђшшh fЯž­WзЎ] ™˜˜HѓцЭ“Ч!??_VyzzJ{іь‘Яљрƒ$@ђёёбkЋЄЄDrvv–LMMeХŽN&@ђѓѓ“jkkхђЂЂ"љКћѕыЇЇœ]ГfмG{™sчЮI€dggg№ѓттbЩЩЩIRЋеzŠЂ .H€4x№`IЃбДйЯŸўє' цЮ+ЫіХ_H€ЄVЋЅ›7oJ’$I+WЎ”щЯўГољ3fЬiЧŽzхK—.•яХ—_~)—oмИQVиѕэлWžg вИqу$@ZО|y39Ÿ{ю9  …Дiг&ЙсЇŸ~Ђwяо-іuуЦ 9{юВeЫєтŠЌ\ЙВХѓŒŒŒ€[йX3`Рр–ыqcо{я=jkkyц™gєbŽ3KKKіьйCjjЊ\ЎFУ_џњWy\\\5j^^^Ьœ9S>gўќљЄЇЇS[[+—љх—Žƒƒƒ\>x№`ќ§§INNfѓцЭЭњxљх—ёѕѕ•џџєгO––Цѕыз[Ÿлс‹/О ЈЈˆ)SІшЙf2„Сƒ“””Фж­[[mуЦќ§я`љђхђ}ЬЩЩРвв•JEYYыж­рБЧгkCїџПќх/zхКёшлЗ/K—.•Ыu.ЕХХХ,]КTžgJЅRў,%%Ѕ™ЌКімннYА`\юттТТ… бjЕ|єбG­^ЏŽwоy‡њњz–,YЂї] ЧШШˆM›6‘——зЎЖšЖЇ›уКі”J%?ќ№љљљ-žПcЧцЭ›'‚m ю+зmЕZЭР7nzѓn­нƒ "00P/•$\kя’ˆ=(шСшZДЗЎёчjЕšў§ћ3fЬlЌm0R<Чбб‘€Р† †‘‘‘ˆ‹знКs/жБІ С-КѕŽяђхЫrvV],JЅ’Ъп-КЬ MƒЬ_П~]ўŠŠъ>‚‚‚юYћіэўЇгajjŠЗЗ7`8ѓІFЃaюмЙѓђЫ/3cЦŒVћ:uъ7nм`ј№сzŸ <ƒч}џ§їlмИ‘їп€’’љ„mлЖQ\\Ь№сУЉЉЉiVЗИИXnуЉЇžвГœвagg'_wгў›ЂSўшЦB‡ЁvY)u'уйД…B‘‘ man/w#Ÿнчцццz–ЂjЕZЯђ.++ ›f–:ПŸ™™™z‰8Z’Oїам4KfгЖ a(+N†ызЏS]]нЊenvvЖly9wюмf}š™™affFIII›Вшкгh4Ь™3ЇY{ццц˜››Зи^^^—.]bќјёэъO ИW˜˜˜рщщЩ#<ТеЋWЙyѓ& ЈеjњѕыGhhЈќтC 4дj5^оЗМ.222ЈОySяЙмжж–‘#Gˆ‘‘ђ–Г­рО"”І@аЭyiьюЈC—mѕv0dхгј-в?ўё9 эвVŸўЙьfй‘˜ššЂT*бjЕ•b:K7C ЅRйLљв:х—BЁ@Ће6S^шЌѕšђпџў—чž{ށђщЇŸ2vьX џќч?9pр€^]­V+џНiгІ6­лK{"tnлЗ;ž€žpGSVV†­­э]ЩЇC77oоЄЖЖЖEЙu8­ѕеИžЁ>Zыџv0ДшОwFFFmŽ}уyј1cn[Иѕ@ЃбшЕЗwя^F}[эьмЙ“йГgcbbrGrєT„%EЧаxќ vvvŒ3†C‡Q^^NII ЖЖЖŒ?žО}ћbaaб‰вvOЯхЦJ1ЗЛЗ{Х:з6КБ‘$I^УТ&LрPфa*nTЪЯ fVЫW IDAT…‚€€‚ƒ‡вл­7 @hђєЙзѓMЬc@ ИEЗv­элЗЏќЗ!wНмм\ƒчщ~$oЎu\НzЕY™ЮЁЅ~р–тЄБђ Е>tюР166ІOŸ>­іQ^^nPIв^T*C† nЙ6Ѕ  €ЁC‡6ћЬССЁEЋД–шзЏpЫ§Еi7nм ИИИй9)))<ѓЬ3OOOYiжвМ*..жwCїbлЖm,YВфŽкkŒpЋН}o†%IBЋеоѓCgMЋ;їЋ+ы §ЖUпииЦ‡‡‡ИЛЛ†НН=JЅR~9еTЖ–њшiѕZѓІч w4 c133cРРŒ5  JЅ+++ЦŽЫРАДА€џЏјЪЅЛЇБ2U mг­-ђ|}} тмЙsьиБƒ‘#GЪŸ%&&мЬВЕ@S7еккZ9№г ѕќљѓљлпўЦЦyу7š)Еž{ю9ІM›Ц’%Kєњ(--mжЧ–-[ZьуУ?фПџ§/oОљfГ>–.]Jxx8Я>ћЌсi„ю‡ВщцтХ‹YБbGŽaХŠryzz:щщщиии№шЃ6kчN,,† †ЇЇ'YYYDDD№мsЯЩŸmйВEnЛё8ќќѓЯдеебЇOŸfю–Кј~еееr™JЅbоМylиА 6АtщRН.­VЫТ… YО|ЙуЏЅБiЉЌiyуПѓ›пАeЫŽ9ЂWПЖЖ–˜˜”JЅЌ˜l­Іeэ}абY–UTTШюЂ rМУпќц7lлЖ­™|555х3Dhh(...№еW_ёљчŸЫŸUWWFDDУ† # €ѓчЯЩУ?,згХЅ{ђЩ'ѕ,ђtїўvЦЂ=ctфШJJJє\zwэкРO<бf{цццܘ1ƒќ‘ 64;ЇООžYГfёС0qтDрїЂqТŠѓчЯуээ……гЇOgзЎ]lиАЧМY{3gЮdэкЕ„……щ}v§њuNŸ>Mxxx‹з+h­VKUU%%%h4š{К‰hкvSы)]йƒоЏЮjЅ%  8;;урр€••іііXZZ’••…БББAйšЦЌjњџžTЏ=шТ-899aaaJЅКЃv]‹ІїЗ- =1кnЌŒŒŒАББaмИqœ;wNуыыۘБcщнЛЗќBB ЯЮ71–@p{tkEмЪ&;uъT>џќs&MšФдЉS)++cХŠ˜™™щЙєщ D­V“Эš5kxійg)**тЭ7п”cЙeddP^^.'dxы­ЗиЖmЩЩЩ<џќѓќэoУЦЦ†ВВ2VЎ\INNŽž;l`` fffфффшѕБrхJЙЬЬLйnerнКu+ЩЩЩ,]К”Пџ§яroП§6™™™m*]р–’FgидŠэХ_ф‡~рРФФФШ.~kжЌA’$>ўјcНxvКјsUUU444Д+>™###VЏ^Э“O>ЩŸџќg†N`` МѓЮ;899QTTDBBsцЬ­гвв8tшсссTTTАrхJY1›˜˜ШёуЧбh4„……Бjе*іюнЫёуЧљ§яЯЛяО‹……EEEМњъЋ˜˜˜Шэ7ОІ7n4Л&тЕiьОЦnкr|ЙiгІёФO№У?АaУйэњ‹/О ММœ7п|“Сƒ7ы[зNcESUU•l9иZ"‡Цxxx VЋЉЉЉaѓцЭL:•Пќх/В2vЦŒ<іиclоМ™7Вhб"р–‹xee%oП§ЖœІ%LLLXГf O?§4_|ёnnnќіЗПЅИȘхЫ—3qтDйЪюЋЏО",,Œ>ј€ЉSЇbffFQQызЏЧЭЭMN`вt<šŽwuuu‹sXw/*++бjЕ“йXZZВhб"ЖoпŽ……kзЎ%>>___^zщ%ƒэ5•aЭš5DEEБџ~ўќч?ГrхJдj5yyyМєвKxyyЩJ<јŸхbBB‰‰‰дддА~§zіьйРкЕk‰ŠŠbпО}Экћэo‹ЏЏo3%РO?§DxxИpWМCЊЋЋIHH ""BЖzМWпюЄШkэЕ]}}=( јЯў#ŸgH†ЦmЖф*къЕ…ЎЎ‘‘ццц<њшЃШПЭТ•В{вt.КПwђbK OуБ fhp0)ЩЩмЈЊbмИqјљљaaaб,VБјощchŽъўпјпЖ~ŸФx aRјuпБcЯ?џ<%%%ИЙЙQRRТ‹/ОHFFЛvэт“O>сх—_ж;gыж­,YВDv422теW_%$$D/€џДiгdKАЌЌ,–,YТсУ‡111Сбб‘ттbfЯžЭ7п|г, ыЖmлXМxБ^+VЌ`фШ‘,XА@Ў7uъTіяпмrЛ{ійg9x№`Г>ОўњkƒI#ѓвK/Бiг&йкаммОќђKYiWVVЦГЯ>Ы˜>}:ййй\Кt‰?ўXVDеееЬеЋWewо^НzсххХщгЇoуюР—_~Щў№ЊЊЊprrЂЊЊŠџћпМїо{$$$З\.322prrтйgŸхпџў7 …‚оН{SZZЪгO?ЭъеЋ™5k?џќ3цццќуџ•Ї—.]bётХ?~ЕZƒƒХХХ<ёФ|ёХВR7$$„+WЎШJ"GGG^|ёEњѕыЧ[oН%Л=* њѕыЧІM›xчw8rфˆЌPВВВbмИqВ‚ІЎЎŽпџўїќы_џ"<<œššŽ;Ц[oНХлoП-?ЄЬŸ?ŸC‡щЕ3zєhіэлЧЏ§kvяо-+•,,,6l?џќs›ућўћяѓілoЫџŸ1c›7o–ГОj4~џћпѓѕз_3eЪЊЋЋ9~ќ8oП§6+WЎlїCд?џљO^§u=…з#<ТЦхX|Geёт՘ššЬ‘#G№ёёс?џљœ%јаЁCМ№Т ЄЅЅЩчљњњђеW_Бiг&Жoп.+UЭЭЭёїїgћіэ„‡‡“šš*+<y§ѕзљня~мJГnн:^}ѕUВГГ‰ˆˆРвв’ттb‚‚‚иЖm›,УцЭ›YЙrЅ^в___жЎ]Ы#<мRЪ-YВ„3gЮ`ff†НН=%%%ќц7ПaнКuz1ыъъъ˜222ИpсBЛњИSвввИpсŒ=к`‚ŽB7жuuu„††вЋW/ВВВЈЏЏЧЮЮ=‹Ѓ+WЎpётELMM>|8vvvР-7ЙЬЬLйеЈ)—/_&%%ЕZЭ!CpssЛgзд”ТТBbcc122bдЈQm*];’Ы—/“˜˜ˆ››#FŒ0И@pњєiT*ЁЁЁw$ŸN XUUХ€ZмL544pъд) шлЗ/Знз Sф§срЏ§+чЮуъеЋєщг‡aУ†нёТ}ётERSS177'  ХЌœZ­–'NPPP@PPЌ4lЉ= ќ§§[lЏКК777вггхя@WЁ3~zїЉеjЙtщ?ўј#_|ё………ЈT*дjѕmYїDZкp ю джжRSSƒЇЇ'O?§4 ,а‹1кUDя†юЌШkЊЬhЊ(’$ FCyy9………dee‘ŸŸOAA………\ЛvMVрi4ъыы;,у}OЂДД”ТТBjjj№ђђТвЪ U“псвnнИ(•JŒ111‘ŸчmmmqrrТйй<<t- )НoоМIzz:'OžфрСƒФЦЦЪЪ;•“……666899сцц†ЋЋ+ЖЖƘ››ЃVЋQЋеЭТДъЛБ’ЄёМб)fК“Ѕ=IКъѕЖіђЄ#ЏЅ=–rѕѕѕr(€ъъjй]Yч ^VVFMM yyyффф№Ы/ПАgЯBBB˜0acЧŽХЯЯƒЁКкН‚Ž Ч*ђЮ;Ч“O>)—ХФФ,yA7Є  €ииXІOŸЮєщг8uъ–––]V‘wј№a „ЋЋkg‹ђРгиЅКЊЊŠ]ЛvMAAіііЬž=›‰'тьь,6‚нЕГГcжЌY$%%Бwя^ ‰ŽŽfћіэ,\ИGGG1Л :ХЋBЁ@Ће’žžNdd$‡&>>žттbН$cєызаЇOzѕъ…••цццЃT*ee_Kй“ биšЖЕȘ]йъЖ%йEаŽG’$й+ЂЖЖ–ъъjnмИAyy9\Кt‰Ы—/“‘‘AII EEEDFFrўќy:Ф”)SЇOŸ>˜™™‰ћ"z<=R‘їјуѓјуwЖр>H```g‹бЁЗкЖiњ _YYIll,ћіэ#-- ‚‚‚˜?>žžžГ *ЦЦЦИКК2wю\ 9zє(йййlпОoooBCCqppо.@SЋІКК:Š‹‹9}њ4GŽ!..ŽЋWЏRVV†‘‘^^^јљљсчч‡ЏЏ/ЮЮЮиллcii‰‰‰ *•JVм eЎрA ёK2­V‹ деесууCPPdddpётERRRШЭЭ%77—ђђrВГГIJJ",,ŒМММ КŠ‹Xz Їа#y@а•бjЕьоН›7п|ГГEщ( nоМЩеЋWйЙs'чЯŸЇІІ†€€ІNJHH–––zЙ‚•ЦѓдФФ„‡zˆЋWЏRTTФ™3g8wю{їюХооžЁC‡ЂVЋ…ЅщLSХCUUWЎ\!&&†Н{їrўќyJJJPЉTx{{гПќ§§ёѓѓЃOŸ>888`jjктНŠмžC{\…;‹Ц–ё …BŽйhbb‚ЅЅ%NNNx{{уччЧ!CHNN&))‰K—.‘••Х… (**";;›œœ&L˜Р Aƒ055EЉTŠy.zB‘']ŒcЧŽсъъкeн‚яъШЫЫ#::šˆˆЎ_ПŽЋЋ+ЃGfъдЉийй E‡ ЫЁ›ГНzѕ",,Œќќ|y“{рР<==qttФззЗE7IAчвx’$‰ЪЪJ’’’8pр{іьсмЙsckkKП~§>|8ЃFТлл+++ŒŒŒфИuВчAФтЇ+™ЁыЙпїіZРЕлN'ЇZ­ЦХХ Dpp0qqqœ8q‚‹/RZZJTTййй№Ш#0pр@Ќ­­eыМЎ|рvŠ<@ шbЗкжiК9ЎЎЎцЬ™3ьмЙ“ььlLLL eъдЉ 0@МЩti$IЂџўLž<™ŒŒ 6oоLFFћїяЧЭЭ 777ЬЭЭ[=_l~я?MзЉКК:тттјЯўУЁC‡ШЫЫУШШWWWЦЯФ‰ ФЪЪJ/(ˆ˜n}n'тƒDcŸ……ўўўјјј0tшP>ЬсУ‡ЩЩЩстХ‹фччsхЪ~ћлп2lи0ьээ›]ЗXзAwF(ђ ‹Бkз.vяонйbtтттиЗoчЮCЉTЬŒ3FЉTvЖxС]ЃRЉQ(иййФc=Ц?џљOrrr8sц {іьСЧЧWWWT*•Pкu2M-ёrss9vьпџ=qqqTTTаЛwoBBB˜yyy=z”элЗFЃСгг“1cЦ0iв$0777ш*y/тzідXЁm)'ЛТИшцHcdy[ЂщНh<іŽŽŽ„„„`ee…ЙЙ9‡&;;›ииX$IBЉT2wю\ fД‚юDЗVф­]Л–„„ЮŸ?$IќћпџюŠМwоy‡єєtЉ­­хх—_ОmEобЃGYГf iii”––2aТ„{ЂШЫЯЯgХŠ“••РѓЯ?п%‚ЎРŽ;јілo;[Œžъъj’’’јщЇŸHNNЦШШ???.\ШР177з{k]7Ўаэа­iџC­V3`РцЬ™CQQЧŽ#55•-[ЖрххХАaУАББК†rЂ;Ђ[gЪЫЫ‰‰‰aћіэ9r„›7oтссС„ ˜2e ўўўђЫ†щ^=2tїzНoэОЕІАК›ОЗyЇjЋГц`уО%IТЪЪŠ€€lll066црСƒdggЫVї666Œ?ž^Нz d@а­щжСОћю;Ю;Чˆ#:[”лbыж­ФХХБdЩ’;ncС‚ФХХБjеЊ”Ќ9оооФХХqрР{к@ €Ы—/SQQAHHHg‹ђ@б4cc}}=ЙЙЙlйВ…SЇNQVV†——SЇNeтФ‰XXXДи–BЁ§‚.ƒЁlЅЦЦЦL˜0I“&сыыЫ7ˆ‰‰aЯž=dddt{eѕƒJуьВ ФЧЧГuыV~ўљgjjjАЕЕeжЌY<ќ№УјћћЫiu4]—юХZеž6Лгќб]oуЃЕzїŠ{1ІчлэДпRілћEг{ЁSФ5ўП‰‰ ООО<ѕдSܘ1ЊЊЊ8sц Ÿ}іgЯžЅВВROивuuЇљ,zнк"OGk›ЖKKЫЛnу~]{Wc +Бmл6yфЁhjBгИ:yyyDEEБkз.ЪЫЫqqqaќјёЬš5KvSК3жжжLž<™‚‚ђѓѓ)..&""OOOьььшгЇиРv7oофвЅK|§ѕзœ}:D’$Юž=Ы‘#G8ў< zч:–Іы‰$IфххMDDyyyиииBxx8§њѕЛ#%о§І-7TAћшшяœ!7кЛЙWЪšа–ќ*• ___ЦЧјёуБЗЗЇЄЄ„ЃGEvvіЗ-2=Ю"ЏЎЎŽяПџžЃGЂRЉ˜={6?ќАСК ќєгOФФФ——GЏ^НшлЗ/=іЮЮЮr=FCVVeee”••aiiЩШ‘#9zє([ЖlЁВВ’ž{ю9ЬЬЬ і•Рwп}G~~>ƒ тХ_lѕ:вггљзПўEvv6<ѕдS’ЭSO=етyБББ|џ§ї\Лv€€žўylmm жНxё"лЗo'-- €>}њ0mк4FŽйЊlЅЅЅ>|ИYЙ‹‹K3EФеЋWйАaWЎ\Сжж–yѓц1yђф6ћz;vь`іьйЈT=nйnFKБnђѓѓ‰ŒŒф—_~ЁДД{{{ІM›ЦшбЃqss“ы‰їюЩƒn=вбДчz3f ЉЉЉlмИ‘ММ<Ž?ŽЋЋ+ООО888ˆ5х>QQQA||<{іь!55SSS˜8q"C‡•ѓУэЯпЦˆяTѓ |g:у;м‘I"кУ§JqЇmпKљ:rЌŸЋVЋёѓѓЃЁЁММ<тттИrх ‘‘‘xzzтфф„™™JЅА_н‡ЕЂнМy“)SІАzѕjЎ\ЙТ† ˜7oјУšе-,,$88˜ПўѕЏxyyё№УЃRЉxэЕз№ѓѓумЙsrн„„ІNЪШ‘# gнКuќљЯfС‚ЄЄЄАgЯ^yхЦOMMMГООќђKzш!Оћю;lmm9yђ$СССЄЇЇМŽѓчЯ3lи0fܘJЅbܘ1Ьž=›шшшЏџГЯ>cњєщ$&&r№рAо|ѓM†NiiiГКЏНіcЧŽEЋе2}њt‚‚‚јЯўChh(яМѓN›c][[ЫхЫ—YЛv- .фёЧчЫ/П$55UЏо7п|УрСƒILLdюмЙиии0}њtž}іYДZm›§=…;w2oоМЮуDЁPPWWЧБcЧ8|ј0—/_Цвв’цЮ‹ЏЏЏьZЃT*;- љ§І­пŠХХ§ЂЇ\sc+•JEяоНyђЩ':t(666ЄЇЇГoп>ЂЃЃЙqу†|NO›Ю@7я._ОЬ#pсD IDATсУ‡хч4www&NœHHHH›жТЗгWwЁ;]Ы§РP’ˆЛmЋЋ Г@іѓѓcўќљИЛЛ#IчЯŸgЧŽ\ЙrFгйb A‡вЃyяМѓSІL!%%…˜˜8€BЁрoћ›luІуЕз^уТ… ЬŸ?ŸeЫ–БpсBўіЗПБbХ JKKљф“OфК!!!\Нz•з_€ЈЈ(тттHOOчШ‘#$''ущщЩщгЇљілoѕњ9}њ4Ы–-УммœИИ8Ојт """XО|9[Зn5xЋV­bётХМџўћ<ёФМѓЮ;œhа LMMЉ­­%77ЗХОр–Eо‚ ЈЉЉ!&&FЖ lЬ›oО‰VЋхх—_ж3wŸ?>kзЎ?КАkз.ІL™‚Z­юlQ8tЁ ЖlйB||<•••јјј0mк4F…ЕЕuЕ6’$‰ššJKKЙ~§:зЏ_ЇЂЂBЖvюJЗC}}=.\`яоНьмЙ“ќ‘ииXЎ_ПойЂu(э‰Ѕs%WЋеŒ=šЩ“'гЏ_?*++‰‹‹cїюн\Йr…КККћ(yїЇёzгааРЉSЇˆ‰‰!33sssFŽЩиБcqss“№t5+ЈŽІ%ыс{Mуяб§џё^п…žBЁ­тяХѕ+•Jlll?~<У† УССттbіяпЯ™3g z AWЅGF™2eJГ2wwwЮ;GEE…^љКuы1b .”ЫвггIJJнQ ŒЃЃcГ~*++хВ††<РЈQЃєъЋT*FЭЮ;›ЕяххХO?§Dџў§™3gaaaŒ3†хЫ—SRRbPІ>}њ0`Р€6e˜;w.Ÿ}іЎЎЎВrВММœГgЯЪ ЗІч4ццЭ›<њшЃ:tˆддTYyи˜ььlbcc1b„оgцццфцц’””D@@@‹} =;wђЋ_§ЊГХx h<ОААуЧГwя^ АЗЗ'44”)SІрффєРm–ю':KХ3gЮPUU…JЅТЭЭ№№pЌЌЌК]l4ТЖЎЎŽ'NEYYJЅ’бЃGcee…ƒƒC“шъъJXXyyyRTTФСƒёєєФооЮБлQWWGQQ‡&99™КК:ММ̘>>˜™™нБђЄ;Ч„ьЉ/_:Šy>м‹ћк4ЎŸЏЏ/У‡'77—SЇN‘ššJdd$юююиии`ll,2и ‚.OїzŠo—fe:—ЋІoЃНННyу7јёЧyћэЗ‰ŠŠТЩЩ ›;ъG—‰ЌБKъЕkзd…XSХ —PЃ1љЫ_ˆŽŽ&--?ў˜?ўЅRЩИqујт‹/юJ&ИЅD|щЅ—ИpсЏНіЛwяІММœ   vYШЭœ9“ииXxх•WиЕkWГЪффdљяАА09~ gэ—‘‘!y‚Э78vьџ§я;[” …BС7HHH ""‚ффdT*C‡eвЄIъ­;=ёa§Цœђѓѓe7АiгІЕ[n ;ВgЯЦŒƒЕЕug‹вщ4оДI’DZZ‘‘‘DEEбаа€‡‡‡œЅЖq†№žњАЎеjЉЎЎцњѕы”””P\\LYY э ˆоиеЊЅП[:ЇiМЎІчД'І—ЁѓлSn)­‡lhœфЄЇЭ‡ЦїZ—fоМy8;;#IЧчрСƒЭl ‹ЈЛЃЁЁТТBvяоMzz:ѕѕѕјњњ2vьXœ122К+%о§tНгј{†жƒжŽŽМ–л‘Й­БМЗ_­VKMM ………фччSXXHYY™H<„с„y§КvЕZ-ююю :._ОЬ‰'фЄ{=эw@ t?z”E^{б)Ў]ЛF||МZwЉН]АВВЂВВ’‚‚‚fŸgee5+гh4ИЛЛ“’’ТВeЫXЖl ФФФ№ЦopђфIЮŸ?Я№сУяXЎ—_~™џўїПќюwПуЃ>’ЫЕZmЛ‚bџы_џBЉTђбGёт‹/ђњыЏ3vьX‚ƒƒх:}њє‘џЎЉЉСЮЮЮрЕъЌ‚žŠШVЋnГWRRТў§ћ9zє(UUUXYY1wю\Fнb|бžNгЫэИЏI’„FЃЁККZЖт622Тдд ‹v)ыыыЉЎЎFЃб IFFF˜››ЃVЋ›ЙFС-KyFƒFЃЁОО­V‹BЁћ533“­Й{ЪFјn‘$‰^НzЪc=ЦїпЯЕkз8~ќ8Н{їЦннKKK=+yСэЁ[ЃЪЫЫIJJтиБcTUUсъъJppАьeаSцlYYgЮœЁЄЄФ`Ђ4•J…ЙЙ9іііИЛЛуфф$Џ uuuTUUЩз`llŒ™™™^Ђ9…BFЃсЪ•+Ќ_ПžТТBььь сзПўѕљНjЏ•мƒv?кBЅRсууӘ1cˆЇММœsчЮO`` x9*К<=B‘з–ХAS~љхJJJАГГгSтФФФњewкŸ‘‘гІMcыж­DFFъХР*))‘pш“ы(..f§њѕВu ‘‘уЦу›oОa№рСЗ0Ищg;vьnЙМ6цфЩ“В,MгИjџ…^`пО}ќєгO<ёФœ>}+++† ‚ЗЗ7щщщlйВ…РР@Нs5 У‡gћіэјњњЖ(Л@абjЕ;vLdpFЉЉЉ!**Š#GŽpѕъU,,,=z4гІMУЫЫЋлХ~Л )яZћ?шЕVЋ%77—””’““ЩЩЩсЦr†@'''њѕыG`` nnnЭВH’ФЕkзИzѕ*чЯŸ'++‹ввRъыыБААРЭЭРР@ŒЃЃЃlЅ”™™Щ™3gИrх зЏ_ЇВВ’КК:”J%fff8::тууCPPXXXtрЈuoŒqwwgоМy\Нz•шшh2228|ј0ƒ bТ„ иииЗЯ;@їнбjЕdeeqтФ rrrаjЕ 0ьээ;D‰зbфI’Dii)‡&55е ЧˆRЉФииKKK\\\xшЁ‡ СннНйZоTйпQзнžБМvэ{їю%33FУР УЫЫKЯrXЋеRYYЩЅK—ШЩЩСЩЩ‰оН{lѓ^нЗЩ=О%їcCѕšЪ{Зsмооž!C†ЬЩ“'ЩЬЬфьйГŒ=š‡zшЖ낉Блб=8z€а•5VЬщ’3”––rьи1ЦŒƒ$I|ѓЭ7lпО€ЋWЏ’Mee%ƒ jБ­жњјПџћ?vэкХІM›xц™g?~<ѕѕѕМјт‹X[[SRRbа2яќ#СССLš4I.;sцЬџcяЭbуИвѓ§Їzп›l’Э})QЕoІЕ‹ВЕЭи#OœЩd6Œ‘‹ Hnd 7 ‚$’ ВLf&3cHŽэ‘eЫЖ$[ВЕя w‘lюdГЩfГйћіПаПjHŠЄ(‰")щ<€aЛYЇъдЉЊг}оњОїУщtNђ”{’>edd066Ц‰'8|ј0’$бииШќcl6ccc\ИpЋеJ^^fГyви†Уa%•ї?ўу?XО|9ЭЭЭќжo§GХjЕЂRЉј‡јО§эoѓџјькЕ‹}ћіооОѓЮ;Ќ[ЗNˆx‚—•JEGG‡ˆL@8ІЅЅ…'Npяо=’Щ$•••9r„UЋV)/ `i,b“'IЛ›И M$ДДДpцЬ.\И@ss3CCC„B! щщщR[[ЫоН{YЙrЅщJЅшъътвЅK|љх—мЙsЗлпя'‘H`0ШШШ`ѕъе|џћпЇЖЖ‹ХB"‘рў§ћ|єбG\П~P(D4%‘HH$PЋеX­VђѓѓЉ­­хѕз_ЇІІ›ЭівD9=.SаfГ™šš:Ф№№0зЎ]ЃББ‘їо{ММ>NSSWЎ\! ‘••ХЊUЋ(++CЋе>ѓЪбѓэЗі4э#‘]]]ДДД …PЋеhЕZЅZo2™Tќ—Эf3===ЄR) ЙЙЙ}МЙŠDгm?›И~§:Зnн"  YЛv-*•j’žŒJЅRRќŸfќfъп| Й щ‘7нБg›cІѓM|дq'Юu:ŽММ;vьргO?рЏџњЏ9pр­­­lлЖЗоz €Н{їВsчNЪЫЫљљЯЮ7иМy3ЁPˆЂЂ"ўћПџ›ЦЦFіяпЯп§нп<­vюмЉјЂЏїƒ@№<"DМH’D<ЇЏЏO>љ„ЏОњŠссa йЕkћїяЧсp<вP\07‰CCCќњзПцЇ?§)~ј!wюмattN‡^Џ' вммЬЇŸ~ЪўчђСаммЌЄžqіьY~іГŸёЫ_ў’K—.бннM<GЏз#Iœ9s†––‚С rќ‘‘мn7БX ЇгIUU•Щ­еjqЙ\|ёХќф'?сгO?ЅГГSˆNs@wU*fГ™КК:vьиAQQ>ŸгЇOsъд)КККˆЧут9zBИwяMMMЈT****XЙrЅтK8оv щ‘їЄШЯфDБ$==ъъjЖnнЪцЭ›YГf EEEшѕz|>зЏ_чвЅKИ\ЎН4х БXLљGNПŸЎЉTŠx<ўPЊўд}ЦуёIћ“л& Ђб(уууј§~ќ~?@€h4ЊXФb1хEƒнnЇІІFёh+**štœd29Љ?‰DbвБІіaъЙLыfj“L&g=ч…`ЖћtЎў…OƒеjeгІM”””`0шююцЪ•+x<ž9№‚ЅЪ ‘їкkЏMы—““УюнЛJчШЯЯGЅRqьи1Оњъ+nнК…Z­fЫ–-lиАx Ц]Мx‘œœVЌXA8цпўэпкWFFƒaкДИ‰žpoОљ&;vьру?fppUЋVБoп>ккк8pр6› NGyy9†>њˆC‡ …јђЫ/innfУ† ќг?§™™™dffN[dТnЗcГйј—љ—‡ў&GQМ§ілlнК•3gЮ022ТВeЫЈЋЋSЂьvьиСии›7oFЇгёWѕWљžшѕz233љЇњЇ‡Ž3б„ўG?њGŽсдЉStttрp8Ј­­eљђхЕ/S#FGGЙqу?џљЯщяяWЊАОёЦ“*s/х…эBђ$&т#ŠЎ^НЪЛяОKSSбh‹ХТЪ•+йДijЕšІІ&Ў_ПЮ№№0ќњзП&==ђђrвггihhрУ?фмЙs$I"++‹ѕызГlй2 }}}ДДДсиБctttаггУйГgЉЌЌdљђх“ќЊ3#пr˜ўў~zzzтНїоSМЪ233Ÿ‹ЮЅ‚Ў]ЛЦ­[Зшъъ"‰`ЗлЉЊЊЂЌЌŒP(Ф{яНG"‘ 77—КК:іяпџмјШЮ‡ш-IzНžššЎ\ЙBOO§§§œ?žЊЊЊIХšрyтљ˜Щ@№RгддФщгЇЙxё"бh”ŠŠ ^{э5ЖnнŠХbYьюНP$ FGGihh  ’JЅp8дддАuыVjЕZ1єџшЃ№љ|„УaњњњpЙ\TWWгккЪШШЉT “ЩФЊUЋиН{ї$/Уd2Iff&Z­NЇ,м, ~ПŸЁЁ!мn7>ŸX,F*•ЂННЏзЋєзчѓ1222­ЎрбX­VжЏ_ЯсУ‡ikkЃЇЇ‡Ы—/“——G~~ўC/яГгггCcc#§§§˜L&ЊЊЊ(**R„jxі/цЫЯl&!хiњЏRЉаh4шt:$IRв='Q3›Э˜LІI"оии7oофєщгмИqƒбббIUДЕZ- мН{— 6(v5jЕZ™›юнЛ<(чїћ'ѕ+ тrЙЈЏЏЧl6ЃгщˆХbJлжжVbБ˜’Оыїћ•ш=Й§Кuы”hСћїя+Х.ІО№іћ§ДЗЗS__<ЈшmГйpЛн ‡‘$‰––E<мПП"цХb1мn7яПџОRФa||\‰Шkii!;;­VЋxЩŽ?TРo1yм{h.•бgkWVVFii)---ј|>.]КФ7Оё ЧCс@№< „<@ ,IфдЧУЙsч8wюƒƒƒиэvіюнЫЖmл(,,TRЃф6џ-x|’Щ$ЁPЗл­xY,ђѓѓЩШШPЬлгвв”ŠБccc$“I###Фb1<RCЏзS\\LQQ‹EЙ>ВŸќfЧikkуњѕыдззггг3IШѓћ§єѕѕ)§D"„B!%ХN№xЈT*ђѓѓйО};MMM|№СИнnЮŸ?Oaa!ЄЅЅ)Я™xЖf&™LвммLGGуууdggГnн:f^Чяy:ЅЙЙyRZhCC Рƒl“’’rss•яЙ№Ю_|СщгЇФd2‘‘‘ЁDФљ|><ŸЯG*•"//мм\хXЁPI’”hП‰$“Ie.бh4ŠwNЇ#;;›ввRz{{ $“I, йййJХьММ<Х6'‘H‡ …B„УсI"Ѕ|Ќh4ЊМ|hmmUв‚ѓђђУуё088H0DЏзГzѕjЬfГт%xётENŸ>Э§ћї‰ХbX­VrssбщtŠ(‡ябH$ђ Юb1ёћzЖћјQХ.ѕ Lќ,++‹ђђrrrrhmmЅББ‘ііv …'žK„'‚%ХФчбh”kзЎёљчŸS__С` ІІ†o|у,_ОН^/Ф…g@2™T„3`RЅI•J…VЋUвХфvВйњDѓy•J…С`@ЃбЬx­ф‚&###œ8q‚_џњздззџ)FC<'L:Іl/x2 ххх|ћлпІ­­ЋWЏвккЪЩ“'YЕj[ЖlСjЕ* kёМ=Œ,езз300<№+^Гf’ОЗPїшу\ŸйЂїfлЯt"Ъ\D™ююnNž<Щ•+WH$ŒбггCOOzНžЪЪJж­[ЇDБI’D(тЦ\ЙrЗлVЋeљђхЌ]Л–‚‚’Щ$нннœ?žоо^:;;ЙpсызЏŸdБ3ёEЯLТЯTЁШnЗГaУЂб(}є.—‹h4J^^ЛwяІДД”T*…еjбNцQ"S*•"77—M›6QTTDwwЗbM …hjjЂЗЗ—ЂЂ"4R$ЈЃЃƒH$‚гщdеЊUЌ_ПГйŒЧусоН{мКukЦыї$§§§Јеj222xћэЗйО};999$“IFGG1™L|ђЩ'tvvтvЛЙvэыж­›БPФl}•Н эv;ызЏЧnЗs§њuz{{‰FЃфччSWWЧцЭ›I&“JŠАœВћ8ˆ%%%>|˜#GސžžЮаа№ zїРР>ŸЏзK4E­Vгз1лX IDATзG}}=сpƒСРКuыјўїПЯЦбh4ƒA.^МˆJЅтєщгнŸ…`КhМЙмkO‰*I………J…фP(Dcc#УУУ”••MzI%ЯbжС’#•J188Ш{яНЧљѓчёx<PWWЧСƒ'Uо[J‹“ЅŽ$IЈеъYЧLЃб`Зл' 7r„GKK бh”d2IOOтU%‹sЂгщ())QЎS рцЭ›\Кt‰%R/вббЁT„ŒD"tttрёxˆFЃh4JKKљЃ?њ#ўшўˆпџ§пчаЁCГY<’$Ёгщx§ѕзйГg%%%ј|>Юœ9УЧLwwїbwqIFщъъЂЋЋ‹ёёqьv;ХХХиэіЦ[ŠLЌ -WŒu8иэveŽ‘Ѓѓ\.^Џ—d2ЉЬS~ПŸббQBЁ:Ž‚‚ЊЊЊ”TV•JEZZkжЌ!33јЭ‹ 9х~jЄсLзdbФзDQ/‘H(bнФЯтё8ёx|NQСџ>ёПЫЫЫYБb6›d2‰еj%-- “ЩЄD7Ыч‹Х№љ|ŒŽŽ’L&IKKЃЌЌŒŠŠ T*ЩdƒС@II еееѓ*PЩcВдDСЙJЅHKK#??_‰[ZZшяяW ˜Сѓ„ˆШС’Ууёpљђeо{я=њњњАZ­lйВ…У‡“““ѓмTн[J$ †††јф“O”Sq:уp8иЖmWЏ^%рїћЙuыџіoџЦ† аh4дззsцЬТс0ЉTŠььlЊЊЊЈЈЈ@ЇгБiг&._ОЌDАєїїѓГŸ§ŒііvЪЪЪаыѕ гккJ]]ЕЕЕJ?&VїŒЧу„B!Eмmhh ЅЅхБЮ§eQцŠ$IŠ_оО}ћфУ?ФуёpќјqrssБйl8NЅЭLin›ўі" …hnnfpph4Jff&ххх“ŠИЬ–Žњ$QnѓUеѓqy”_йl,[ЖŒ;wRPP@0Є­­;wю(iЄ.\ ИȘЬЬLђђђ€пЄЯ'“I%Ѕп`0LJызh4˜L&e^“чŽщЦ~Ђ ' ;Љ‚лдЯdІFяMЙІЂкl6ьv;jЕZy)2бЪ`bdQеj5zН^Б™€V:Ѓб8лЅXTfЛ_fЛЏž&дd2‘››K~~>.—KIУіzНKzЌ`:ФJH KйЉЁЁ“'Orїю]bБ7ndяоНЌ[З­VћR OŠЇгIaaсWлœ ѓ1џ=*qЖдЦЧ§ ;;›W_}•UЋV …шююЦсp‡iooЧхrqуЦ ЪЫЫЩЮЮV„*ƒС€VЋ%уѓљ$;;[)v …шыыSцЕZЭfCЃб RЉPЋеJФZ8&‹ХPЉT„B!:;;›іœхЯ&~.‹‹В.GЯЦDБoтО4ЭЄ—SГEНЉеj FЃQ)р122Т№№0H’D,Уыѕ2000Џїн|Šjг}‡?ЋяsљXZ­–ЌЌ,Š‹‹Йpс^Џ—ююn†‡‡бX ž„'‚EejЄDWW_}ѕ_|ёС`‚‚іьйУЖmлШШШ‚Ь‘˜:NI_ \ЙreЦ6*•ŠM›6a4YБbпўіЗ‘$‰Ы—/уvЛХуё”&“ ЇгЩš5kxѓЭ7йВe‹йPTTФ”Ъ]]]Ъ‚йхrЁVЋ1bЕZбjЕFЊЊЊxѕеW ‡УtvvјќѓЯЙvэ………8NЪЪЪpЙ\РƒTН‰E4$IR"Zt:нД…:г#?[lйВ…ўў~юпПЯаа_§5yyyГlй2eћGљП $“IЦЧЧiii!‰(ЯХtб‹rѕпчѕeФl§‹їœVЋХl6“––†еjUцєССAКККˆХb477гддDMM vЛЛнŽгщФfГ122B?WЎ\AЃб——G2™ФуёpхЪ†††$ “ЩDII zНN‡С`@Їг …№zНJХRЋеŠлэцъеЋŠ7нt}—НCхѓЇЗЗWёћ3˜LІ‡кЬФЃОЧІk›JЅаыѕddd››K0ФяїгккЪеЋWI$hЕZќ~?7oофоН{KіћrЎї§|?rЕuNG8ІППŸсссy=†@ ,BШС’! qіьY>§єS\.Z­–={іPWWGyyљЄmŸЗ№BЃRЉАйlфххM›F;]ЄгщT*lъѕzіэлGAA.\ртХ‹ДДДрѓљHЅRиl6ŠŠŠXЛv-ЏНіЫ—/ЧjЕ*ћTЉTlмИ‘мм\жЎ]Ы_|Ass3nЗ›X,ІTyмН{7[ЗnUЊвцччѓЮ;я““УЙsчшьь$STTФў§ћ),,ЄББQIЏ58ŽI4d/$YШЫЬЬ…I’(--хРдззsтФ \.ЇN"??ŸтттI)Œ/ћГЧЗh4Jvv6YYYиlЖ‡Л™ЂGk Зњчуl35хtjD›œ*[\\ЬцЭ›љђЫ/ЅЗЗWЉдjЗлЩЬЬdХŠдзз3<<ŒзыхиБc444ŸŸO*•Тхrqїю]ЦЧЧбыѕфффАaУ БX ‡УЭf# сvЛљјуЙџ>VЋ•ŽŽюнЛ7)вw*›ЭІЄѓК\.>јрš››QЋеЌ_Пž5kж`0fмЧгT–1 АzѕjњћћёzНмМy“ЁЁ!жЌYЃ“ЭЭЭtttЬљxsсy}Ю'о‹…œœЬf3ёxЗллэVюE@ x^Bž@ Љбx—.]тфЩ“дззc2™ЈЎЎцШ‘#TVVЮXщT0=iiiріэлD"ЪЫЫљЮwОУкЕk•Ъ‚Й‘JЅаjЕффф™™9ч…œZ­žd "@єz=iiiŠс<ќІюЃ Ш iЋеJNN‰Dbжіr4 гщФсp(лk4ЅoђОІлZ­І  €мммIцяВ,юЃ™™ъWeБXXГf oМёууудззsяо=~љЫ_тp8XЖlƒaкq}™Ц: 288Ш№№0‰D‚ŒŒ 222PЋе“Ф UP™юмфЯ4 ‹EЉPk6›'Э1ђ\%{чѕіі244D(ЂЃЃƒббQ%ТvїюнX­V.]КDOO^Џ—p8 €йl&33“ЪЪJ6nмШІM›”шb­VKee%‡DгT*TTTЭѕызikkУd2MzЙ`БXиМyГRœchhˆH$ЂјфMDЎќэїћБZ­RаjЕX­Vl6’$)žЅїЃзы•m4 :NљЛЩdЂЊЊŠЗп~›‚‚ъыы"‹aБX(,,$??Ÿp8Ь‰'H$ŠOрЫŽVЋ%-- ЇгЉмCƒƒƒј§~!ф ‚ч !ф `С™ИшK$Инn>ћь3Ю;ЧРРйййlлЖ§ћїуt:•ёЫ" ЬђvКДкG1uЌeпЙщDЛщ*qNзI’fLo.НPії›Ž‰ОгѕcКv/ЊˆђЌ+bІЇЇSWW‡Ыхbxx˜ўў~N:ХЪ•+1™L+Оo№ќІп= С`ЧC  •J‘‘‘AzzњCзѓь'јЈ~ЮtnvЛ;wRQQA,ЃВВ’єєє‡ЦХfГБeЫ"‘ЃЃЃшtКIХB хххЄЅЅQ\\Ќ)…BŠцt:)--UЊоNьSVV–’ТпббпяWвю+**0™Lфччгее…^Џ'??_сАVRRТсУ‡YО|9nЗ›H$ЂЬ•rZЋZ­&;;›рѕzБX,TVVNъKnn.ЛvэЂММ\ikЗл'IEEћіэcэкЕЈеjE4—S@хJюYYYддд000 X!I7nмPіi6›1™LЯЭ§іЌ…хœœ4 @ЏзЫии˜е-ЯBШСЂ266ЦнЛw9zє(эээhЕZжЎ]ЫСƒЉЈЈО5ѓЬ\…ЗЙ2 У™іё8та“ ‚ЩЬ”ЪЗ|љrъъъшыыу“O>СхrqќјqђђђHOO'--эЁv 1оKхšЪ•Cуё8†ДД4%кjЉєqБp8>|˜x<ЎЄ6Ъ‚”Œ\ФANу—џ&д‘Пt:ЙЙЙффф …ˆFЃ“Ж• ZL-(œœœœN'С`x<ЎМ\0$ Š‹‹•t|FЃЄЩЪbбhdгІMдддF•haјMфВJЅЂААя|ч;$“IхПЧŠŠŠp:ФbБIm'іЗІІ†ЪЪJхќŒFЃђ‚B.Ў2>>Naa!eeeJ*Џ\AїЮ;tww+ТŸl?0qљEF’$ 999hЕZBЁcccј§ўХюš@ <BШСЂ‘L&immхЃ>тќљѓ$ жЏ_O]];vьЉ@OШЃ*K>/ŸR˜(==з_элЗ“››Л$ЮaБбh4ddd гщH$ЦЦЦЛ[@№X!O  Ž$Iј§~Ю;ЧщгЇщыыУh4ВgЯvьиAII‰ˆЦ˜Љ‚ЪФџWЋеВkз.ъыыљьГЯшээхмЙsё;Пѓ; %’o!Ф™™"ЛYШѓљ|РƒBfГyЮо” )bMWb1XЈд§љ<ПљHяŸ>Шо•iii,[ЖŒЖЖ6Ѕњj2™D­VЃгщ(--%//•+WВuыVЪЫЫ•єнЙіѓEёр7‘Ÿrдd(Rž_`:^цttСвEy@ XpЂб(ЗnнтдЉSмЙs•JEUU‡ЂККГйќвЅш K™T*…Щdbљђх|ћлпІЗЗ—[ЗnбааРЩ“'ЉЊЊbЭš53І;.d?њxсpПпЏјЈFДZэ#ћђ<ПxQ™щšЭзu™Rйяяпј}}}ј|>BЁ‰D­V‹ЩdТсp——GII NЇsRЊя\YШ{q!=5U*‹ƒС€JЅ"‰рїћ_ЈДvСќ№ЂŠй‚!ф `AIЅRєїїsтФ ._ОŒзыЅЄЄ„C‡Q[[+*Ч KI’HKKcчЮ444рѕzinnцђхЫМџўћdffR\\<ЃџзBєo1RkcБсpxр‘ЇгщцQќ8QѓMїВ K%q:žєE•‘чp8иЕkБXŒX,F"‘P [h4Х‡ojсЅ4YШўЩбхч4‡ХЫCСŒLчe*юСb#„<@ ,(Щd’sчЮqтФ КККАйlЌ]Л–пљп!77F#~$ K 9­OЃбрp88rфmmmєіітvЛ9vьызЏЧnЗ“Н(}”‹‰еDŸ5…x-Ѕбh–фќЕ”…­љfКHšЙ|ЏLWеu>ŠИЬwd\Hdjuн™Žћ4чёЂЅЪcЇеj‘$‰x<ЎT@~ЮO№ь•ШK !ф `AIЅR„B!х‡ѓФЗуSQ`i1Б’­VЋEЅR‘L&‰FЃЪ3Н$ њћћЙxё"НННгn35ъчi„-yЎ ‡УмН{ПпќFШŸ‚…BМјz|фШE•J…пяЇББ‘3gЮ RЉ”Б”џ-Яi3q*•šЖА\˜dbлщ>›ы<4з§ЭЕѓ}мЇљlbŸ&ŽЫt}šњљ“ьO>wљћkІўЩШлЩХІVз!ф `AQЉTlкД‰W^y…ёёqМ^/MMMœ>}šo~ѓ›ddd,ЈaО@ x4ђТ'™L …8{і,вггйЕk+WЎФfГ-JПтё8wяоe|||ЦŠзSЃ“Іђ8ѓм>‘H000Р№№0№@рœkDоB}˜Я}<<Э ЂgUyvОлЮw?gкпГŠЮ›q§qPЋеАчёx8wю]]]‰xћ4лиOМЧfk;UtzœyH’$‰ФCQaOвПЧџuOЛнtŸЯUШ{’§Э&фЭДПT*Хž={8pрщщщѕK Xh„'‚EЅRБ|љr>ŒлэцТ… ДЗЗѓўћяSRRТ† HKK‘yС#•JИsчќ1---шt:ЊЋЋyы­ЗXЖlFЃqAExyQ›JЅpЛнx<žЌ‰„ВРVЉT“Ђz‹Яу~—L'tЬчѕ\Ъ/Љf+іёМ~'O'>ЪЯ*@  ЃЃƒЎЎЎgк™ФЪgнvО™k_–RŸgbЎїЕМMNNЏМђЪГю–@0'„'‚Чh4ВcЧкллЄООžѓчЯSUU…Ус ККzб ѓ“Ї1ќ~}ŒžЧ>ПЌH’D4ЅЇЇ‡?ќЫ—/уѓљЈЊЊbяоНьоН›ЭЖ зQЋе’™™IyyЙ’ъ4лЂьY(ЉTŠББ1FFFˆЧу$“Щg’^<ЯЪЫт‘7ё<'ЮЉѓљИsѕTQc1ФМЧ=оФ>?ы{чi‹]<*"kКэхчTЇгaГйp8OtlС‹K<g||œЁЁ!ХuБь#‚Љ!O ‹BVVћїяgpp—ЫХшш(|№ХХХdeeQPP№в =ЩdrкХгTфХщlО0ѓЩЫr=–z…Ч…bъѕіx<\Кt‰wп}ЧCZZЏМђ oМё†’jДPE*•ТjЕВ}ћvВВВ”ЊБ ‰$ID"._ОЬЧŒлэVЂѓ’ЩфМњф=э˜>NTЬlл>Ћkћ,ц–йФЛЙЄ#Юwц{_31WQkКTТйЖ–ЩsїИЉІOъЉіЄsжtts‰Њ›Щє_і9œ˜ ;u›Gѕeъ6SчP9ђњQћ[hžЕGрDцkо˜щšЯєЬШB^2™TRkэvћ’К‚Х' b0Ф}!X’!O ‹†$IdggГuыVОљЭoђ‹_ќ‚._ОLAA’f+/ˆ_–дNПпЫхтЮ;Ъg:NЉ†™JЅˆХbЄR) ЗoпІЃЃƒT*Х† &UT›Ы‚zЖEл\ЌSѓ4smћ4 ЭGЕ}м>МШї"@oo/_|ёчЯŸgttTI‹х•WШЩЩ™ДэBЙ€ХŸ$IBЃб(žžбh”h4J"‘˜їc=ЭЫŒЙД›юЙxм”мD"ЁЬMгѕA.2ЕВя|>ПsaІTЮX,Ции}}}шѕz222”jъO‚l“азз‡пя'‹ЁзыЩЭЭХl6Яš‚§$їїLл=ŽШЛ)Р3ѕaІ*ЋOг7y_бhT‰І•Ÿп—e>ЬY-XЪ!O  ЮФъZ­–ЂЂ"Ž9Bss3_}ѕ|ійgЌ\Й’={іžžўТџИžљ6ё|5 Ы–-#77NG<ЧуёаггƒзыUІdgg“••…ЭfC­V?”цЇRЉPЋеD"бh­VKzzњЄJ›Щd’h4J("‰ЧPЋе ŒF#:nVЅX,F("F•ШЃбˆС`˜д~bлD"1Љ]"‘@ЅRa00™LшtКiОВˆ  ‡УФb1’ЩЄ"hЕZДZ-zНН^?Љя‰D‚H$B0TЂЉRЉ”"8Шэt:yѕ"31 ) qўќyЮœ9У§ћїБZ­lкД‰ƒRVV†VЋ})ЂegB’$єz=&“‰T*E$™єЬ< Гљ–ЭЗр2Дй„I’H$ŒŒŒажж6ЩГPžЯdСФh4bЕZБZ­Ъ3-GO=о\Ш™њє(ІŠ‰ЁPˆццf>њш#RЉNЇ“Э›7S[[ћдžlзЎ]ЃББŸЯGVVЄММFѓTеbG€šI{вЪљbЖуЯ—ož|Ÿ$“IхЛ-‘H еj1›ЭJ[`*Bа,E„'‚E%•Ja4YЕjGŽahhˆЫ—/гииШџќЯџPZZŠЩdRвї^FСРl6ѓя|G)*‰DИwяџћПџЫ—_~‰Чуa||œЏОњŠW_}•ЪЪJt:~ПŸЯG"‘P‡ДД4:::И}ћ6dggsша!Ѕтh*•" вггCcc#нннј|>RЉ‹…ВВ2VЌXA~~>fГyкыЧщяяЇЅЅ…ііvмn7БXŒЬЬL*++ЉЌЌ$//яЁЪФ‰DПпOss3---єїї …аыѕS]]MII 6›эЁcЦb1†‡‡ihh ЃЃƒЁЁ!Тс0*• ГйŒУс ''‡ттb–-[†VЋUu~ПŸŽŽщяяg||œd2‰С`РnЗ“••EQQ%%%dgg+Ч|бюХЉ‹•h4Jgg'GхЮ;ФуqJJJјб~DMM ‹eбŸЩХОя/€@ @  ‹ЭЋ82WAчqЂIgJЁ|’Т’є Њqss3џќЯџLПвF­V+bМХbQМ=kjjXЕj3ІGOЉ•BћЈ>Я6>ВзввТбЃG(++#--­[З>Жа35=§кЕk|ёХ RVVЦкЕk)))yф~:Ъu1˜щZЭwŠo*•"уѓљ”ˆ<ƒС0эwŠ@ Гип3Сt!O  Юt?к5 ЛwяІННссašššИ|љ2џїџ‡С` ЊЊъЅ|c.GГX­VВВВШЬЬ$™Lтt:ЂППЧ<0fVЂЫNž<Щœ2Їќ IDATбЃGAЏзSXXШЎ]Л8~ќ8ѕѕѕƒAж­[ЧЋЏОŠйl&™Lrџў}Юœ9У‰'шъъТчѓ)екдj5vЛЊЊ*іюнЫыЏПЎ:€‹UЧУз_­CдRЉЇгЩЖmл8rфЛvэRкŽбааРБcЧИrх }}}EpАZ­TVVВwя^<ШђхЫ•ЖЃЃЃмКu‹ŸџќчмО}ЧЃˆ-zНЛнЮЦљ‹Пј ђѓѓQЉT455ёЩ'Ÿpќјqњћћ ƒJ4•ьE({9Ољц›ќр?xж—|IL&щээхч?џ9зЏ_ЧчѓQQQСЁC‡иБcfГyБЛИ$$ “ЩЄЄГƒAEШ[žD(|Vб%Щd’H$ТШШˆ2'СфшAЕZZ­ццЭ›œ;wŽъъjіьйУЖmлШЬЬœдП'Бx^†Ј!H===ŠШ744Фз_ЭБcЧhhh@ЅRQTTDnnЎв_љ\'‰/:|ѕеWœ8q‚ЁЁ!222Ј­­eџў§8Ž—RTŸ ЃбЈrкz$yЄ5[tйдљ`ЁDІЇѕž”Sм‰ƒЇгIeeЅтKцѓљRЂˆЧЧЧ ƒA>ŒХb™”f;5§sjJБ|ЬGyЈЭдvъ9ыѕzJJJиП?ййй”––Nыг6]zѓLщШ*•ŠUЋV^ўјcZZZPЉTlиАН{їВjеЊ9™ѓПL‹`9"OіЅєљ|ŒЯ(–Ь5uuЖtв™ў.Ь4џЮwЃйlІЊЊŠпўэпVц0ЏзЋЄэззз+s @QQыж­SЂ='І ЫѓпииЁPˆD"ЁМ +ŽЪїхtbZ(Тяї366ІxvjЕZЌV+‡Н^Џxi:VЎ\ @zzњC….фs‘­ фMљЅ‡ь™hБX0 ŠџhnnЎ"єІЇЇcЕZЇНžБXŒ@ €пяg||œx<ЎX#X­Vl6лЄJšrњћћ $“IЌV+Јеj†‡‡•Яѕz=‡CёQ:^ §м.єёфБ’эєz=6› ЋеЊќ] ž„'‚%ќZNЄЉЉ‰žž.^МHNNЅЅЅЌ^НњЁHОx<Ю§ћїЙxё"‹…h4Jkk+ЇOŸЦхrDађђrВГГбыѕ`ђј *++љёLMM jЕšX,†ЭfЃППŸЫ—/S__O4EЃбАzѕj~їw—-[Ж IЗnнт_џѕ_Й{ї.ууумПŸSЇNБiг&ДZ-wюмстХ‹Šб}AAЏПў:oМёЫ–-#™Lвббзы%##ƒT*E2™ЄББ‘ЋWЏвнн$IdeeБgЯОѕ­o‘““УшшЈRаЃГГ“ЖЖ6N:ХЦбh4JФјрT*Щd’ёёq%-VЃб`ЗлйЙs'eeeг.Юdь­ЗоbяоНŠ9?<o\..— ŸЯ‡$I іяпЯюнЛ)))!•JQXXЈЩSтюмЙƒЧу!+…-рАјЪ+Џ№ж[oБ}ћvхXХХХJъŸ’.уЦ >LFFzН^ём“#…oоМЩ№№АЁ–J=Јzž™™ЩњѕыљэпўmVЎ\Љ.HЅRИнn>ћь3Юœ9CSScccŠh&ћЃ•””№‡ј‡lмИ‘p8LKK яОћ.№ и…нnW^fФуqnоМЩ‰'јњыЏёzННT’ {|я{пу[пњ6›mкbЋWЏž$F"\.яОћ.—/_žd(b^yy9ЏНіћїяЧщt*/%ОўњkЎ]ЛF  ММœЦЦF\.эээ„B!Х’!;;›яџћдееQXX8IL^ьт5Яšh4Ъшш(ФуqЅ˜‘\ьI ˜^ІЭ‚ХCy@ X2Ш?zдj5љљљ|їЛпЅЃЃƒѓчЯгббС'Ÿ|ТЪ•+йЕkзK”JЅ' *ŸЩЉeщщщ,[ЖŒpј№aђђђІ§ё(ЇŒUWW+€с7A^Џ—@ @<WRжŠŠŠ”q–сХХХЪgёxœссa‚С ЁPˆББ1Хф_ЏзSVVІЄЃN<žZ­VŽЧХяї(zџїнnWЖsЛн ФКЁЁ!ќ~?’$Q\\ЬкЕkihh ‘HаооN__ŸўЙ’Ž–ŸŸЯњѕыйН{7лЖmCЏз“ŸŸЏTрэъъbtt”sчЮqхЪЅТfzz:+VЌ`зЎ]ькЕы…JЏ F9sц ЇNЂ­­ ЋеЪ–-[јц7ПIII‰X”LC*•Т`0••…УсРэvуѕzёx<„B!L&гbwqA$iNО‰Вˆ&I+WЎЄММœжжV|>ƒƒƒ RRR‚^ЏЧяїsётE~іГŸбккJ,#''‡хЫ—“––Цшш(єііrіьYЂб(oП§6›6mBЏзуѕzyїнwљт‹/шььTЌdћd2ЉD;*О†ђ?r?'zаЙнnОўњk._ОŒЯчCЇгБjе*rss•Jс}}} L&I&“ЪЙЫ)Жг]8ІЕЕ•ŸўєЇ\Кt‰‘‘ЅЂЊ^ЏŸ”мииЈМ0‘Х8yџ2нннx<‰zНI’ˆD"Фb18yђ$yyydddМ4…k$IR"Bнn7ёxœЌЌЌц%@ xЙBž@ щЬИeŒF#+VЌрЭ7пФыѕrуЦ %B/''‡ъъjЬfѓKсiЃеjYБbЪЂLŽТ+((PRЅ 1 гюCтфДвЉLŒ’›И§ФХЁJЅR"иEˆK&“Jћ‰зTЏз?Д@šК8–ї1ёисp˜ССAМ^ЏВьяЄеjбh4J‘•JEyy9oМёЁPˆ††мnЗb Чбh4twwуrЙшыы#==•+W’™™ЩіэлхЬ™3єєє(>Z^ЏI’ащt“RмОїНя=4.Я#S}вBЁ­­­ќњзПІООžT*Eee%пљЮwЈЊЊšd/˜ŒNЇ#==ЂЂ"кккcxx˜ёёёiчЈGyп=ЏQz;ЇЅЅ‘žžŽбhT^$‰ёx\уяпПO8ІЊЊŠКК:6mк„Щd"pѓцM>ћь3nоМЩѕызЉЈЈ   ЇгЩэлЗЙxё"ФуqrssYП~=хххX­VЂб(CCCttt`ЗлQЉT“ц!xј9ёћ§ 022ЂDы[пЂВВН^O0dxx—ЫЅGn;лuсіэл\Кt ЧЃи Ќ_ПžММg•J…JЅ’3Зf[АХb1&&&шюю&ЃеjБйlђЕ'eУЖZ­8–—— ƒмПŸ‰‰ ŒF#Зoпfbb‚X,Fii)ќтП ЂЂЃб(пу&&&ЈЎЎЦ`0ШХ+ЁT*e‹bщ>&-DHїЂђђrš››хxyвv…Оƒєѕѕ1==Эђђ2еее;vŒ'NрrЙHЇг  зых{›”…|ыж­‡УAGG~ј!‡ХХE91P4eaaййY"‘ШssЋ%yy^‚оТТ$ 4 Зл§в_wрхCy@ xaЌххЙККš'Nрѓљ№zНј|>ўєЇ?QUU…Ус ИИXоіeяЃбhhkk{(Ж]6kЕ†YЩЕЫэvcЗлбыѕФуqbБїюнcыж­ВХ†”€d~~@vO5›Э˜Эfмn7FЃ‘ХХERЉ}}}мН{WŽo'Й‡IСл‹‹‹бh4”””рp8фьАnЗ›SЇNqєшбœ –™L†X,F8&“ЩP]]VЋ%•Ja08rфЬЯЯ3;;K0ФчѓёйgŸqсТМ^/ ‘L&I&“ЈT*hjjbqq1gПžžўѕ_џ•ББ1™˜˜`aaЇгљ„=ЙёX^^fvv–7n№џяџ•E={і№ілoЫ1Д+#ЙkЖДД`2™˜››czzšЩЩI9ћщJЌ–­vГБжx€’F‰FЃ$“I”J%:N‡JЅ"№ћ§,--Ёбh˜žžцТ… \НzU.'3==-—?==пяЇЂЂBNќPVVЦСƒщььЬЉSqq1 РO‹#вНmЅњ[­VЊЊЊ(--Хыѕјт‹/шююЦщtтt:)--ЅВВГйМ&—M)Ё‡зы•лЈООž={іамм,?зL&>ŸызЏ377ЧќќМк Пэ={їю•“C9Nъъъp:Œ“JЅфЬцљ}ї<Ќм %yYЯcСOVчRт“ххeŠŠŠ(//Љюч‚ЧуeŠЅ,xѕBž@ ^8љ/Sй/љJЅ’={ірїћфЧфцЭ›ќљЯЦуё№њыЏчXхНЌЌfеOї*ЙЇжееaЗл™šš"ѓѕз_уt:хиQ.\рмЙsј§~Ьf3;wюФхrЁзыЉЏЏЇЌЌŒўў~вщ4—.]BЋе’NЇioogyy™ўў~ќ~?ЅЅЅќќч?GЋевииHmm-нннЄгiЦЦЦЁЃЃƒђђrйњEЪ^yїю]4 UUUшt:ЦЧЧ™˜˜ ЂЂЇгIII хххР_ВVіїїуѕzsЮ{ffЏзK&“ЁЖЖЋеŠгщЄЉЉ‰x@€NЇзdНYШRђYБ§Whќ8з…BЁ`zzЏзЫттЂl]gЕZбh4Фb19Ілђђ2бh”оо^њћћ –'YŒЦуqйЅ~qqQЖ№ГX,x<žїйьф…Ю+џ|———qЛн>|˜h4ЪЙsчtuuq§њuйпl6ГeЫо{я=іяплэ~d{ЄRЉœЈ‹‹Х’cљ'Хћ”7’ЩЄ,ЦЉеЙS:‹ХBiiЉ|ОJЅЕZ#,ОШыњyнCГЯ1уѓљ ЄЄ„ъъъЧ`##„<@ lx$ Ё>ј@vМpс‡ЪЪJZ[[Ÿы џ‹тiЮoЕЩкђђ2‡ƒcЧŽ1::ЪW_}E"‘```€џё?ў}є‘шняї“JЅАйllпОŸ§ьgиэvt:ЛwяцЭ7пdrr’h4Ъммп}їЗoпЦщt’Щd˜››ЃММœ_ќтrŸЕЕЕqј№az{{Йwя@€џѓў§§§ДЕЕaБX˜ŸŸчСƒєїїF9qт‰DН^Я7јЇњ'2™ ѕѕѕx<йYЊУјјИ,H ?zzzјшЃИrх ѕѕѕTVVbЗлх ѕНННєѕѕ‹Х№x<Ваљ2Й™оПŸoОљ†3gЮ?YРž:uŠC‡­oQ№0Z­–ššЊЊЊ! 1::ЪќќСяїsётEЊЊЊ(++“'m/ƒ{mvЬ,јЩ%(;ћсZЩЖ"“тOхOшЄП5 Лwя&ЃRЉИ|љ2С`Џз+ЛЎЅR)YАиЛw/яОћ.лЖmCЏзч$H&“ќјуLLL‡ ‡УLLL<$w&…BЫхтшбЃФуq>§єS™ššb~~žююn4 Щd’X,Цђђ2TUUЩж%‰DŸЯЧфф$}}} ДZ­ќП@ @[['Nœ`яоН вщ4ѓѓѓєїї322‚Щd’E„T*Хќќ<бhTvЫ{ћэЗх ј›щк ќ№Уœ={–`0ˆХbсдЉS>|XЖцyе€ЕЂVЋБлэ477sћіmМ^/уууLNNb4eЋсќ{гfПW­F&“! …X^^&™LЪ1ЪnнКХ™3g№zНЈT*JJJ8|ј0NЇSЮšэvЛqЛнLMMЁP(())саЁCTWWЫт•SКЮ%зWЅRIcc#зЎ]“3Щž={VNJb2™HЇгЬЭЭ1<элЗSZZŠЯчc~~žH$B"‘ “Щ VЋБйl”——SQQУс_ЎЋЊЊјйЯ~FGGС`ХХEbБ˜SЪh4RRRBUUХХХЙ`mF‘~šдNLL№љчŸsуЦ bБМџўћьоНЛнўЂЋИщмЗlйBUUwюм! бееХО}ћ0›Эыт’}§К7ЌЗЛк5АИИШ­[З”'ЮЉTŠT*…BЁР`0рёxшььфЭ7пЄЎЎNОІеj5ЅЅЅМљц›ј§~њћћРяїs§њuй26‹ …˜žž–U455Q\\,Ль/--ёрСќ~?ЇOŸFЏзЃVЋY^^&NЃRЉxћэЗe‹х•Ќ–%їЬќ‘;wюрvЛsю @€‘‘љо!- HqъVJlВММŒнnЇННУ‡sщв%fffшээ•3еJж™LF^и9rфuuuђsa-жГOjaЛ‘юq{пU(r–пЩЩIt: 466Ъ!ЏRlиH$Тќќ<6› Ѓб([јЏu|х_1Оы IDATKй‹ …B^pж !ф `У’џЂЄT*1›Эќьg?“E&ЏзЫчŸЮЖmлАйlВ{дfYВЯЕВВ’ЪЪЪUЗyFЃ‘ііvкллЛ NGYYeeeЋnЗв„WЉTЪwьиБІ§———Q*• ill\гБ%ёаjЕ>rŸќ}%ЋŸŠŠŠ5э—_чЭ†8vv–ЏОњŠoП§ЏзKii)фƒ>РщtЪзLЁL–›хzZжrюѕѕѕ477sэк5&''e7[—Ы%gn~–mИ–јgыь")>ќd™’m-ІVЋ1X,9zє(ћїяЇЎЎюЁњY,:Рз_MWW333LMMхlЇP(PЋе 9ы­RЉФсp№Ћ_§ ›ЭЦ?ќ@OO В+ЌGЏЎЎŽввRєz=‘HD>щgvНЄ„‘H„`0ШнЛwsъЂVЋБZ­lнК•уЧЫё[ѓл&[д]^^–­’џіoџГйЬЅK—'‹ЩnГ’ћvCC'OžффЩ“И\ЎœуKeчЛХgЧ(”ާ8жBЯТЕvНXЫјghhˆ`0ˆгщЄЃЃƒŠŠŠ—bсO№јФуq†††јілoйН{ЗlI­бhžшЩdˆD"ŒŒŒpсТЪЪЪhooBž`]Bž@ 6eeeœ:uŠ@ РЇŸ~Ъммœl•WTT$ВаН 6вфNP˜P(ФЕkзјз§W|>FЃ‘}ћіёСP\\ќR%ђx˜ЭfЖnнJ}}=###xН^йНVЪ6КЌ4љ|^‰–——бh4TTT№о{яЩжqRНдj5:ЃбˆнnЧуёP^^Žлэ–C"BЃбАoп>jjjdзШ™™‰№“ЕВС`РbБрrЙфИg’uЫхтэЗпІННссaЦЧЧYXX Nc2™(//ЇЙЙ™ккZ9nfKK §з-gЉmii‘лБЊЊŠѓoў $ ЪТ tў‹…ВВ2ЉЈЈ ЈЈHnƒŽŽŠŠŠX\\ФхrQ^^žsНI™Иѓ›пpј№aFFF№љ|D"”J%VЋ•ђђr9ž_vЛY­VŽ?Nmm-‰D‚ЦЦFŠ‹‹sњОЌЌŒ7оxƒІІ&vяоЭf{ЂјЋ›‰T*ХэлЗeWюттb<([Ї ^= &“‰ЉЉ)О§і[š››9rф918WCК'ƒAzzzИpсgЮœAЋеђлпў›ЭіЮD№*#„<@ lXVŠWЄбhhooчѕз_gtt”ѓчЯsяо=Оўњk\.GŽЩq“и гZc)­ЧqžePєчЕџfмїYВ’›оjл%“IюмЙУчŸNoo/ЉTŠнЛwѓЦoАcЧйнpЅВЋ#Y;566вввТхЫ—‰FЃtuuбжж&[|фѓ4Сџзв_ы#Orы”„МŸџќч,--=ДНJЅB­VЫZѕz=І uі}лd2Щюќ­­­Вћ;ќХMЪрj4бjЕ9сьvЛ,кE"’ЩЄ\_ЃбHQQZ­Vvїmnn–ƒДZ-VЋUЎЃбhЄЅЅ…ъъj‰ЩdRЎKvіYГйŒVЋ•-уT*lйВ…ЅЅ%t:.—KN‚"эЏбhфЌл DЃQ–––*;?ЬBQQGeяоНd2ŒF#‡#GЄ“„<)\Эf“…ЦЭШjѕ–к&•JсѕzЙuы@‹ХBCCэээТяEКN'{їюхтХ‹|ћэЗВЗoп>vюмIuu5№№§SW@€{їюqѕъUКККшыыcff†?ќЊЊ*a'Xw„'‚MCі„Oz ›œœфСƒLOOsётEЪЪЪЈЌЌ”­+Г‘нЅž/Гp•яК<<<ЬЙsч8wю‘H„ъъjŽ?Юp:ЋNŒ_ЦіyжHэWQQСж­[ЉЉЉсЮ;єєєpџў}jkk)))‘Х•gнІORо“о ]7JЅ‹ХBQQбЊI#жrь|KBFƒЭfУnЗ§ВЫ,TЎ^ЏЧ`0рrЙ Šвя’ћЊфb.ХіЫ`6›БX,е9Л.…мZ=ќЛtмBБJГлБаy:?N'gНЭ>ЏьђЅzкцQ§О‘ЎџB§Ов"F8цж­[ ‡illdїюн”••еЏRHŽ}ћібммЬїпЯ•+WтоН{ьйГ‡={і`ЕZ …Bђ~ёxœёёqЮŸ?ЯЭ›7Й~§:wюмa||œD"Ayy9ћїяЇЊЊJ^лHзŽрхBy@ и”ЈT*jjj8qт===|ћэЗŒqіьYЊЋЋ)//Чh4Ъ$ё2%x™xмёМААРХ‹љўћяСd2qј№a^{э5ъыыкўe8з›ЭF[[ЛwяІЗЗЏзЫ;wdЗЯBVg№dm§Ђћ'_LЩжЪZ,…ѓХЉЧнЏPW*+пнt-‚нjЌЖ§J1)ЅёQЈОљ‚`!qpЅzф Щ/z =)ЋY + –––№ћ§œ?žщщiйZЖГГSNP"о ^=ЄkEre?|ј0ƒAІІІ˜ššтж­[\Йr…††‰„œЌfjjŠяОћŽD"СЅK—№љ|В›ПЫх’­љDxСѓ@ѕїџїџЂ+!С“ бh0›ЭИнnnпОЭЬЬ С`p8L[[NЇ3gе]МАч’§Um›—хмѓ'ЄйкL&CWWџы§/.\И€BЁ ЁЁџјџ#ЛwяЦl6ЫЩF Й ЅR‰Z­&•JqётEbБЉT ЗлMss3Z­Vоіi…МlžФEїIя+“еЪZqјYˆ…йЂи“”ЛжcчЗЫZкМа5]Ј~…Ъ]Љ/6т=яYЗНBЁ`aaююnў№‡? …(//ч­Зотнwп}(љГ:Ў`s!%ЩЙџ>###В(ЧуоН{ Шюш333мН{WЮJ.ЙеЋеjЊЋЋљня~ЧЎ]ЛфxЈbLmN6KП‰Ÿ@ и”H–&“‰={і№СаииH4хЮ;ќу?ў#cccЄRЉ]U`]YЭ'•J155Хў№nоМI"‘ ВВ’пўіЗьмЙѓ!ї=С““-8клл9pрFЃ‘‰‰ nоМЩН{їфmГї{•иЌ1雇L&УШШ/^dzzšt:ЭŽ;иН{7VЋѕEWOАюЛЕЕЕtvv Ч’JЅdOњ;•J=dБыp8иО};XзЄFA6BШСІ"пв@ЉTRTTФЩ“'9rфeeeƒAОџў{Оћю;9S@№*ѓЫяїѓЇ?§‰sчЮсѓљ())сшбЃМѕж[8N9kцZ\kGЋеR^^ЮЉSЇ(--%NгппЯ… r,9ž…•Z!wЪGЙXцoЗЗЬQПB<ЎсЃЖ}жѕ{књфoГZ§6‚u]ўиyкёєДmЏP(№ћ§мКu‹7nАДДDEEћіэЃЕЕUdцф\3ƒ]ЛvБsчЮ‚ *ƒSЅRQ[[ЫЁC‡№xЧХѓQх …BЭfуаЁCьоНЛнŽЯчуЦмЙs‡x<.oћ,Ѓчйo#ЈхЧv{žD$Zыі+YJЎ5ўмГџž4ЩЃЪ|ві[KЌхЛ|ž6ФCvНRЉ}}}tuu199‰NЇЃГГ“нЛwуёxV<Оре  +•JъыыйЕkuuu]žнngыж­ьнЛNЗщcO 6BШСІ%ћEIЇгБoп>Nœ8Ass3щtšK—.qњєiz{{eлѕДД^4вd8™L200Рз_ЭЅK—H$455ёкkЏqша!ДZ­˜pЌ#ЫЫЫшt:ъъъ8yђ$ ,--144ФщгЇёљ|ЄRЉоіŠЇ&<Šч‡o%ыФlІЇЇЙrх wюм!NS^^ЮЩ“'iii‘cу‰1/ШЖx•B!ьлЗFѓXжОuuuькЕ‹ЦЦЦѕЌЎ@№BШСKCII GŽснwпХd2БИИШЗп~ЫщгЇёћ§9л 1O№2333У?ўШŸўє'"‘fГ™'N№њыЏуrЙDVкч„FЃсЕз^cяоНИнnццц8}њ4зЏ_gvv6'бТГr5нh…d5§И‰V+яI’sЌД§JэїИЧ\6/$8=mџ>MћкoН\ЇŸ„ЅЅ%.]КФ•+W˜œœФjЕrј№a:DqqБXШ_*•ŠКК:>ŒЫхZГћЕVЋeїюнrвЈьcыШZ+‚— Ѓбˆйl&011Сьь,ЉT “Щ$ЧЧ–H‚—ьЩi<чЫ/Пф“O>сюнЛЈT*о}ї]~ѕЋ_БmлЖœ>тXŒF#ЫЫЫ‰FЃ,..RRRBII :NЋ‚—šѕ8ѓџŽХbєєє№ћпџžОО>T*лЗoчяўюяhiiAЏзЫлŠыLBЁ@Ѓб T*™œœdll,'ќСJћ477ѓЋ_§ŠЮЮЮœLШb|mn6Kџ !O ›šќЎZ­Цh4bБXx№р~ПŸP(D*•ЂЎЎЇгљXЎСf"Nsэк5>њш#.]КФвв[ЖlсwПћиэіœэХuА>dЗЋRЉФl6ГДД„зыellŒ……4 ‡ƒттт б'+Г’5•hГЕё41їжВяZП{Rђ“€Hп% ŸХХEдj5ЕЕЕ‰Ьb‚— …BA*•ТыѕђћпџžяОћŽ™™***јеЏ~Х;яМƒЧуЩЩRЛY^V_ŒF#zНžd2I?ѓѓѓ„Уaдj5nЗ‡УQаЪHА6D[=Oгn+Йњ>јsйЂb:ftt”3gЮ№Х_(--х7орƒ> ЖЖVYФ8HКпЊеjЬf3НННј|>"‘HС}u:ќіЗПeчЮЩeˆ1Жљй,}(„<@ М4dO$L&EEELMM111A РчѓQ]]ЧуЩ‰g’НЏ@АYШžЬ.// 9{і,џђ/џТ№№06›ƒђўУ ККNЗbYbќ?{ВлTЅRaБX0›Эј|>|>~П_^`ЈЊЊBЏз ЋŽGP(9‡hЇЕѓ4эЖQк<џОчѕz9ў<_|ёFŽ?ЮћяПOggЇАvфАкјUЉT˜Эffggy№р333­€эv;GхУ?ЄЂЂ"gLАљй,§(„<@ МTdЛMИнn2™ ггг  IЅRджжR^^ŽFЃЩйwГ<М‚|bБwяохПџїџЮэлЗIЅRttt№7ѓ7=zTЖ@]-рПрЩЩžь­д–Z­ЋеŠЧуЁЇЇ‡@ РЬЬ ~П‹ХBeeeNЏG•'ћь3юоН‹RЉЄЁЁПћЛПуиБcЏйТU\c‚lL&“œ0mjj*ч.—‹№лпўЇг)Ќё^B6K_ !O /љ–,ƒNG*•ЂЗЗ—ХХE"‘&“‰ъъjЌVkС}‚Ž$ђŒѓѕз_ѓЩ'Ÿ0>>ŽгщфНїоуwоЁЁЁсЁЩЌpM\_ђяAљэЋгщpЙ\ЬЭЭ111A(bvvV^|Айl•Г,ЂЏ./ъž‘o…—NЇ™žžцЛяОуГЯ>ЃЗЗ—ЅЅ%š››љЭo~У›oО™cqП–њŠkI=4 ЫЫЫLOOгппO2™~rНmkkуч?џ9‡ЪIœ&ЦаЫУfщK!ф рЅFЅRa41 LMMсѕz ƒd2ѕѕѕЈTЊБC и,D"Юœ9УgŸ}Ц7P*•;vŒ_ўђ—ьоНЃб(o›§rКWPСкy”Р‘ŸРbБPTT„BЁ`vvVО/-..ЪџЗZ­(•Ъ‚"^~ЙСЫŽ”vllŒѓчЯѓљчŸsїю]вщ4---МѓЮ;ќњзПІЊЊ ­V+яѓЈ2Х5$ШGЉTЂгщXXX`hhˆщщiœN'GŽсПј+ŠxТe{sГYњMy@ xщ(dcБXащtмППпO("•JбккњPлЭђМzфgkьщщсјgЮœ!‹Q]]ЭПџїџžC‡ЩV_šЌŠёў|ШЗАs8И\.t:“““ЬЯЯуѓљ,--aЕZ1 9V…Ъ|ZQVrс]ыЖЋБcщqъїЂЪЫF*ћI'ѓ›с|зѓž‘?žЅcХb1†††8{і,_|ё7oоDЁPаввТЛяОЫЏ§kZZZDr‹gЬF\єY/Ё,{Мщѕzвщ4~ПŸ;wюАММЬж­[9uъЧŽЫIѕ"BV[еЎ+ХMЬОOd fЉTŠD"‘#РI"]$!F‰D"9щ;i?IЌK&“Фуё‡Ќю’ЩdŽH'еc5иеоџЦЧЧsЌёVk/щџ’а—-іIЂžVЋ•EНьпГE>“Щ$‹x&“ ГйŒбhФl6c2™фя$ёOЏзЫ‚`ЖѕŸJЅзУK†bYЬV@№œyžќ$7nмрџяџЭ?џѓ?FБZ­иl6єzНќТ'x6ф[ЌžŽT*Хќќ<@ЛнЮ_§е_ё7ѓ7ьпП_ФˆкЄdOcБ###œ>}šoОљ†žžІЇЇI&“˜L&Z[[йЙs'[ЗnЅКК‡УбhDЇгЩ“Ечеїыј`3R(n— —ьиd‰D‚h4Ъммєііr§њu™EЁP`Гйhooчѕз_чЕз^cыж­9Щ •тј4jУеОƒПˆd’х[2™”?’HF ‡У„B!ццц˜evv–ЙЙ9фЯтт" Фуё7XI˜“ъ‘-eџ,є)dA—џџ|KЛек&лr/пЊ/лКOк.лк/{ћlЫРќX{йBœ$ў™L&ЌV+EEEђЛЋєЛнnЧсp`ЗлБX,Виg2™rCЩѕW:їќ~}•й,э „<@ пЇ-НЫЫGЅRa4љѕЏЭбЃGЉЈЈ .69в„)ЛЯуё8гггмЙs‡ .Ш1šТс0 ХOйИѕz=‡ƒ’’JJJ№x<cЕZхЩЌNЇ+ш‚ ? +виЩЎCіT*•kЫљћ*Š‚Ч~‡е'N…і•О{ЫЋеЪ{VѕЫяЫќ‰ё‹ЎпГnПB}.§. ’+хТТ@Џз‹зыХяї377G$‘­ЏŠŠŠhnnfпО}>|˜ŽŽ\.zНўЁћмf™todВЧсԘЅЅ%тё8‘H„`0ˆЯчcjj*чg   ‡Y\\”ХЉќиtвXЩŽg4eыВЂЂ",‹ќЗХbСbБШnЅfГГйœ#ЪI–f’0•-дe[мeђЯu­‹a+ k…>љЂŸ$аIПgЛG"хі“~JVŠљ–‹йnХщtZ>‡B1њ$З\‹Х‚нnЇДД”’’Yр“?‹Х‚бhDЋе|ЗBо‹Gy@ xюМшGtќT*E `pph4њТыѕВЩd8wюќуЂЖЖ–П§лПЅЅЅ%'У‹рQБ”wbЛох­„4љinn–'И‚—ƒќ1АДДФТТ^Џ—ЁЁ!КККИsчxН^P(ђ$XВАШwЃZ) z!f%af­ѕ_kykя›Й~+эПZ_Жі“2JB…$VDЃQЂб(ёx…BЩdЂЄЄ„КК:vьиA{{;MMMTTT`ЗлW6Ыd{#Гк8’NФуqfgg ј§~ІЇЇёљ|xН^‚С ь+Y•I}*ХЇS*•Јеj9aƒЭf“ХЙЂЂ"l6VЋUю$‘.ћ^&-FВЦЫv]IЈ[Ћ0ї<кx5Ё/;й‡єЩЗюЫОv$+>Iд›››c~~^јцчч™ŸŸ—ћFњ$‘OЇгхФп+**’]s‹‹‹eaЯэvSZZŠгщ”У8h4š‚чšЭfНF7KАы\v IDATНEВ @ МВh4JKKqЙ\BФ{†Єгiпџ= …‚ЂЂ"іьйУž={0/Кz›†GMв …œ=яq'у‚K~?Њеj6›КК:ZZZ```€ЁЁ!†‡‡ёљ|ЬЯЯГИИH ]еВЫуcу№*]Џљ.€в"„С`РхraЕZёx~ПŸ@ @0dnnN‡2™ jЕN‡ЩdТnЗЫ‚œнn—Х:›Э†нnЯюЄ8nRЩz8;6\!‹А|ыСЩj‚Нє3[PЬп~­ч’-Œg[їI‚^8–?R?ЮЭЭ …r>’•Ÿ”DФчѓЩЯ Iр+**Тщtтt:qЙ\”——Ы.ЙnЗЗлЭfУfГЩ–{љзjЁsзяГCy@ xхШ‘вjЕ/ИF/вЫЊД /НДЊT*йBhЕх‚\жjЗQ&3‚ѕAъ_ЅR‰С` ЉЉ‰њњz>ЬЬЬ CCC 2>>Юдд333„B!‰DŽe‡'‚чMі3@В выѕX­V\.ЅЅЅВ€WWWGYY‹%ЧuїU=Ÿ%Ћ‰K’Ыs<—cкЭЭЭсїћcdd„ббQ&&&˜˜˜  FхgЛд‹ƒС€ХbСfГЩ–\вЧэvS\\ŒгщФfГЩ В-щžіќ6ВШЛ–gїZDМьО”ФЭlьvћCћdЧъЫviƒВuЅ$дйš/‰Ш‚Ўпяgii N‡ХbЁЄЄ„ђђrЊЊЊЈЎЎІІІF^ЗZ­˜L&єzНмП+‰›­Џ6#BШС+‰x‰XЄ—ДЅЅЅœЬr+Йѕ Vf­cTŒх—›B§ЋRЉdзД††Nœ8!Ч­ …BxН^цччх€ъБXŒT*ѕj/xU‰lсMКїыѕzL&ƒЛнŽЫхТхrЩn}+ :тоЖ2kАђ-Є$ovv–ЁЁ!юпПO__§§§ 0;;K8–]0ЅђU*‹ЋеŠлэІООžЊЊ*YаЉЌЌФхrЩBЮJБеВыђ,Dк0FЗЯzћB.­вЊС` ЈЈˆ’’хmЄX‡ёxœЙЙ9ІІІ—?УУУLLL хФ$БXŒщщinнК…RЉDЇгaГйЈЌЌЄЁЁ––кллЉЏЏЧэvcБXфФK…тшeџНњqГ!„<@ ЯŒьИ^™L…B!ЧШ/jСњ Yыщt:ЌV+хххrЬ%)ЈМАШМ(Вc˜IјГ“ˆЩќГ'лm6™L f``€ўў~z{{eЁFВТ’’Rh4Ьf3‡ƒŠŠ *++ЉЌЌЄЊЊŠЪЪJй­вl6чФЎ“žѓТ•у"]k’а'YV–••Б}ћv’Щ$ёxœљљy9™Щјј8ЃЃЃŒ366Цєє4 Фb1ќ~?ѓѓѓмПŸ~јAv•ЏЋЋЃЙЙ™––š››)..Цl6Џ˜tI№јˆ–@№LШ^q]ZZzШ$ћХ~#ЛУ› iт,‰цТ…]А™"ѓг‘oй–H$dЫмббQ†‡‡bttŸЯ'ЧИ‹Хbd2y@Ъ|]]]MEEeeeуrЙrтйIЎ“вs=џјkщOёмvЌЕ-ѓпЛ$O ЕZVЋЭ=œ\CЪš;;;+ЛуNNN2>>ЮффЄ<Іfggёћ§ŒгппЯхЫ—qЛнTTTP[[KCCѕѕѕВѕІ”…КаBгjЩ€їМ_V„'р™"ЙяdЛжЪp&жaэ$ишˆБљt,//ЫVTгггŒ144Фаа###LLLШ qвщДЇАІІЗлЧу‘-яJKKхЄ6› ƒС#ђ:Жрщx”8ѕЌюсkйЇT*хŒчfГЗл gž‡УЬЮЮЪ‚^іGЪf<77Чƒ@ЏзчzѕѕѕджжЪёѕ&“ FѓШ н‚П „<@ Хj/вџ$wО•\kWкoЅџ `у!2SЎ?…žЙ’х{4•cœ pћіmюоНЫрр 333Фуёœ,С‡ƒВВ2jkkijjЂЖЖ–ЊЊ*JKK)**BЏз?–˜Thльx‰+m#(LЁјТOл~kщ‡G Ев‚ЌфvэёxиВe‹œL#011!‹wCCCŒ333УТТ‚,0_ЙrEџАuыVЖmлFKK‹,*›ЭfйRяqъљ*"„<@ dЅеа•&щtZђЄ,kbE_ xўˆ‰@АЙxдbY&“!уїћЙuы—.]тъеЋєєєрїћх§T*fГ™’’Z[[йБcлЗoЇЅЅEю &…„qY?$сsii‰ЙЙ9"‘—ЫѕШФ!ыХj™Ѕя%qЏЈЈˆКК:Ž9B4•c2оН{—ююnюмЙУјј8ЁPHЮš{ѓцMЬf3UUUlпО§ћїГwя^jkkБZ­=9ФЂя_Bž@ ‚5“NЇхРхЋ‰{йBžфќQd=йь@ xYXZZТчѓбллЫѕызЙvэCCCј§~Тс0‰D…BУс ЎЎŽ-[ЖАmл6ЖlйBEE…ьТЈгщаh4"бШcvv–ј‡рмЙsЄгiJKKљЯџљ?гииˆVЋ}бе[•ьqЄзыёx<8ккк8uъ>ŸЁЁ!zzzИsч===LOOЧbjjŠѓчЯS]]M{{;ьмЙ“КККœЬжbсї/!O СšHЇг ЧБлэ”––Ъ1M€œŸйYkU*еЊЋЩщtšH$B<ЧjЕЎG ЌŽ.xžˆ1іь(tэІгiуж­[twwгллЫШШ333„УaT*‡ƒЊЊ*šššhmmЅООžŠŠ JJJp8r‚ inЕиcЯЂOХИx|‰УУУtuu‘NЇЉЎЎ&ЫЎЖOЪГю‹емЉyёV­Vc4Бйl”””P[[ЫЮ;ёљ| гппO__ƒƒƒrŒНййYFGGщъъЂЁЁmлЖбооNss3Н^ }Bž@ ‚Ч`~~ž+WЎАММL[[ЭЭЭВыGіЫ”$ф)•Ъ‚nЕЫЫЫЄR)й§bffЃбШаh4/ФD ‚чЩJFЩd’`0Шшш(НННtwwsћіm†††ƒЄгiЌV+­­­rМЛццfšššЈЊЊТnЗc0фЬЄ+яQйфзw-IжВнJѕ\-f_>OzŒ'йџY" a‰D‚h4J:–Г gГж…šЧэЫ•ъДZљk‰— RЉ0  Š‹‹illdчЮLNNђрСњњњшээehhˆЩЩI333єѕѕбее%Л…ЗЗЗгииHyyyŽ•оЋŠђ@ <ЩВЮnЗѓрСЎ_ПЮХ‹yэЕзиЕk•••В5]Ёyв m&“!‘H0??ЯчЃЛЛ›K—.‘NЇйПП,њНЪЋЌСг Ў`cБ’`”џНДРЕААРФФннн\О|™kзЎqџў}’Щ$:NЖˆonnfзЎ]ьиБƒЦЦFмnЗlБД/ђўNЇIЇгr=Є0™LцЁйHџ—Ѕї‰Bя R’ќOvй …bХ§ђыЇRЉrоiљ{iП|Єw)щWvyвџ Gњ;Лœќ:цџ]–TЗќ№'Якu-хЅп5 vЛ›ЭFKK ‡bbb‚žžnмИС;w!000Р§ћїЙrх mmmtvvrрРъыыqЙ\FдjѕCЧxžƒBШ@АfjjjиКu+зЎ]угO?хЬ™3>|˜SЇNqрРЊЋЋs^zЅTщe=ѓрС._ОЬз_ЭЕkзˆХbМѓЮ;ькЕ ƒС b рЅІаs.311СљѓчљђЫ/Й~§:^Џ—ЅЅ%”J%‹…ццf8РёуЧйН{7‡у™…ЃXЩeђqЖ_i;ЩТ,ЩdPЉTX,Ьf3БXŒХХE2™ :‹Х‚С`@ЁPJЅˆFЃ„УaRЉzНО`v]Iи“ Ѓб(‰D‚T*%‡љ2ЎЦ‡),//Ќ_QQЩd’љљy‰*•Jv]Щ"LЊC8&‰ШqуЬf3†……љ|ЅѓБX,kjKщ\3™ Щd’H$B$‘ЧˆNЇУl6c2™VьŸЇ+ГџJТЄ4ў%Зp‡УA{{;ЇNb``€Ы—/sюм9.]КD `jjŠЩЩI.\ИРџјGоzы-Nœ8СЖmлp:ѕХZƒ7Лш'„<@ kF­VГsчN9 йьь,п~ћ-===ьиБƒ#GŽАwя^Тс0щtZ~A …B pхЪ._ОLoo/~ПŸh4ЪЎ]ЛиП?ѕѕѕ/јь@ x>HЯЧd2Щрр .\рЛяОуњѕыЬЮЮ‰DPЋеTTTАcЧ:ФŽ;Ј­­ХщtцИЮnt+іH$ТЕkзјoџэП‹Хp8ьлЗжжVЮŸ?ЯРРёxœттbvэкХЉSЇАZ­tuuqўќyюнЛЧТТХХХьлЗ#GŽАuыжkЌx<Ю№№0Ÿ~њ)ЃЃЃIЅR(•JЌV+еееьиБƒ}ћібмм,ЗY4хЦќзџњ_‰D"иl6<ШЮ;Йtщїюн# ЂгщЈЋЋујёу:tЛнž#"ЅгiњћћЙxё"—/_fbb…BAqq1;wюЄББ‘ўў~Юœ9УТТлЖmу§їпчѕз__S;* Ђб(wяохњѕымО}›‰‰ yЌ8NщььdяоН8йЊpЃ’-Ј™ЭfЖlйBUUЧŽЃЗЗ— .pљђeюпПЯќќ<}}}xН^.\ИРСƒyэЕзшшшРbБЌšˆэeCy@ ж„єТ+Н_ИpююnˆЧуЬЮЮЪ“‘ссaHЅR ѓ?џчџdxx˜ссaМ^/ ЄгiЬf3ькЕ ГйМщWH@ ШfЅeёxœЉЉ)._ОЬљѓчЙyѓ&<`vvЃбHkk+лЗogЯž=ДЗЗSUU%Лntq&ŸЅЅ%‚С ]]]DЃQL&SSSœ;wŽОО>BЁщtƒС@__ccc8NЎ_П./&“I ƒƒƒВЈЖeЫљЩd’ббQ>њш#цччYZZ’]f%д›7oвееEoo/џюп§;ъъъащtЄгiцццИyѓ&‹‹‹FІЇЇЙtщ===ЬЮЮЧQЉTєєєаппBЁрРИ\.р'KМююn>ўјcЮž=Ышш(сp…BС`роН{x<"‘їюн#‹ЁбhƒkjC)1иŸџќgОљцnнК…пя'‘HШ–JЅЂЛЛ›ЋWЏђюЛяrђфIъъъrЯРJБ•J%zНN‡еjЅЄЄ„ЦЦFіяп/їннЛw ƒtwwуѓљИ{ї.:tˆжжж‚z/#ЋG@ lxl6[ЖlЁЃЃƒžžRЉЩd’щщiƒƒƒРO+№™L†ББ1ўпџћƒAтёxŽXзддФоН{ЉЋЋ{ЅVR@№ъ§lKЅRњњњИpс?ўј#їюнcvv­VKSS;vь ЃЃƒ;vаддDqqqСФQ№Звd•—/ZJйьcБбh”xттХ‹DЃQЪЪЪшььФхr‘H$ЅЏЏsчЮ‡1˜L&***6ьћеJcZЋетrЙp:дддажжЦЮ;ЙvэзЏ_g``€ёёqІІІ```€#GŽаббAMM fГXй…vЃ\+OŠђ@ ЌiХЗІІ†§ћїѓеW_1==M*•WЕГYXX`aa!ч;…BбhфаЁClлЖ ЛнОЁ&!@ <-љтI,cllŒЋWЏђЭ7пpіьYќ~?jЕЧCcc#‡цФ‰477ЫБиВHЯЩЭќМ”Ќяккк8~ќ8БXŒ~јЎЎ.цччСbБpрРіьйƒС`ръеЋœ;wŽP(Фјј8Зoпцƒ>@ЇгЁP(PЋе”——ѓЫ_ў’ššJJJАX,( Тс0gЯžeqq‘{їю111СйГg9~ќ8‡CЎ—”#NЃбhЈЋЋуѕз_ЧbБpяо=.^МHoo/БXŒююnІІІhmm%™L200РщгЇхХЬђђrйXЇг1>>ЮЕkзИzѕъCйhE&“! ђч?џ™‹/тїћihhрЭ7пфƒ> ДД”x<Юѕызљф“OјђЫ/ЙqуuuuджжRVVЖiЌд YАZ­VŠŠŠhhh`џў§œ={–~ј›7o2::Ърр мПŸссa9~ž$фJхmцk&!ф @ x,ЄUцэлЗГkз.Юœ9# ykEЋеRYYЩoМAMMЭІs`% =Я–––шыћџьYp[WzчиW‚юИˆZИˆiJд.ЫВ,wлэ%ёtкЩLwf’ЉЪKfц%yJх!yЫ[в•LRїLьnѕt+mЗфEЖМhБ’ЂHŠЄИo pb'€yPн%J–DR:П*•$№тмяœ{‰ћсОЅ_ўђ—|єбGєііwŸ‡Лvэтх—_цдЉSьйГGnцАоHЛЭ&PЄ‹~J}MЃбаииШŸ§йŸёЪ+Џ‡бщtИнnQ(ьмЙ“џјЧМђЪ+$“IъъъРяїуїћqЙ\DЃQДZ-ƒЪЪJоzы-†††X‘ 077Чђђ2№ѕєЄЬеЈеjъъъј“?љо~ћm4 эээЈеj†††ˆFЃИ\.М^/ЫЫЫrДнииЁPˆ‚‚Ž;Ц_ќХ_PRR‚VЋХуё№х—_тvЛ&‰Ќ{=#‘ˆœŠьѓљаjЕlлЖЃGЪбv&“‰;wвккЪ… ƒєєєаллKkk+ƒсQ.х†‘.§VЇгQRRТјC8Рз_Э‡~(зМrх ƒƒƒмМy“џјЧ8p€ьььД]†7ляЬУ"„<@ FЃЁ  €SЇNбннM Xwz€Эfух—_fчЮrњУVwЊ@ HEŠюђx<\Мx‘їпŸііv\.Z­–ТТBN:ХЫ/ПL}}=ЙЙЙшt: НјЌ‘‘Aee%555(•J VЋu…?P[[Kyy9fГ™H$BAAzНЅRI<'Ўс<WЎ\спўэпdaaH$"ЏуђђВьЋ$“IТсАьЗЌЭf3лЖmЃЉЉ FƒBЁРnЗcЗлбh4D""‘ˆ\‡/255E4%™L’——Gcc#%%%r‡\ЋеЪЮ;ЉЏЏgzzњЁ„МX,Цтт"NЇSюФ{эк5ІІІ0™LВи‹Х˜ŸŸ' ЪQ|GЎ/Ие‘„m•JEQQпћоїЈ­­хаЁCќіЗПЅГГ“…….^МШјј8ЏПў:ЏНі555ЯФќSBž@ ‚u#EX,іэлЧЮ;YXXИ'Ѕv-L&•••МђЪ+иэv9Oy@ иъЄFб…B!юмЙУчŸЮG}$w_ЭЮЮІББ‘'NаккJEE™™™Јеъg*jHbЕ(ЉеjБX,deewчЉбhфШ)…BЭfУl6ЫЕ5\/uLI”ыюю–Mј§~ЌV+ХХХфххЁбhєіі2==-зФ“ЎU:ћВВВШЮЮ–ЯЇбhаjЕiS?%1OЕZ-&“IŽPЉT ŒFу#]зD"!G&“INЇsEЪЌдиУbБШ%L6[§сGЙПSз\]ЕZ-6› “ЩDvv6ЅЅЅœ?ž‹/288H?ЇOŸfnnŽSЇNбккJvvі=iъ[ЕЩšђ@ Ќ‹еŽ NЇЃММœжжVFFF№zНt љљљДДДАgЯŒFу“4Y ‚ЇŽ$тнМy“O>љ„ГgЯвее…JЅЂЊЊŠpтФ іэлGnnЎЕ%НїYGЁP RЉdсNz-uюZ­vEƒЕD7…BA0dppЋWЏ2;;‹Щdbџў§9r‡УZ­fxx˜`0ˆлэNkгъюЉцžыВкF •J…Хb‘ЛУњ§~ІЇЇхИ*•Šp8ŒЧуСхrЩ‚œ4юƒКЙfdd0??BЁРсpаддДЂЦ_Њёx“ЩDCCУ Aq+’Nl“„8Н^УсРfГ‘——GII‰\oqhhˆP(„зыХчѓqьи1ьvЛ|6“РљА!O С#ЁT*egљъеЋŒюћNЧіэл9|ј0999РѓёЅE ЯЉbПњеЏ8{і,CCCшѕzЖoпЮЋЏОЪЋЏОJCCzН^~<ЛЯУ'=Џh4ЪттЂœ`2™hnnцеW_ЅААPю–ЋбhVDd­‡еЭEвНOЇгQQQХbСуёрvЛЙvэп~ћ-eeehЕZfffИtщЗoп&?дќ4 VЋ•ЪЪJ\.БXŒввR^}ѕUšššфHAЉ;p8f~~NG~~>zН~гмcыќЉбtp7KdяоНЫ)йзЏ_ЧхrёЩ'ŸрёxH$9rDŽвмЪ!O Я5ЋCќŸХ”–ЧEКТУJЅ’њњzvяоЭэлЗКяyyyьйГ‡––БО@ иђЌHТс0CCCќУ?ќŸ}іNЇГйЬЮ;љГ?ћ3^|ёEŠŠŠVЄD>ЏЯУещЉŠZ­FЇгЩuаBЁЃЃЃмЙs‡`0Шшш(|№§§§,//ЃVЋzЭяgŸЩdЂББ‘ђђr\.sss\ИpЧC}}=zНžёёq:;;[їИZ­–‚‚>Lww7NЇ“лЗoѓёЧcБXф†ЁPЧУШШэээ8Ž;&7ФиЊЌu­V‹ЋJЅ’ввRьv;еееќ§пџ=чЯŸg||œK—.сrЙˆЧуМєвKЎkЋ•xBž@ ‚яDff&/М№]]]ŒŽŽЎйєBЅRбддФО}ћШЮЮ~ЪV @№dYZZЂГГ“ПџћПчЋЏОТэv“››ЫСƒљу?ўc9Rк8мJТСwauZЌTЫэQЦIOТl6ГcЧіьйƒгщ$pцЬ.]К„Щd"‹‘››‹Щd’#Бв [‰DbЭоеч•Ž…Лy‡ƒЗп~›ЅЅ%кккtvvвпп/ЇЛ*•J №x<+вkс^Б*u}Єš?јС˜˜˜р“O>Сщtђлпў–ЋWЏbБXP*•rнХХE‚С пћоїhjjzшuоЪ$“Iєz=;vьрЯџќЯ)))сЬ™3tww388ШOњSТс0ЏОњ*%%%[VрBž@ ‚‡&5zQЅRБkз.Иvэгггi/..–›cHѕIї"ЂB`k‡щььф—Пќ%.\`vv–ТТB^|ёEоzы-Z[[eСхyCЁP гщАйlшt:ВВВфІвjЕZ222ШЪЪB­Vc0V4jъаY­VŒF#fГY~FjЕZvэкХ;яМƒRЉфЮ;,..Ъ5ъvяоMcc#Ÿў9С`d2)7‘ь“š'h4ВВВфшОдh/ЉЛЎtŒNЇ“E:Н^Я‹/ОH<ЇЈЈˆЎЎ.fggШЪЪЂККš’’†‡‡Й|љ2~ПЅR)л •+БZ­Фуqй>iДZ-eeeМћюЛ”””p§њu†‡‡YXXРчѓ‘L&хёL&………TTTШ5єžebudžBЁР`0PUUХoМ^ЏчзПў5mmmмО}›3gЮ бhxэЕзШЩЩй’bž№Ђ@№\ГкБy–'E2™$??ŸњњzjjjpЙ\ї8E†ццfіьйC~~ўY*Су'300РgŸ}ЦЧŒЫх"//Oё:Dff&№ьзУK7?Љ9ж~є#Ђб(466ЎЈSVUUХЉSЇиБcJЅ’ЦЦFyЭT*6›з^{ццft:еееrm8Љ‘жБcЧШЪЪЂЏЏЙЙ9 ЙЙЙдееQ\\Lff&;vь ™LbЗлБлэЈT*Y$ћб~D8Цl6ГgЯžM" ѕѕѕМћюЛD"ВВВЈЌЌ\бiЗЈЈˆ“'ORVVFoЃFЮъ IDATo/333dggуp8PЉTМїо{rtžС`Рl6wгs<ˆХb!‘HMNNŽ,ќJ /іьйCNNѕѕѕ 333C("‘H VЋбыѕ˜Эfl6;vь ЈЈш ^эЭХъ9Rdžдэ8 244Фѕызeбє•W^‘й­„"ЙхG@ liЖњЃчYwТi=z{{љХ/~Сп§нп хДЕZMNNљ—ЩkЏНFqq1 жO [щљ7;;Ы|РћяПЯ7аыѕœ8q‚Ÿќф'Ё@ |7ќ~?\Мx‘ЅЅ%---477Ы @|Ц>-6rН%qћіэTTTШ>ЄдьBzІЏЎУїЄlЯј•ЄŠАЅЅЅьнЛ—ііv&''ЄЃЃƒуЧ !O ‚т~‚Q2™$‹БДДФЬЬ ŒŒŒ066ЦддnЗŸЯG0$ ‹Х„ѕ„Уa‡бббЧšЊАКЮГJjз<“ЩDvv6EEE”””рp8ЈЌЌЄЌЌ ЋеКЂkž„ј)—дЯеййYnнКХии‰D‚ккZšššфІNЯгgo:сhѕk#.=Е{Бk=ЧI›˜ѓМыБуЛжў{œуm$kйzъt:ЊЋЋ9tшŸў9@€›7oтrЙ(++{šц>2BШС3є@_^^ЦыѕвззGWWннн 055…Яч#ГММ|OzэГ.=)Єѕ[^^&оЗ8єfe3иЗ:­Vкб7™Lиl6*++йЕkuuuьмЙ“ввв‡JейЊŽК@ l$ёxЇгIww7ёxœЬЬLъъъЈЊЊŸЋС&'™LbЗлЉЏЏЇВВ’;wю088ШмммF›Жn„'‚g†еHЩdŸЯЧФФ===tttаллЫфф$GЎ_"‰$FЃ›Э&Ї,J)RБъеcЇђ$г"ю7ў§Ž{аыzv`зк9ўЎі­Їhє§xиЙm6ћжѓўххebБ˜œъэїћ ,,,0;;ЫддccctttPXXHUUЛwяІЁЁЪЪJl6&э5_4рс‘>;Ус0.—‹‰‰ ЈЈЈЃёž7vГюIDŒ?ŽБ5Zюqћ8жF<уŒС` ААššЦЧЧ™ŸŸ' nДYыFy@ иД<Њh’H$‡УŒŽŽвееEGG7oоЄЏЏЧC<GЏз“••Eee%йййdeeaЕZБZ­˜L&95BђRэйш(­ЧЩъкыщаЖRзJд\?Љы&E3F""‘‹‹‹ЬЯЯГААРќќУэvЏB%ёNЃб зыБX,фффPPP€нnЧl6?3їt*RSБљљy"‘HZqx3#„<@ l V &ЁPˆ;wюpюм9ўѕ_џ•ББ1”J%ЅЅЅ455ёъЋЏRSSГТ1‚{ЛЈm›ЉўШг5ЧиЉ‚рЃŒћЌЇPKѓSЋе”––’››KEEљљљ|ёХ бппЧуaaaџђ_ў ЛwяЦfГнѓ;"‚Е1 dee‘™™ЩммгггxН^bБ˜эМеёzНœ={–sчЮБААЌ]KMЁPрp8ШЬЬЄЌЌlE4мвв§§§|ёХœ;wŽўў~y­$Ÿ,ЃбhАйlTWWsьи1N:ХЖmлШШШЃЇ.]КФщгЇ\aЋ$фIбщ%%%М№Т >|˜ІІ&ВВВ€ЛЕ {zzј—љyŒcЧŽёGєG”––Ъui§~?WЎ\сЇ?§)NЇ€ВВ2~јУRUU%з›ЧуєїїѓѓŸџœЏОњŠd2Imm-яОћ.ЕЕЕ+„Сююnўх_ў…Ы—/ЫvF(--eЧŽ †{ЎУэлЗyџ§їљц›oю™ГBЁЙPSSУ8~ќ8VЋUžЯђђ2sssМїо{tuuЩЕQx&“ ›ЭFii)ЛwяfЯž=ьмЙЛнО"›e+нпщ|ЩŸ …BŒЩ‚ђVš—ђ@АщI—ž144Фo~ѓўЯџљ?ŒŒŒ T*йЙs''OžфдЉS”——ЫЧn–ђЕТіŸІ}[-u`5›с:ІВ™ьYm‹^ЏЇЊЊŠЂЂ"JKK9sц mmmЬЬЬpњєi"‘?љЩO8pр‹eESКё@pЃбHNN999 111Ых" о“zЙU‰Чу,..2;;ЛBШ[Ћљ…йl& ­x–$“Iњћћyџ§їyџ§ї™žžюn8™L&L&JЅ’@ @ РщtтrЙшшшРхrёŸџѓІББQ^г@ Рќќ<ГГГђЙW—KI&“єєєpхЪбjЕ‚NЇЃЄЄ„#GŽ бhюёьv;лЖm[бmнщtђяџўяœ={VКђђђ8zє( ММ•JХјј8.\рЪ•+Œуїћљ№УЩЩЩ!##ƒ]Лvнc›JЅ"33“cЧŽaГй№ћ§ŒŒŒаййI$СяїгееХз_MKK FƒнnЇЌЌLі)=SSSј§~єz=.— ЇгI4•Я qЙ\LMMсp8€Л‘{.— Зл м ЩЯЯ_! ŽŽвззЧмммŠ9$“IМ^/—.]тШ‘#dffЎЈе']ƒдЕ6™LДДДP^^N<Чщtвбб!зхУ?ЄЎЎГйМbМдqЬf3uuulпО•J…зыejjŠўў~|>^Џ—Ы—/ГАА@4хѕз_П'ew+ЃЇЇ‡p8LQQ‘iЙBž@ Ж …‚H$Тфф$|№Ÿ}іcccFъъъxу7hnn&//яžк,›бщx’й†ЭОN“'1ПЭ”&НRЄDMM …NЧйГg™››уђхЫrQю—_~9э—3@ м%ЕKm~~>ЕЕŘL&"‘ˆ\П­ККZЎ›ѓЙ№(шѕzЖmлЦџёЃзыя‰^вjЕфччЫ>X"‘ ­­kзЎ166F"‘ ##ƒз_з_КК:9bЌЎЎŽввRЌV+ПљЭo˜™™Схrqщв%ЊЋЋЉЈЈŸOЉ ВГГyћэЗЉЊЊ"‰аггУ?ўу?вллK(bnnŽббQЂбЈмœФfГсp8аh4Фb1|>гггИнnrrrH$LOO333мMЃN&“Фуqfgg™œœ”3)мn7SSS,--w#5 БлэРнћ%‹qчЮфH8ЋеJ4% шььdllŒММŸp8, r555„УaœN'nЗ­VKyy9бh”™™цччcyyЕZ-GюE"ЙсGaa!6›M>ŸзыЅЗЗ—ББ1’Щ$†††fgg#0>>.‹РЉЭйвЁеjхvƒ`0ШхЫ—щююЦуёH$фЙпя”mдееaЗл‰ЧуƒAъъъаыѕœ>}šююn|>эээ\П~]ЎƒИU}ЩnПпOoo/п~ћ-ЁP›ЭЦюнЛЩЭЭн` зЯжIСs‡ф€$ мn7—.]тч?џ9}}}(•JvэкХЉSЇxщЅ—ШЮЮОЇлзfhlБšЕьyкКѓ=K_:žж\6ѓНЖšd2IFF555МѓЮ;ДЖЖ’““ƒЫхтѓЯ?чПј###„Ус6U 6%ЉѕФЬf3лЖmуаЁCdff2==ЭѕызЙvэšœ’™КЗеI$ƒA&''™˜˜џŒ311Стт"БX ј.Љwюм‘ыыI555rTWЊ№gБXиБc rzюммуууrt\:›Ђб(‘H„p8L$YБоƒaEгИ‰VTTDnn.jЕšX,Цьь,$ ќ~?SSSЬЭЭa2™hjjbзЎ]dffтѕz% Fхš~’P˜——GAAС 1ntt”;wюрvЛQЉTX,Ž?Ю /М@nnЎ\‹АЃЃƒщщщvOM$Фb1"‘‘H„P(D<—ч-ЅыtК{ќ’t5ЇSЃLЅ{њ7о`Яž=dff’H$№љ|rнТ­жнVоg‰D‚‘‘Ў]ЛЦ­[ЗP(lпОІІІьfGDф `г …hkkуƒ> ЃЃ…B!7Ж8yђ$fГYv,VЇЌІ:б›Ehycѕ4й,)Оп•­i˜jѓ“LwN&“шѕzЖoпЮ;яМC8цыЏПЦщtђџяџЅИИ“ЩDyyљІќн‚Э‚JЅЂ  €з^{Ы—/уѕzщщщсьйГДДДPTTД"ХvЋ‡рŸџљŸбh4rDžДzєшQъыыхш.ŸЯЧЬЬŒм,Тh4ВcЧ222фїЎ:­V+хххhЕZТс0сp˜ЙЙ9ЙО^*RкЊлэfrr’ХХEО§і[Й+ЋRЉЄ  €ККК„:Žœœ‡MчѕzхHЛд.Ф999455сvЛfbb‚ЩЩIМ^/fГЇг)зНS(”••‘““ƒVЋ•гqoнК%wFещtаккŠнngxx˜ССA‰7oоd||\Nз^‹x<ЮТТSSSРнfmmmЬЯЯЃP(АX,ДДД}пz{їѓ•ЪЪЪиЕkзЏ_gvv–d2ЩШШ‡X,vЯИ›™еѓ ƒ\Мx‘/ПќЧƒС`рШ‘#джжІэМYй:W@ Я%Щd’ŽŽЮž=ЫЕkзP(lлЖяџћŸ`0И%#ђ$тё8_}ѕŸ|ђ §§§ђѕ8~ќ8ХХХmоC!„<@ lZ’Щ$ccc|ђЩ'\Мx‘ЅЅ%ВГГyљх—хюДkE mцHГеWэ$­лГвьb­ыœюѕЭ<ЯЧ†uПшOН^O]]^Џ—љљyЎ]ЛЦэлЗљјуБлэ;v N'Пo3Џ›@ < V>ЋT*ЌV+ЇNb||œХХEœN'gЮœ!??Ÿ“'ORZZšж?йjHi‰Rњl*jЕzEzчУn=жГFR-ИлЗoЃT*I$Фуq–——БлэьлЗЌhЄg™бhЄКК“ЩФќќ<С`щщi&''d~~ЕZMNNхххdff’““ƒRЉdaaссaBЁ.—‹@ €RЉФd2сp8АX,rmч‘‘z{{ёzН(•JЌVЋм0BjbЗлq:ј|>њњњХсpЄ­AШуŽАММL,#;;›ккZ^zщ%Жmл&wр]я§Жњеh4ВL&Y^^о”чkљБЋяХ@ @OOПќх/щшш ‹QUUХ;яМУіэляЙBž@ 6%R-–ЏОњŠЏПўšББ1, /М№‡ІДДFГnЇqЋ:Ю‚‡#ЕFтfqФZ;чыў]-pgggгииШќќ<ЬЬЬ№эЗпRTT„Ус`ЧŽOЬ@ xPЋеьоН›'N0;;ЫЅK—шыыу7Пљ zНžcЧŽQ\\МтѓwЋ|ŽІкЉгщ(++ујёуrйдњj r—BЁ@Ћеb0PЋеD"–——YXX›0Є[ƒp8ŒЯч“QЉTшѕzY”JEЉTЂгщ(//G­VуѕzqЛн,//F™ŸŸgaaX,†NЇЛg#ЋЊЊ ‹Х"лчёxшээe``ŸЯ‡ЩdЂААœœєz=yyyFЙ+ьтт"nЗ[юˆ+№ђ IDAT5бъу---qѓцM&&&…B+"‰:ŽММ< q:rs;wюАwяо5…%FCQQ„B!ЙЎођђ2>ŸййYЂб(zНўОїй§6њ$\Š„T(шѕњ-гй~Е/ЕДДФэлЗљрƒјњыЏ™ЅИȘЃGrтФ ьvћ–‹œBž@ 6Щd’p8Ьшш(Пћняшээ ЂЂ‚яџћlлЖ ƒСА.aсQŽ'Ѕі]lJW0нqы9пуœ[Кš„ћїC:ЯƒЮїДэ[Џј•Nx|bЄRЉЄЈЈˆ0<<Ь_|Сфф$/^ЄЊЊ ‡У‘Ж`Ж@ <Є‹јI&“dffrєшQМ^/333мО}›‹/ЂеjQ*•œ8q‚ммм-)цIFjjjјџу`4я‰3 r1•J…йl&''ƒС@  3<<ŒЯчУnЗЫuжRŸs^Џ—ёёqЂбЈ\г5++ Ћеz=*•Šььlоzы-ВВВфЪ•+rїжѓчЯc6›)..fїюн+о+‰’999ŒŽŽВДДФммэээєїїуѓљАйl”••a6›QЋеaГй˜™™ЁЛЛ›ььlЙKЌFЃЁ  €ТТB ёxœЙЙ9Ў\ЙТќќ<ёx\ŽpŸžž&ЂT*™žžFЋеЪvгзз‡лэІММ<эu0›Э=z”ккZfggЙxё"ј§~Ў_ПŽRЉЄЊЊŠццfL&г#љRdЉ”6 Шe7T*еІКфƒAz{{љ№УљХ/~СммйййьпПŸ7оxƒЪЪЪЭђЖ BШСІ`ЕрБААРgŸ}Цѕыз™ŸŸЇЂЂ‚ƒrшаЁ;ГOЂРFА•R\ячьldм§R–SПp=юѓ­GL]ƒјЈщEBъ—I­V‹УсрэЗпfdd„žžюмЙУ'Ÿ|Т‘#Gp8ђЭ~o Сг"uГ%™LRVVЦ+ЏМ‚пяЧщtтѕzљт‹/ƒМѕж[ †ДЅ?6ыgыjѕz=999˜LІДЉŸRЩ)хИЂЂ‚ЖЖ6fgg ttt011БЂГЋ4wЉц]WW—\‡-##ƒТТB ю9—Z­ЦfГёц›oВkз.ЦЧЧ)//чoџіoёљ|8N._ОЬЖmлЈЉЉYQ›O­VcЗл)))ЁЗЗ—ЅЅ%|>—/_fll ŸЯGee%‡CN1-**"''‡‘‘:;;БZ­ЬЯЯw#ќ*++ЩЪЪBЃб …˜ššтЦrГp8LWWљ—)л‹Хђœцццdpp‡У‘іО„МЗоz‹p8Lss3§з-Ї№оМy“пќц78 У}#ЭвŸH$ЂЇЇ‡щщiрюІ_EEЙЙЙ›:*/]VC?ПњеЏxџ§їqЙ\шt:іяпЯлoПЭў§ћЗlGњФk@ ž z`њ§~КЛЛљџяџ177‡йlІООžC‡­p‚ŸGVзЕK‡$b=Щњ{[бщЌNЇЃККZNѓљ|tuuqцЬцччХѕ‚uPVVЦoМСŸўщŸRZZJ<ЇННњЇт_џѕ_хІ[йYЏЂзыiii‘KЁD"†‡‡љеЏ~E[[>ŸO>> qэк5Ю;G{{Лќzuu5uuuиlЖ5m‘DПЂЂ"§єS|>rW_ЇгЩѕызЙqу sј№aаjЕk6ZжPЏзSVVЦK/НФэлЗ ƒј|>nпОЭљѓчљ§пџ}9НYЊсчp8ШЪЪ’;ф.--ЩЉвљљљЪч)(( ЈЈNG0$‹ЩᇋEn0‘H$p:мКu‹ЅЅ%‰”••сp8юТТс0SSS ‡™™™сж­[Инnrssя;gFCvv6ЄГГЇгI4ellŒ/Пќ’ввR233гŽ щююцмЙsFќ~?SSStwws§њu9/''‡'N№Т /Н)ыхІк‹ХpЙ\|ѓЭ7œ9s†7nрrЙШЪЪтРМћюЛьнЛїžtэЭ4Ÿѕ „<@ \.ќ1ЭЭЭdddШбzJЅ‡УAvv6jЕZцYШГлэђјйййbБXƒђБZ­›ЭFyy9Z­–@ —ЉФЧВВ2Nž<Щ‘#Gюђќ~?Мїо{LOOГИИШРР}}}ђк§PЋе444АsчNњћћхNК/^dЯž=”””ЄmœБДДФЗп~ЫФФJЅ’@ РммNЇ“@ {їюх?§ЇџDeeeкІ#EКuY\\dhhˆЫ—/ѓлпў–ііv‚С ьлЗwоy‡§ћїcГйфпЛЭќћv?„'‚MC2™djjŠ›7oвггƒJЅbлЖmьйГ‡ВВВ-[ЧbНHЮD<gff†‰‰ ЙcXъЯсn‘gƒС@FFVЋ‹ХВЂ‹мУ8&OЊЮ`2™$ фзL&zН~Em…BСтт"mmm\Кt €ЪЪJіюнK}}§wŠ|šкƒjцmДØ.ђcѕПЭf3 Щ]љОљц)))‘ ™ `%Љ>ŠRЉЄЎЎ­VKFFjЕš[ЗnqчЮцчч™ššb~~žŸŸС`H+шmфѓCJ)еjЕhЕZЙV\:в=Ї †ццfдj5ƒЯ?џœ™™–––f``@ŽjгjЕфччSTTDKK яМѓЕЕŘЭfyl•J…FЃ‘эбh4+Ђљѕz=еее477311A8&rѓцMnоМIQQ‘\Ђ%™LRRRBAA‹Пп/ŸGŠОKР222ф†sssђ9- ………ЁбhpЛнŒŒŒ099)7;ЉЉЉсх—_цФ‰їЌ]  ЌЌŒoОљПпO8fvv–ŽŽjkkхM[) Tšs*ХХХ466вннзы%™L288ШЭ›7ЉЉЉaЧŽђѕаjЕrzю№№0УУУђЕ–жЗ  €ттbіюнЫ+ЏМТбЃGбjЕыn,і$Iї= 3??Я­[ЗјьГЯјф“OшююFЋеRZZЪБcЧxѓЭ79rфШ–NЇMEy@ иp$‡*sыж-кккXXX@ЇгбввBUU&“‰D"Б!ЮУ§Ђ˜ž‘H„ЋWЏђо{яЩЕZRQ*•ђpYY :tˆТТТ'ъ ЌeЗщgЫЫЫ p§њuќ~?Z­–}ћіБcЧŽЮБ$фнМy“гЇOАoп>ŠŠŠиН{їoз{ПЫѕ~’u SЙ_Члеч—КГЅ#‘HPZZJ]]mmmмКu‹ŽŽ:;;йЕk‡у‰и/ЯЋ7Зoп.?ЋџщŸў‰ЋWЏтvЛљня~GOOпџўїљНпћ=vьиХbЙ':#‘VфччЃзыБZ­иlЖ‡.ma2™иЛw/UUU:tˆK—.qћіmœN'>ŸON=-**bзЎ]ьлЗ§ћїcЕZQЋе+Jmddd››‹пяGЏзЫЭЄѓ)•J, Gexx˜X,F<GЉTвггCss3………В iГйЈЎЎІККЇг)лОkз.9ТNТ`0PRRBMMœ=wЃwюм‰ЭfCЅR133Уммƒ‚‚ŒF#Лwя^ѓљЉгщфhј`0Шмм&“‰ссa‚С zНЛнNAA …‚ќќ|ŒFуŠ[Н^OSSЬЬЬШuљЦЧЧaлЖmh4rrr(,,$Ыч—|JƒС@ff&ЙЙЙьиБƒ––ъыыхѕкшMЩЕ~bБ œ={–_§ъW\Нz•љљyдj5ЅЅЅќСќoОљ&555iДlUЩў„СsЧZХ{ЇЇЇљЛПћ;NŸ>лэІЂЂ‚џѕПўrZэFDX­цIл8sц ?§щOг y’ вЖнnЇЅЅ…?њЃ?Тсp гщžˆ]ыФƒAЮ;ЧЯ~і3ЙШ№ŸўщŸrъдЉuV”J%НННœ>}šŸ§ьgР]!янwпх{пћоšuq6щфЎGШKх‘юџНННœ9s†Ÿџќч$“I^{э5ўы§ЏМђЪ+Я”#,›еŸЇёx\N—<}њ4Ÿ~њ)CCC$“IВВВиН{7ЇNтшбЃlпО]N_мшЎЖЁPˆББ1fggY^^FЃб`ЕZЉЎЎFЅR­YŠdѕ3Gњw<'уѓљ№zН,--ЩщЌГйLff&™™™FљЉТцјј8333„B!”J%FЃ‘ъъjЬfѓŠhБ……&&&XXXE@›ЭFII YYYђ†–д\bfff…И% gЉТe2™daaЉЉ)цццфcЅNО‡ЅRЩТТгггx<йW+..&77WNыMEВcxx˜ЙЙ9Ђб(*•ŠЬЬL*++ёћ§И\.М^/pWјs8фффШ‚ЄBЁРяї3==Ых’§&Гй,7щˆFЃєѕѕЩuћRЏ—ѕЇгщфšИfГН^ZН2іkЃ…<щќ‰D—ЫE[[}є—/_frr’`0Hff&{їю•;г–––ІѕгЭeЃГ'ж‹ˆШСІ ‘HаллKoo/ГГГdffввв‚УсР`0lШЮєZЉМOZP”Rтё8ЫЫЫЈеj*++ЩЯЯG­VГММ,Їц,.. …ˆFЃдззcЕZЩЫЫ[Г†]Кšuвпщ„Јду%ЛV;ьЉщ@Љ *”J%БXLЎ}g4‰FЃВc›:VFF;wюффЩ“Рн(†еѓHз cЕщц#§<]DaКёRзIВq=з|#"яхИt?[Н>444pсТ&''щээЅЛЛ›}ћі­й=P ž7жzЮІОЎVЋБZ­дееa0ЈЈЈр‹/ОрлoПeff†ЋWЏ2;;KWW­­­ьлЗOі}6jу$™LЪ‘bЅЅЅђ3PJП”ŽЙ_ЊхъR*ЌЩd"77—x<Отљ*еќ]5žКžEEEфххЩJЅR.+’jЛ$JmЅhНд$pїк“ŸŸПтœ*•ъ южЮ3™LђИ’}jЕZОV‹ЃбHyyљŠŸKQmщ|0•JEyyЙМж€lЏNЇ#++KпVŸOЧd2сp8(..ОЧ6•J…^ЏgзЎ]В_“.Z_ђГвЭ=ѕš>-внRз`Љ†я•+WшщщСуё еjЉЋЋуаЁCœ:uŠššьvћ=й*[EЌЛBШСSgѕƒ9‘H‡ioogllŒxŸp8,зЄбыѕВcЊVЋWЄj,,,077G(BЃб™™‰нn—“DКЙЙ9bБ˜œzcЗлёzНLMM199I,“эp:єєє••мuŠsrrаыѕфччSSSмuжS‹‘HЅR‰С`РfГЩ‘>ŸИыgggЇнE_ыЎОŽO+R/№МZ”]ычЋ_ЯШШ ЂЂ‚КК:Йјuoo/cccBШ‚Аz“HŠЋ­­ХfГQTTDQQ—/_fxx˜žž&''Йsч}}}ьпПŸ;vPXXHFFЦ†z …BЎ—Ъwѕƒ$СHJ‰]Э§В!$1№AяQ(kf'Ќ>vНcJЖ?hмЕDРћ­›ДжkБžёжК^Љ?˜fJЛšp8Ьќќ<###\П~ЋWЏвййЩјј8БXL.Чr№рA>,зЈм,і?n„'‚ EJ)˜ЅННЗлбhЄДД”]Лv=ащxЉ'3}хqŽ%Н_­VS]]ЭСƒeБ)ЃT*ёx<Инn‰„,LIv( тё8^Џ—‰‰ †‡‡“ХАд:{UUUb6›хні‘‘._ОЬддьоН›У‡“‘‘м­хзллЫХ‹ёћ§аддDNNЃЃЃ|ѕеW\Лv@ маклл™•^джжrј№a4 >Ÿщщiрn-šP($‹OБXŒЖЖ6:;;  ^zщЅ]№‚С fГ™ЊЊ*ЙОMj4g2yЗљ†гщЄЛЛ›ббQQЋеиэvjjjP( бзз‡RЉdзЎ]:t“Щє@ЁnН|—{фAЉLЋОV$сƒЮЋVЋЩЩЩЁЙЙ™ііvІЇЇтіэлдззЏˆŽ‚ч•ѕFjЇFY•””-зfћф“Oшээ•ЃѓКККшььфрСƒДДДP]]-o(IiЉc>эЯтяђмzдуvtьz{$вe <ш=Уги|м/ ;‰DX\\drr’[ЗnёеW_qхЪІІІˆЧуdffRXXШ‘#Gxљх—йГgм z­’"ЯBШС† …шяяЇЗЗ—ХХEJKKйБcЙЙЙїtH{R5cжїaЙtcЎч=:FJk•R+ VЋuEгЉ;Zъ\–––јц›oјєгOikkУыѕЎHЋаjЕr-‘з_={і••E2™dtt”ѓчЯгннMNNЩd’Н{ї’‘‘BЁ гззЧoћ[fggйО};fГ™У‡3::Ъ—_~IWW—lЫђђ2tvvww­§~џџgяНzуИвќџowuЮ905I1ŠЂ(’ ЖdYВGršБ=;‹ХbЏиіvБ/d/іьеbЧ€˜фч YіHTДI1чfчœЛњЁџ9Slu3Љ$? РUЇЮ9UR=§=OРрр дj5nпОџћПџ№4GžЧуСёуЧќ]ќѓŸџŒX,Fƒh4 ПпщщiD"O$y<\О|џєOџ„ўў~>ж\.‡щщi|єбGјс‡P,љ*?\.жжж№№сCШхr\Кt §§§№љ|Л2ќЗsmwУVљˆъQЋ/ѕŽгыѕ8~ќ8<Тс0–——qчЮ|јс‡аjЕ‡"љ5AФ‹@ѕџ‘:§§§шъъТйГgёЩ'Ÿр‹/ОР§ћї‘H$№ѕз_уЦшээХХ‹qљђe РnЗsЋН'^дџгЗля§п‹:‡ЕиЎјі<эV.Š"ђљŸЧЗп~‹ййYЈеj”ЫeD"ЬЬЬ ТхrсєщгфyхJЅVVV№§їпуЩ“'Шd2АйlE__t:Ђб(ЦЧЧ166†T*…Ÿ~њ‰ 7u…ЕЭ<й\єїїуџёaГйpхЪФуqЈT*Мўњы8qт  ­­ nЗ@`ЫvЋ…*ЕZббQ^Ao||7nм@,ƒпяЧфф$’Щ$l6’Щ$џ>BЁP ППCCChooч!Е,O#Cš—hЛїY-1oГмu{Щѓœ‡ ФИџ>BЁVVV0>>Ž––– ^!AФЮ`v‡FЃсЙ№Z[[1<<Œ›7oтіэ똘˜@ @$A РЃGалл‹уЧујёушъъ‚гщм bь4r<Ћ‰§ЂоТ#Ы]<77Ч‹k=zє333X__G&“NЇCoo/†††№Ъ+Џ`hh̘Х^EьVHШ#‚  ™L†l6‹ЕЕ5LNN"ŸЯУчѓёќ1Е‘НHžЧн,1s#( xќј1žŸ wяоХ§ћї1==ѕѕuмЛwгггИwяzzzpьи1twwЃ§џЏVъt:ŸёЈџЙ DуЉхёПеgвЯйwвEs&о,..bzz=ТФФццц Q*•`ГйаннОО>œ8q‚/рJУЬŽї8 yAФ’H$0??ххe”ЫexН^ДДДьИJЈєГфЄkЄЇд^хЋaЙь˜HW*•P(xхY­V ГйЬ“`Ыd2 ЌЎЎђjЎ‹8{і,дj5d2Я%ђрС^ƒхлвАЮъў*•Jшѕzh4>ЇrЙFЃ&“‰чълi(„\.‡JЅТщгЇqтФ 477ЃX,Bиэv^С,›ЭЂT*тё8BЁ2™ O6~ђфIžŸЏRЉРnЗcuu333„МэВгы˜ТИњ§їzНМJ:ЦУ‡‹Хрp8ъV$‚ v†ДКэбЃGбее…W_}<Р?ўˆ[ЗnannсpOž<СуЧqѕъUДЗЗc``УУУ8~ќ8šššx]&ъmЦaz/6ѕ„;™LQQ*•ЫхL&055…рюнЛ‡пяGЉT‚JЅ‚еj…ЫхТРР^}ѕUœ:u ===<ђDzОŸу=LBAБяHEДp8ŒЉЉ)$“IШхr477УыѕBЁPl™ЏV{ЛэK#иЋ№Z•J…‘‘єііBƒAмН{+++H$јщЇŸ№бGСэvЃЃЃЂ("“Щ \.ј{q FГЁšЉFЃУсрЩYоМZcЋО,„Зž Ъ„КЭ>пщќГудj5їњcуQ(P(<žTh,‹( E‘чц3<№4 ХbсUyЅчл.лѓ“СЙUЎ=АлэDшт IDAThnn†еjХвв&&&АККŠцццšBоЯйА&‚и ›y0ЉT*ДЕЕЁЕЕoОљ&&&&pэк5|џ§їИ{ї.–——‰D …pїю]ќс@GGNž<‰гЇOујёушьь„ХbyЦCo+Я)‚ЈЧvRŸTУlвѕѕuLMMall ccc\МЫfГ\јГйlшщщС™3g№ц›oтјёуpЛн?kяЛZGAхrЁP E‘ч‡q8/]™јчAЅRсдЉSxы­З`2™ЩdpчЮќўїПЧ;wNЇqяо=мЛwVЋrЙœЕžVŽFЃШчѓPЉT\pЪхr<|xВЪ<џЄЋјl_& ŠЂˆT*ХНп6ЃV…Гчё^dЧ3ФъѓTSЉT T*ЁRЉxЅеx<Žd2ЩW~й˜bБ‰Ф3Чџ\Ј5‡JЅ­­­№x<˜…пяЧђђ2xq‚ ЂБHŸ=jЕ}}}hnnЦХ‹1==лЗoуЮ;˜œœФњњ:’Щ$&&&АИИˆoП§MMMшююЦБcЧаппЮЮNИ\. †ŸUQbaіГ;155…ёёqLNNr;"“Щ ŸЯЃRЉРjЕТчѓсфЩ“ХбЃGбжж›ЭF…BA‹„UGAХb‘'аžzў0#Г–'—Љ$Šт–•BїђС_K”jфљd2t:ЌV+l6JЅдj5жжж …011H$‚[ЗnmШввв‹Х‚p8Œh4ŠћїяуъеЋшщщсХ.юоН‹{їю!›ЭBЁPРfГСыѕ4 §rЙfgg199‰bБˆt:лЗoѓcЅHч\.—ѓ хrС`kkkм“KЋеr!mЗs#}]oоЭf3œN'єz=‰166ƒСŸЯќГн„ежыАЙxа+ЫѕњV} ].\.фr92™ L&сёxžёю #› bwд[фbє‹MMMшяяЧ… 0==ёёqŒcvvС`‹‹‹№ћ§˜žžЦЭ›7сёxавв‚ŽŽtvvТчѓqAЇгmъ]]нтчЧVЖJЙ\FЁP@2™„пяЧввццц033ƒљљynЏЦb1Єгi”ЫeX­Vєєє ЋЋ }}}\lіzНАX,аjЕЯ,(‡„<‚ тРШfГƒМbЉЫх‚еj…Z­оАпvrсБї;12)ЂьЕq+ •Щdp:8qтžœ>}?F8цaЙЌЂ,ЋОЫŽaЦмfSНћCъБX-њЪхr9rПњеЏЩdpэк5ЌЏЏЃP( X,BЅRЁПП.— +++x№рСЖЎaѕї›НпЫТ*{m№ъѕzиl6X,ЌЏЏУяї# !—ЫС`0ьщЙ ‚ ˆПSяџ{ЖxfГй0<<Œl6‹P(„ййYмН{wяох9єbБЏT?>>ЮЋЪ›ЭfДЗЗЃЛЛ]]]шъъТ‘#GрrЙИЗž4?эf4л…›xtѓ)№ђљŸ]]]№x<ащtќњ‚€ЁЁ!˜L&œ8qѓѓѓ(‹0›ЭшььDKK "‘Еѕx<шыылPсжэvувЅKpЙ\˜žžF"‘рŸVЋESSA€йlЦ№№0rЙ ГГ“‡јO .ŒŒŒ@ЉT"“Щ@ЋеђЊЉ•J…‡ёОёЦшььDЉTBSSЬf3ўT*ККК№лпўЇOŸцs!\.Ž=Š™™|ўљчžоƒЁЎ‡шЯ …BГй ЛнˆD"Мx yA‡і gЯXЛнŽССAќъWП‚пяЧтт"СžžЦккbБВй, …тё8&&& бh`0x­––ј|>455ЁЅЅVЋzН†МГФ~йЄЬў­T*мл.•J! beeЫЫЫXZZТввVVV‡Ч‘NЇ‘ЯчQ(P*• , œN':::xШь‘#Gx;v0ЯЮУfwПˆGA•JЩdЩdИЈФ*ІюWЌ? …НННp8(•JЫх. šЭf.тO8ЧƒС€ x‚ Руё@˜L&ŒŒŒ ЃЃ гщ`БXx[JЅЃЃЃшююцсœ‡ yРгт.\р‡jЕ&“‰ЯW.—уžƒ'NœРРРU* …nмИ`0Ш?knnЎY|хч† 0АйlўэВd‚ тр‘>ЋX(ЌBЁ€^Џ‡ХbAss3z{{qђфI„B!Ќ­­aeeKKKXXX@ €пяч‹5@JЅSSS0 00 p8Алэp8№x_Еј&нЏоwвЖЋя‹Z?ZЄmHлIЅRx№р>њш#477Ухrqo;– <:::№ц›oЂЏЏяs˜ТАwzНЗкo+ЄЋ№2™ ЅR‰џћ%‚ лБKA€^Џ‡^Џ‡зыХрр ŠХ"2™ Ђб(жжжxxхтт"/zХ<ЕrЙђљ<Я&Š"фr9”J%їіw:<хјўŒF#4 ј”J%й&Aиƒэe‚Є ŸеЖPuС‰rЙŒRЉ„RЉФEЛ|>l6‹t:L&ƒT*…H$‚P(„p8ЬџƒСgТc™`ЇP( RЉ RЉ`Гй гщx: ЧƒііvДЕЕЁЅЅMMMpЙ\<\ЖVЁŠZv˜tМФѓCBAq ”J%$“Id2ž#­к xбhДјИЦЮV †ŸЗ`G-v2S/\fЛFЂ P*•(‹ЧУ‡7ЃRЉ`6›бзз‡з_яНїЌVы3їduAУH-ёUњcaЇmШd2h4F(•J”ЫeюЁAAМИHŸJЅfГ™НРУ1™чоќќ<цччБИИˆХХE,--a}}ЉT ™L†ч[‹FЃX^^оАЇP(x%\–ЎyьГE$АjЇ‹zНž‹MJЅrƒрWЫиjбo;H…ЕнЖ!п­>EЂ(ђиbБШ7–DZЄ„yб1я:Ч‘Эf‘ЫхP(P.—7єŸ§eBЎNЇƒУс€зыEKK Z[[сѓљаббСs,ВgџVž‹‡й.zй ! ‚иwd2Ъх2вщ4rЙЏЊЊRЉШјГ—зža…7‚С ’Щ$ …№UшццfДЕЕЁЙЙ‹ЅЎHј"нЇъ+ ЩRЉTШd2Шd2ШfГ i› ‚8œ0СGЃбРnЗЃЃЃ…B{ХуqDЃQј§~ј§~ЌЏЏc}}ч] ‡УШd2( ( ќљЧБЖЖЦНюи_ЅR ЕZЭ?­V NН^ЃбШѓє1oB–ўCЋеђ§ЅЧГ<}jЕ …‚ч”zјUoŒъШFЕЧœtEqУkц5'нrЙrЙмиыT*ЕaK&“мћЧ<№˜HЧМѓЄžzьќЌш™VЋ…Хbнnч^’.— ^ЏNЇ‹ƒљbѓХТžЅу~‘l —ђ‚ ˆЁ\.#ŸЯЃX,ђyв•еСHЈѕмЉЧг‹Цf^pЯkмэЧœiЕZДЗЗУnЗ#›ЭЂX,ђ•jVјƒ§ PЋе›іo+OЦНf'чЌ•—p7}–ў’Щdќп/AqИЈў_њйnк’ЩdЉ'™ДˆЋRЉѕ,•JђуВаZЅRЙС#OКICCй>ь5ЃЄ…7и1Ќm&VIЗъ0^6fЉHЧDЛZ‚лЄžulЎŠХ" …ŽVяЧО—ўeчc!Ьln”J%рXA“ЩЃбШНY!“ЩФПcBЈДЂ,›‹j;aЗQФоABAq ˆЂШKзГќ[,Ъ‹АтЗYюБчѓЖ;ўFЯгnњ}P9уv3fAјЪ~u;е+эѕ~ќ–y;aЗ}ЎžcV§PЁxj>В)AФЯƒъg#{&А‚e &№1o4&ю% .т% $ .ј1A‰ЬS ^ЬЃ…™JХ­Zљq™јШМ٘X'ѕў“к`тєЏtЌѕМ№XЄ'Є›ДвОVїЙZœSЉTМШ”JЅ‚Z­†JЅтљ™g0И@g2™`6›a2™žѕЄ9™ННй5Ў^Ј&$фA3ђ˜ЇRЉИёtЉ'ьд‚vлжn—§ђлЊэFŸ{ЛТтN…Я­>лЌ­ƒМ?ЗКЮ›хсi„1Ю~ДБЬ‹€ ‚8œlчџќнxx3ЊŸПRO:цЧ*лJaТѓ>Ычѓ\шcЂ^:о ќU },\—yЕIНзЄ!Іеb w- 5Ccй8*• JЅђљ<pO>ЉV]xЃZDdћV{њБЖЄ›/ ѕАcсФь5ыиЦ*ГŽл ‡е'6BBAq 0CЊ\.sу…‡нˆЈхЗнdЦллNŒячё{оЙоJPzоіЊ|˜яЋЮйvУ^•|šOš+‡y[TяЧЮKAМмдЫ#[‹ъч.—ЋцqесЊLЈcž~‰D‚чleсНь5Ы)Чў2б ~Ќ-Ж1QEфѓy„УaЬЮЮBEX­VxН^X,– ТœДК.ш˜дГŽхэSЋе<Ы_Ч<ы їœcоsвзС Л ‚8ЊC!Њѓ‘vЊ‹ЭФчv˜н@оСВ[ЏЫнЗйОШЭXЏi~r‘ GAlЦѓли)R{­VиЌtŸъз`БX0==ЭE7ГйŒŽŽ;vь™ўеыoЕ(G‚„<‚ т@†щU* … +ЁХVbF=oЉѓВѓso#ЌнфјлlŸF У,Џ%ћwЪB‰Жs,AA$ьљ$-bБЌЪ-CZ„‚ šэнХAб`ЄyE*• Џ>ЖWž=[­ŠVW*eŸmЕ’Z§}u2іY=jw3Њ24Ењвш/ ;]uЏ% зїvФсНаd2й!ЏRЉlЈ`KAФ^А[›g/<уіТ6yэтр!! ‚8XЂcAxeАУр‘зЈаZЂрfэядлj;ьЇшЧDOi˜ч=ЏtЮЄ›˜ЩиMŸЄїЭfЧWчуйэ>лЁ^uпrЙŒBЁ€rЙ „<‚ ‚xйЁ+тА@жAq ШхrЖ Š"Вй,їЪЋз{й)•JМЂZ5LcсJЅђ™|/iX2бhuuгггXZZ‚\.G[[z{{aЗлwнЖ(Š…BC:†\.‡ЯчУРР CGq88Ь?и=W,Q(PЉTxЕi‚ ‚ј9pи‰Ÿ/$фAћ ЫгыѕаjЕˆD"H$\ иnРГ:ы%щЏї]Н}wЫNCхr9‚С nпОБББgОS(PЋе0 Алэ№zНhkkƒлэ†Z­цуЏ~)MшМЙк.в9•Щd№ћ§јўћяq§њuШхrМікkp:p8Л‰)—ЫјѓŸџŒP(™L† . ННFЃёPдЊЛ_U7 ƒоЊ*nБXD&“AЁP€L&ƒС`€VЋ­{ŽУ,LA//УГdГчтЫ0>bџ!! ‚8”J%L&єz=Ъх2bБrЙм…зжЪgЗ—Ц•Дђg"‘РУ‡ёЩ'ŸlиG.—CЈT*hЕZ˜L&ИнntuuсФ‰шяя‡гщфсЩ{нgiПЅШd2Єгi,//уёуЧмs.›ЭюИнъ№фL&ƒщщiЌ­­A&“ЁЛЛХbёљв@ЦКWд ™нnџѓљ<’Щ$ŠХ" L&гKщIAhqˆ ž…„<‚ т@P*•0›Э\ШK&“Шd2(—Ы ѕN’ЖГcp;9ьmLŠЂˆ\.‡d2 рiЅ4NЕZЭУSЉ–——ё№сCŒabbяНїЮœ9Зл]ЗАЦV‚еукjŽъy<ЊT*X­Vx<‚‹ХЅRYѓѕк­еw•J—Ы…JЅЙ\‹Хђ\ЁзлЉ2МнуŸзУqЛ…-ЭVEXъ}ЯюбJЅAИ_яx‚ ‚8LlЭБ[бФFbП!! ‚иwd2A€бh„NЇƒ(Š( мликShЇFW#ЋчƒЖЂЉЉ ƒƒƒшььDЁP@"‘РТТцццАООŽx<ŽoП§щtЂ(тwоЉтXЋшAuИэfуbтйVЧV*xН^œ?ЭЭЭЩdшъъ‚нnЏ+Vе* RћO.—Уэvуƒ>@"‘€\.GOO У3!УеэзjЏЌ?ећJ?Џ5?Лх0„я”JЅВAlжh40 аh4м3‚ тeІ6жvьНhWjD#!! ‚иw˜јb4a4< л ‡УШхrмЛкT O; Iм)MMMИxё".\И€RЉ„BЁ€h4ŠЩЩI\Лv п|ѓ 2™ ЦЧЧёУ?РчѓсфЩ“ЯР(—ЫƒXYYA @*•‚(Šаыѕ№zНhiiнn‡BЁxF@ž^“@ €ееUƒAЄгi( 8ДДДРыѕBЇгm{JЅжззyвщ4€ЇˆzН‹‡^ЏjЕКfв~J цrЙЬНзжж‹ХP,ЁRЉрt:бввЗл NЗс˜љљy<~ќЉT …ЧŽƒУс@4Хьь,’Щ$4 М^/кллсp8vx5Яуq Š"’Щ$ЯUh2™`2™ъ^'‚ ‚8ŒTл:вЯvгV­ХЩНД  ! ‚8@ЌV+’ђљ<жзз‘Щdl_dию~2ЊЊ‹<ьЦ`лЪ`T*•МИEЙ\†(Šp8p8АX,HЇгC*•Тьь,?~ŒЁЁ!rZ.—FёгO?сіэл˜››C4E>ŸGЅRRЉ„гщDOOFGG1:: ­VЫЧЯчсїћqуЦ ёx333јлпў†ЉЉ).:В Ш&“ ---8~ќ8FGGбйй Й\ŽrЙŒ™™ќёD0„RЉФТТŒF#fgg1??BЁ…BЗлуЧуwоASS~о{jЋ0зƒD:ЖbБˆx<Žp8 АйlАйlаh4єƒ… ‚xa` Ч~П­­­АZ­Мћn ЎЩd2nч,,,@иэvиlЖ=AGAь;ьGПнn‡Ых‚VЋE2™Фњњ:їk”0АWе@їЃЈ„tе˜хŠ“ЫхX[[Удд2™ BЁfffЩd`0 “Щ qыж-|ђЩ'G&“VЋ…йl† ƒXXXРдд–——!Š"FFF`4Q(АДД„/ПќWЏ^Хмм‰Ъх2”J%їьь,вщ4^yх Єгi,..тбЃGМиE.—ƒL&CБXФтт">ћь3Œ!CЉTТхrA­Vs‘hii ГГГИ|љ2|>A@&“СддVWW!—ЫбееХ@Vdc||_|ёОџў{^UU.—CEˆЂˆЧcnn‘HяПџ><DQD4Хєє4VVVИЉRЉАООŽt:bБQЁеjсїћa2™№ілoУbБ№еќч ЕоЏт*RvsžL&ƒH$‚X,™LЗл ›ЭFyAФЁЇкc.тыЏП†ХbAoo/Ž9ЇгЩЇЖлfЉTB"‘РЪЪ ЦЧЧ1;;‹ССAmB{ yAФa6›сrЙ`2™H$H$P*•ИЧS#и фyФСнxa1Џ'ƒС€cЧŽСjЕrБ‰y2  ћь3h4455СnЗCЅR!—ЫaeeБX їюнC*•‚лэЦ/~ё ЈTЊ mŠЂˆХХEX­VxН^шѕz„B!>ЯsssИrх FGGa4ŸщЫv9Ь^xЕЩdH$…BHЅRЩdhjjтM^”qA„JЅ‚RЉФђђ2ўєЇ?ЁГГgЯžХшш(кллa2™И‡^=DQD*•Тњњ:&&&p§њu\Нz&“ ]]]Ђb/ ! ‚804 їЪ[^^F @4EЁPhЈзHj‰0л­л ЌV+ДZ-A@БXD.—CЉTD"мП7oоDЙ\†ЧуС‡~ˆwп}---Ых‡Ујня~‡?§щO˜žžЦЕkзpюм98,--с‡~РТТ€ЇпйГgqщв%tuuAЁP cjj ЉT jЕzЫq–J%„УadГYˆЂЛнŽW_}П§эoЁеj!Š"їјZ^^†Ячубf"ѓДЛ{ї.d2:::№ўћяуЬ™3<фїќ#Ў^НŠ••ЌЌЌрЋЏОТааЏі+=‡нnЧХ‹ёюЛяТыѕтЦј§яћїя#—Ыaffсp---PЉTE‘ЛйНQ‹ХШ—ЩdˆЧу…BШd2Ыхhmm…Щd:шЎAФ–HŸЫ‚ РыѕтэЗпЦwп}‡џїџўО§і[ŒŒŒр—Пќ%ЮŸ?ŸЯWзў(•JˆЧуИyѓ&>ћь3\Йr“““(‹јџјєѕѕёє/Ъsžxё ! ‚80X!‚ццfмО}сpыыыH&“*“OaТVБXDЙ\цUeЅkС`ЋЋЋHЅRž†хЮЯЯу‹/Ор+ЬЂ(b~~žЗ“JЅ077‡ЃG" bqqРSб№еW_Х|€‘‘~МлэFGGŠХ"Ьf3фry]ёЊRЉ№szНžчНУџќЯџРщtТnЗѓ|2G…FЃBЁ@ЁPЈ;2™ …BЮЩdаh4И|љ2.^МŸЯЙ\Џз ™L†H$‚h4Ъsи„Усgђз‚€ббQ\О|УУУP(<РЬЬ ’Щ$вщ4rЙЪхrc.ъ!ЇRЉ \.Уяї# |>…A/2™ :###xѕеW‹ХАООŽЋWЏтсУ‡јы_џŠ . ­­ ёx|Cў`–ЂуЫ/ПФ­[Зx$L&COO.\И€ІІ&ЫЭLЕ ! ‚иw˜ш#клл!вщ4–—— сѕzИ—ѕЉUѕГZШкЌЦNЊ†VЗ[(АММЬCF#Ьf3дj5Яё–JЅxЙp8Œќїюну§’ЩdH&“ˆFЃžЎ.G"2›H$<-КбжжŸЯƒСРs*•JЈеъmC­VЃЗЗgЯž… ˜™™A,ƒVЋ…С`€еjEss3pъд)иэіMлdUySЉ2™ d2T*кккрp8xžЅR‰жжVj›JЅH$jŠq …---hmm…^Џ‡(ŠАX,0 МВoЉTт"ъfзъe"ŸЯsСTЉTЂЉЉ‰Я№тxA№єyoЗлqсТLLL№д.ЬFX\\„лэFЉTBБXDЅRСуЧ‘L&Q,155…P(Фг‹ИнnМёЦшээх‹\єl$іђ‚ ˆC&“СnЗуШ‘#0 HЅRXYYпяЧРРРЎsэ%ћ%жHsЬ1 …ќ~?ЦЦЦFQ*•`2™амм NWгh … ХЦGОХbХbL&ƒ pЙ\5sТˆЂXWАcЂ`ѕœHп31­ЙЙяОћ.мn7ІЇЇyОЕl6‹ѕѕuфѓyшt:LLL@­VуфЩ“\(кjŽЄчЊŽЛнk&—Ыa0 гщx;‚ pGщ9Є}иъƒ$‹ayy‘HZ­]]]№zНаh4н5‚ ‚и’ъч2[ќ;yђ$~јсЬЬЬ`mm Ђ(ђТNOž<RЉфBоТТ–––P(6D hЕZДЕЕс­Зо‚лэціжЫf ‡ ђ‚ ˆ}Gjм˜ЭftttРуё`nnЋЋЋXYYA6›…^Џп44a'žmfГsn%I=іъ_.—љJА(ŠШчѓX[[У­[З№нwп!‹Ax<єєє@Ћеt:ŒF#”J%JЅ^{э5tvvnШ;XЉT Š"?Oww7ьv;t:Ьf3 X,baaГГГАZ­\И)•JШd2( АйlЯˆ„ѕ8vь|>Тс0Я‡ …pчЮ<|јkkk‡УшыыCgg' УІs,—Ыa2™ј}R,1;;‹žžшt:‚€RЉ„ЙЙ9фѓy‚“ЩFAži—…*я„—нX_[[Укк’Щ$ьv;`ЗлyУ—}ќAФЫГПкллqњєi<~ќыыы<я­(ŠШfГШfГќ˜L&SГ-ЛнŽЁЁ!œ>}zЫH‚h$фAŠVЋEss3њњњАККŠ@ €ЅЅ%ФуёCiе-6ѓЬЊ•?Ўž‡№4”‘хlЩхrˆХb˜››У­[ЗpуЦ …(044Фѓд9N455Сd2!‰ RЉ ННПјХ/рѕzЁP(P.—Q(Щd‡БВВ‚žž˜ЭfИнnј|>мПЅR 7nм€L&C6›EWW”J%"‘ІІІL&ёо{яAЃбl:/…B‹‹‹ШfГp8шъъТрр A@6›…ЧусеwЫх2‚СруЙ•J*• ЭЭЭpЛн˜™™A.—У7п|N‡|>Я‹]ќљЯЦјј8Вй,ŽЅBд~Ан‡ Q177ПпBЁГйŒЁЁ!.AФ‹ŠZ­Цшш(юпПлЗo#NяшxЙ\ŽŽŽМўњыpЛнќѓщ9O̘GA( …6› УУУИqуТс0133ƒццfыyЗзА"R&&&‰D№‡?ќЂ("—Ы!‘H ‘Hp#гщtт­ЗоТЅK—рёxјБ•с‰‰ |ѕеWXYYСG}„‡ЂГГzН…BБX ~Пыыы( јЯџќO ТчѓсЕз^УУ‡y8%Km2™ rЙ2™ кккpщвЅMХ0&оЛwŸ~њ)єz=ZZZ`ЗлЁеj‘NЇqїю]ЬЭЭxjЛнnшtК-чN.—ушбЃСьь,ќ~?цччёЛп§Ÿў9T*rЙќ~?‰дj5Z[[ёж[oСщtrМZЁИ/kОЛРr>x№сp:---шяячт-ЭAё"уѓљpъд)\П~зЏ_пбБ.— УУУ8sцЬѕŽ jCBAq`0Рd2att.— ‘HЋЋЋЧ™3g P(ъ•~Ж‘яyМЃ6;ЖQBc2™D6›Хђђ2ўžœЙЕЕgЮœСЙsчаггГСГLЉTЂЇЇПњеЏ=Тњњ:Ђб(юнЛЅRЩCuГй,Ъх2L&ЯcБX022‚ўчЦwп}‡™™Фуq$“I~-d2Ьf3Q­*\§šLH$xєшЏL[,‹ХИЗ^oo/FGGaГйx›,OŸt.чЮC6›Хwп}‡ѕѕuƒAШd2ОПЩdBoo/^§uœ:u :Ž™ѕUEОПTЄ’юГнjЕЛНЧSОНBЁ€……LMM!УщtЂППЭЭЭ”ˆ ‚xa‘к-zН§§§8wю~њщ'фrЙm-RЩd2єїїуфЩ“МR-Aь$фAŽVЋE__КЛЛБВВ‚P(„ЩЩIƒAž8xЏ<Ж+ИlVЅt+1cЋяЕZ-ššš088јЬqrЙJЅ’чЎѓx<шююЦрр šššž qdDN:FƒЮЮNЬЯЯ#‰№J­rЙFЃjЕFЃ^ЏNЇ …‚‡ЋО§ілАйlxєш–——ЧQ(јБmmmбh„L&ƒ^Џ‡ЯчУрр фr9ккк еjylGG^yхЌЎЎ"“Щ X,Ђ\.CЅRСbБ№Ђ'NœРРР 7А{{{aГй “ЩаммЬs§U*hЕZєііBЅRСfГazz@щtЂ(ђœx­­­Ф№№0мn7ЏzkГйаззЧЋкК\Ў Йхr9<њћћ‘H$ еja4!BУяЩУцн–Щd№јёcЌЎЎЂP(№ыc2™6фЌеoј‚ ˆAавв‚W^yŸ~њ)fffx5кЭАX,Хрр ДZ-=їˆ}…„<‚ тР`FRЉ„ЧуС№№0=z„ййYЬЭЭсЩ“'АX,ŠTчЋїО[ %лёьЋ•їюyE‹ЇN‚еjнp~™L…BСХ#Ће ›ЭЋеЪ+Ьжъ‡ Алэ8ў<Ž=ŠЕЕ5ƒA$“I”J%‚ЕZ Н^Гй ›Э—ЫХS•J…жжVИ\.œ“ЩєLБъ6Yh+;ЮщtтНїоућГ№зъа]A`6›a6›100PsЋУAР‘#GаннЭ?Ћn_ЁPрФ‰спKлкЊЂr­ЯЖ{яЗP&эs:ЦТТnпОl6 ŸЯ‡ОО>tttР3‚3AAМHHŸy …яПџ>ўіЗПё(„ZШd2(•JМўњы8vьL&г~u™ 8$фA,Ž=ŠССALLL  bll .\€бh„С`Ј{,АbТ^ ~еЙпіЂэн'иIс‡­ЦPЏ­­њЕнЙйЎиY}ЬVyяЖГO#9шлJЅ‚ееUмКu kkkE8~ќ8ŒFуі ‚ іN‡ссaœ>}ЁPЋЋЋ5їSЋе8rфЮŸ?ЏзЛЯН$ˆЇШЗо… ‚ і‡УббQєѕѕЁ\.cii wюмA0lHVЈЁ–wйVmжЊ.[ыГ­ЈГ!@VЋ^ПЖˆjЭЯvЯџ<др6ы‡ДŸлщo­vwв>kcЛ§Ћежv8шZж‡L&ƒ™™мЛwХbNЇЃЃЃшээхžБ-6AD#aЉC.^МˆЮЮЮš)4d2, .^Мˆоо^Zм" ђ‚ ˆ}Ї^hЂJЅТр𠆆†`2™JЅpћіmЬЮЮ"“Щдвv+ъmі~Гу6ЪЊC8k…tю†F‰'[ѕЇжž‡н^ŸАТвnЧБгОэD м+VVV№№сCЬЭЭA.—c``CCC№zНFKAМдZU*•8yђ$сp8ž9FЃбРчѓсђхЫМA$фA‡ ŸЯ‡‘‘єєєЦЧЧqџў}ЌЎЎю™ШДŸтФ~Џо\еЫMw<Ќu=žwL˜ЭЦБнЖ)oжŽд/›ЭтСƒИџ>тё8 Ю;‡žž^(ф EF‚ тХЃбіл^тѓљpъд)twwoЈаvЛCCC8}њє†тYРокS/ТМћ yAФОSk”a0xх0ЅR‰h4Š7nрў§ћujyS5JœкI›ZиЌ-Љ ѓ"‰5ЌЏЕ нэўxи+ќE™CЦђђ2nмИЩЩIЈеjtuuсТ… М § ‚ ЄМLЯVшktt###Ф:Й\ŽЮЮN\Иpaƒ7оNlГН3ЗkчМLзьч yAФЁЃЅЅ.\Р№№0ДZ-ІЇЇqѓцMLMMA.—ПpтШAБ“n/гœVчЖ;,ф\o'`&“С•+W№јёcd2Инnќц7ПйрGAеь4…Фa…‰\mmm8yђ$Ž;ЦПsЙ\8qтNž<Йi=ОУdї{ yAФЁУ`0 ЏЏяПџ>\.2™ >|ˆkзЎ!‹ё Ђ?'ceЗЋЈЛёт;lѓzPЋШНjнHOЮЭЦТ \мП?ќ№VWWa2™pтФ Мѕж[АйlМШХAџ@!‚ '›=/їj!ЋбЖыЃС`РРРЮŸ?NA000€SЇNЁЅЅЅцxЖпѓŒПХеъ}_г™x1 ьŒAФЁ@ъAЅP(рrЙpљђeмКu ЉT +++јёЧбггƒ“'OТ`0pт Ф…FTвнщ9ЄŸmч|[e‡Сhлiп­Ўy­іЖjЗQ|›]›ŽГVuIћ™ЯчБДД„/Ој“““( шяяЧoМОО>Јеъ†œ“ ‚xёЉ~Ю5њЙД“6Ѕv`ѕЂпV›(Š|cя№ї …p8ˆЧуhoo‡ЫхB<G"‘и0~-"фr9_+Э лЊїйэœU‹‰›ЭUѕБФ‹ yAФЁЃRЉ@ЋетшбЃxћэЗБЖЖ†ЛwяbbbљЫ_рt:бееFѓŒсЗ‘ыyћXыГjAЈQ§и‰аTЫk+aщ иŽHYяњжЂо1ЛaЗjыЕЕ›ЙnдѕйЌQpѓцM|ѕеWˆFЃpЛн8sц оxу шѕњ}ћ7EAИЈV-К•Ых [ѕgХbЅR‰џe[Й\цEQфŸ‹Хgкc[БXФЪЪ ђљ<Вй,=z„ххeр‚\.‡BЁ€\.‡RЉ„RЉ„BЁ€ 6…BС7Жћ+—Ы7ь[ы}ЕИ›йЕФjл‘žљ‡ђ‚ ˆC…tuUЋет—Пќ%fggБООŽ……|ћэЗшьь„С`@{{ћCу „ЉУ˜‹mЇFи^‰;a;ѓИн9ояўoG8|ž>5"МVŠTpЮd2x№р>ћь3ЌЎЎBЉTтЬ™3xћэЗблл{Јюk‚ bџЈїlлЬГk;‹†[эУDДBЁ€BЁР_g2$ ОЅR)ЄгiЄR)ў:N#›Эђ-—Ы!—Ы!›Э"ŸЯѓ6ЅЂ^-o=ж'Q‘Ых Š"ўјЧ?тЏ§+C­тf‚ @&“AЁP@ЅRA­VCЉTB­VCЃб№MЇгAЋеBЇгAЏзCЏзУ`0@ЏзУh4ђЭd2С`0@ЋеBЅRAЉTBЅRAЅRёsm7 Xј$ђ‚ ˆCгщФЛяО‹P(„?ўщtŸ~њ)L&T*ZZZјЪэAА_ЁН?Aх0ёe7n+• ŠХ"ЦЦЦ№љчŸуёуЧЫх8qт~љЫ_bdd‚ t7 ‚ ˆщBѓ‚+ ШхrHЅRˆЧуˆD"ˆЧуˆХbŸп ШI=ъj…ЪJНљъ vЌoЕЈХЭхr[Ž“НЎŸ•О—zѓI7&дЉеj.иi4.№™L&˜L&X­V˜Эц Џ­V+L&t:?VЉTnЫ{xё ! ‚8tHW•J%pљђeЌЎЎтыЏПЦТТОњъ+ЈT*\Кt ‡у@Уъ…-4‚F†‹жу0h; KнЯ\„;ЭУИї (Š ЩE$cЙ\ЦН{ї№х—_тЮ;(‹hnnЦЏ§kœ9s6›эЙћMAМ<д{ОIпГ№жBЁ€l6‹X,ЦХИx<Žh4ЪџЦb1$“IЄгiўWъ9W-и•J%.ЪБѓJE1‚ЪФ0цЪ^KC[YЈЋ4,Ж:З]Нќuе"ЁT,dž~,”WТ+ни˜ŠХт†Аaж_ЕРЧМћЄ›дЃyђY­VX,X,˜Эf.єY,шѕњ о}ѕЎ%qИ!! ‚8єиl6œ:u ‘H~П“““xєшДZ- ^§uшѕz^Ys?МфіK`кЖт<;с њДлафFž/ђфeГY,..т‹/ОРии"‘<о~ћmМѕж[hkkƒRЉ|&чуA–!‚ і—zџп3ЯКRЉ„\.‡L&ƒd2‰T*…D"X,†h4ŠH$‚p8ЬХ;цa—L&Йp—ЯчЙјХž1LdcžifГyƒ‡šRЉф!ЊLЬвh4<йЄћKC\Ѕ‚ѓVcyшЄЁБlќеb^Е‡^u?ЉxW-р1a’Н–zВз,8—Ыq“mlпH$Т=йљ™ ЉT*Йm, Я5›Эp8Алэ\рГX,АZ­0 |cо|lNˆУ yAФЁЄ:яGkk+оzы-DЃQќяџў/fggqчЮ€С`РёуЧa2™xA-бaЛ^mЕКZЧVQcЇдa ‘Ђеv‘о_Еr-V‹XвЯjэЧиЊ2\НМŽЕЎЧѓVДЋ&“Щ`~~Ÿў9ОљцЌЏЏУnЗуеW_ХПўыПЂЏЏ:Ўn‚ ˆ§gЏ<џЗЪЏ&-ќ š˜(‡сїћБКК Пп`0ˆ`0ˆP(„h4Šl6Ы…:'ЅR ƒС…BЕZ ­VЫѓЦщtК ЁЄfГ™ч“nьЖi4šg FT‡ВJп7jЅsVЯcЏ:ќЗ\.ѓc–г/“Щ “Щ№мв€LХbHЅRќИL&ƒ\.ЗA0L&“XZZтч”Щd\а4 АZ­p:pЙ\pЙ\№zН№xП!З`(B,C рBъњњ:‚С ’Щ$њђљќ†BRДZ-єz=Ьf3š››бжж†ŽŽttt ГГ>ŸFЃ‘‡х[/lюeк™џН3§ŠуJяџЇїНщ АhEЋ%й3офнždfЮЬd™$'o’9y•џ!y;y3™“dВ8П™Фіи–gМh,Щ–…Ќ@ь ЖІ7шІщ^~/tЊІ!Y–ОŸsънUЗnн*њ>§НЯВбyП.[хBž@ :ї+фСƒцж­[ќђ—Пф§їпg||ƒСРž={xх•W8~ќ8•••+Ž_OЙ›З‘И'„МЏЯу.фcЋyЋћ’L&Й~§:Пћня8ў<^ЏƒСРГЯ>Ы~№žyцьvћ7в@ |=О)!O"—Ы‘H$ˆFЃx<ІІІ˜ššbrr’ёёqќ~ПœгN…$aI эдщtFйлЫхrQQQЫхТхrQZZŠгщ”=ыЄЪ­RИЋR[шљUш•~?ълСSluqId- х•rІR)йK/‹ …˜ŸŸ_с)щѓљ№ћ§ƒAљ~JїQЅR­ЈŒ+yя•••QUU…лэІЎЎŽКК:jjjp8˜L&4Mб~ЏFyZ+‚-ƒBЁ@ЃбАsчNОїНяЁгщјЭo~Урр 7oо$—ЫБААР‰'hnnF­VЏ б§:ч†G[b#бчq7ЫУ(фБ™ѓ{}3љяRЛйsm†Э„чЇГй,ЁPˆЎЎ.>ћь3Ў_ПN РbБ№мsЯёНя}cЧŽaГйюЙO@ x|YmћЮЙ™L†X,&‡ЦЮЮЮ255ХЬЬ sssф"’и#…hZ­VNЇSщ$ёNЊЂ*UU•;)єU*.!…ПnfЮ)БОmsT1S­..у†юf2ЙшˆДХb1Й:p(" сѕz ƒЬЯЯЏШk‰DXXX`ffFЩЕX,иl6\.eeeджжRSSCMMžk6›хg‰юп§кшпv4с‘'‚‡Юз™z$# sуЦ >јроyч&''Q(ьиБƒ#GŽ№дSOбi‘/т IDATддDII jЕњЎТЬнњє8Žy€mE!яAђ8{*~]!yНgs#!4—ЫЧ™хкЕkœ={–ўў~–––(--хШ‘#ќшG?тШ‘#”••=№\|@ xplfŽ_/Ђ@ЁPАММ,‹8С`PЮk7==Эєє4ГГГЬЭЭ ‰FЃ,//ЃP(ащtrž:›Э&‡Р–——SVV& xR…’’ УŠb*ЇкУ,0Ж]‘D\Щ{/‹БАА ' ƒј§ў5тž”1ЫЯ†^Џ—Ÿ…ЪЪJ9$ЗККšъъjЪЪЪАлэX,ДZэŠgaГб нуoЪлrЋsssЬЮЮ299Щдд”\а$ЫХ6–——ЩчѓЈеjЌV+ЕЕЕ477ГsчNЉЏЏЇЌЌŒ’’L&гoНbб2$zЋиBBШСCч~ІžѕТ)Вй,KKKќц7ПсПџћПљъЋЏX\\DЁPP__ЯwОѓž~њiккк0›Эkњ№ Œ"‰{]QќКч^ЏэЧ=зпƒфqђО.’WX‘y5вufГYІІІИpсgЯžхЦФb1Z[[y§ѕзљС~@{{{бу@№xs7*ŸЯ‰D˜››cxx˜ююnЎ]ЛЦаа^Џ—h4 ќсs_ђК+++ЃЙЙ™––ZZZhjjЂІІF`ŠхA[нI„љКшїВ@yП|[„МЭž{#{2™LF™››cbb‚ссaFGGЙuы333ЬЯЯЧWДЇбhАйlдддАwя^іяпOGG8N9ФZ:GБK!ф­ђ@№аЙ_!Š eЙ\ŽP(Ф•+Wј№УљјуC­VcЗлihh`пО}tvvввв‚гщ” вЏл—Эц.{P<(!ouиЭVц~Н)З  wJЅ’l6K$azzšоо^КККФяї“JЅ0 <љф“МўњыœŸ—ѓюЅR)’Щ$ёxœ`0ˆЧусіэлŒŽŽ222ТэлЗ ВЇЇFЃС`0PRRByy9;vь`їюнДЗЗГsчN*++1›ЭF|зО[ХBž@ :jъYнN(bxx˜ЎЎ.~џћпгннЭќќŸOT(иэv***pЛн444аииHMM хххr~;ГйŒFЃ‘‹PЌžWз›76+фmжћkНї„№ЖнцОorёrНtщчѓyйYZZbaaПпЯмм“““LLL011СэлЗYXX •JЁVЋ1›Э8NЊЊЊhhh ЅЅ…жжVš››ЉЌЌФd2­АЩsЙмCЭуЛUž !ф рЁѓ Їžе†]2™ФчѓбннЭЙsчИ~§:уууЬЯЯ“Эf)//ЇЖЖ–КК:мn7ЕЕЕИ\.ЌV+&“ ƒС€NЇ“ YЉнЏc@™6Л z?яotŽЧбcэ^МЗыkЋфТU№D"!ЬЁPЧУдд“““LNN277G<ЇЄЄ„ъъjклл9vь'Nœ`ЧŽЦ5y"‡ћ/‚ѕ)TвщДœПlrr’фœw~ПŸL&ƒС`РnЗS^^NMM ѕѕѕдззЫЖOUU•œуЎP4)vЮ}ЋлНлœTЬnIЇг,-- ‰ЧуdГYДZ­\9еыѕ …аыѕдззc0ф”,Зoп–s–––RQQБТю[ЏпфМyЏчxи6нн„VЩV x<&''abb‚ййY|>ѓѓѓ„Уaђљ<‹…ЪЪJiiiaзЎ]455Q[[‹гщФh4>tёuЋиEBШСCчAO=ХVƒГй,ЃЃЃ|љх—\Мx‘7n033C4%•JЁRЉАZ­TUUQUU%W`“D=­VЛfeК№їт…ЕY!ЏPР)ф~VЕзлOy[у5щЮd2Єгi‰„Мк-U”›žžf~~^~žM&‡ƒ'žx‚ЃGrќјq:::())YqŽЧсž `-Хц‚\.G:&2;;Ы№№0ННН\Нz•йlN‡ЩdТщtRWWGKK ЛwяfзЎ]дззcГйаыѕ+Тd‡…{ђŠ;xgffшээЅЇЇGііЪчѓ8NžўyvьиСЧLww7.—‹?џѓ?ЇЖЖ–T*ХРРПќх/IЅRX,Ž?Ю /М ЇЮRЉ‹EЎЦ[ШƒќЖт<НQŸ———YZZbzzšББ1†††`xxЏзK$!‘HЭf1 466Вwя^љ$nЗЃбј(/C ыАz.]/'X6›%‹199ЩчŸЮgŸ}Fww7333Єгi jЕ›ЭFcc#>|˜={іP[[‹ХbйђѓѕъБ™››уwосч?џ9d2љНњњzўўяџžcЧŽёџјМ§іл( ъыыљЗћ7іюнK,угO?х/џђ/I$И\.~њгŸђџ№ђТWoo/зЎ]crr…BСБcЧиЗoЅЅЅык`›˜юЧŽкjЖзz§MЇгЬЯЯ3::Ъ_|СW_}Х­[ǘ%‘HЯп)ьхp8иЙs'ЧŽуЉЇžЂННВВ2t:нšs;ЯзaЋŒёУЉ-С#BЅRQ^^Ю“O>I[[oОљ&ƒƒƒмКu‹[Зn122B8&‘HШ+‡’PЇT*заUўМoлyПЌ­- Беh4˜L&, еееДЖЖВ{їnžxт ф"FГх @ јЖ#}^///уёxИyѓ&—.]тђхЫLLL …фъ ‡ƒццfЙ"шюнЛЉЉЉ‘НЧ ‹zm—y@ЁP088ШЅK—&›ЭR__O{{;”––воо.‡WVVPQQNЇ“э;I]Яос§їпЇЋЋ •J…Z­ІООžвввuУ‚ ћјmgНEdFCii)VЋ•;wђђЫ/3>>ЮЭ›7Йrх 7oоФчѓ …шээett”ГgЯВgЯŽ=ЪЁC‡hii‘яхЗй.Bž@ ЖЋЩXГX,˜Эf\. tvvтѓљ˜™™! тѓљƒ„B!Yд“<Ё$ЏН‡бї­.вхѓyRЉSSSФуqДZ-NЇ“ђђђвўЗ ЕZVЋEЋеЂгщфчЗЌЌŒВВ29їQii)vЛ“ЩДBРСуMс‚K>Ÿ'3==Mww7WЏ^хцЭ›ŒуѓљH&“˜ЭfЙ8@{{;­­­ђ"ŽнnЧ`0ШэЖПФМ\.G,cjjŠййY’Щ$JЅ’ііv^~љeš››1™LдззЃP(xўљчihhEЯВВ29`aˆfa”E6›%ЫЉ,|>*•JЖЅœ{JЅrEQщјt:M:–=чU*zН^ IЅRЄгiйЃPЇгЩgв{ …BŽйЊїoЕчœZ­FЅRa4БлэTWWГkз.Ž?ЮРР§§§+Šw-..тѕzЙuы/^фаЁCtvvВcЧl6[бЈ™oBШСЖІprW*•FŒF#•••<ёФФуqЂбЈl Iљ:вщ4Щd’t:-WЬмххe‚С џѓ?џУдд‡ƒЮЮNž}ійGнЕ-AсѓЊбhаjЕшѕzєz=&“ ›Э†Ус ЄЄЃбˆNЇ{ьђ `}Š-ЖФb1М^ЏьmvхЪ ƒВежжFKK mmmДЗЗгммLiiЉ\ШЈАmIИлѓ€”/ѓщЇŸrюм9ІЇЇ;зЙДДФФФљ|žккZ:::ˆFЃdГYвщ4p'ЭЪнЙrЙœ|Ž/ПќПп/ПоппЯ{яНGyy9*•Š’’žyц9д62==Эфф$@€X,мI}QUUХŽ;dyщšnпОM__333(•JіюнKee%‘H„‘‘‚С FЃ‘#GŽаииˆVЋ§І†јeЃ/Z­‡УнnЇООžнЛwsша!Йyѓ&7oоdbbŸЯ'{шѕїїгппЯСƒikkЃОО‡УБц ˜чфvјBž@ О›а5 %%%r•ЯBВй,йlіЁyуm’Щ$œ;wЧƒнnчаЁCќХ_ќ…№лЋ…gi+VUpѕ1лхK›@ lGŠЭ™L†P(Ф№№0—/_цќљѓtuu‡хмw’8%хiЋЏЏЇЄЄЄшч§v2™ >Ÿ_ќтєєєАДДмгЫ—/глл‹УсрФ‰;vŒХХE>љф~ћлп’Ячihhр№сУ”––m_ЪGјХ/~Aww7‘HD>Ч—_~Iww7*• NG]]ЛvэЂЄЄ„ХХEnмИСЇŸ~JOOГГГDЃQрސзииШ‰'8yђ$mmm˜L&њћћљЏџњ/.^МˆRЉфЧ?ў1ѕѕѕмО}›Я?џЧCyy9FЃЗлН%„МbХZЄп _/vŒFЃ‘#клл9uъ§§§tuuqхЪFFF№ћ§єєє044ФхЫ—9zє(ЇNbџў§ыŠкл!ф `ЫГ‘вf неЦ†JЅкP<Ќ^Џ—ЧQЉTЂVЋW$(мw+2В^Оžэњ…N ЖЋЩ[nyyПпЯ|Р{яНЧеЋW ƒ( ДZ-ЭЭЭœчЮЃЏЏЏз‹BЁ`яоНьмЙ“ЪЪJZ[[х|r…ЙяЄbы-|Iћ8Nўјџ—ЫE__sss( :::hiiСnЗЫ})++ЃЗЗ—3gЮpхЪ8Р /МРž={P(єєє№Ћ_§ŠййYОјт œN'MMMruмТѓпМy›ЭFkk+nЗFC&“ЁММ|E o…‹—zНž'žx‚ЪЪJŽ;ЦеЋW9{і,зЎ]Учѓ111С[oНХ7xійgљЮwОC[[FЃq[џП!O ЖпJнЃЄ˜Ї€рўиŽy]рлТъЙpqq‘оо^ЮŸ?Я… шяяg~~ЃбHGG?~œЖЖ6jkkБZ­ЈеъЛЮЉлyŽШчѓЈT*œN'oОљ&љ|žљљyYШлП?/Ој"X,ДZэІЦcЕЈЇRЉp8МёЦђ9$!oпО}МќђЫ444Ш“&“‰ОО>nоМI,Уd2qъд)Nžјр>њш#Ђб(.\`qqЧУјCЪЪЪ6•wђqGy@ юJ.—#NГДД„бhФ`0lш= Q,eѕОЉTŠD"A.—УfГ CV [†е‚€fyіьYоyчОјт |>fГ™'NpњєiŽ?ЮŽ;жTжѓпƒЅ˜XГGЋеЪa­Й\Žоо^~ћлп2::ŠйlІББ‡УAss3nЗЏзK"‘`ff†ŽŽ***0™LrŽ<Џз‹ЯчCЋеВoп>9чнV“$\ЇгQ[[‹С` ДД”ЪЪJ>њш#nпОMOOЩd’d2ЩoМA}}=ƒaKПђ@ м•|>O*•тњѕыфѓy*++qЛнї@XН^/ccc,//S[[‹ЭfФ—@ l=rЙѓѓѓtuuёж[oqётEBЁUUU;vŒ7оxƒC‡QYYЙЦ+HЬ{›g3LБакТŸы-48N\.jЕšL&C__бh‡УAee%ЏПў:'OždпО} 133УммŸў9‰D‚ІІ&, ™L†……fgg ‡УдззѓќѓЯoiщqF­VSQQХbЁДДЋеЪЇŸ~J?7nм ‹ЁT*9}њ4---шѕњ-›/Oy@ 6…BЁ`xx˜7nрrЙ8vьmmm8ŒF#jЕZоoѕqвЯ\.G2™$ 133CWW===TWWѓњыЏo9CJ п^V 2сp˜ызЏѓЏџњЏœ?žxŸH$BOOnЗ›§ћї“ЩdиЕk/М№‘H„Я>ћŒ`0Ш‡~ˆJЅ’…кL&C6›ХjЕЪ‹•вuH}TЉTr!СНГКЪ­йlfЯž=иl6ьv;†ЋWЏвппЯџїЃRЉфќzв}кjџBШ@pW”J%FЃ‘={і№ёЧѓюЛяrцЬž~њi^|ёE:::pЙ\Ў2чѓyтё8УУУœ?ž3gЮШ"^[[ЭЭЭёŠ@ И76˜вщ47nмр?ўу?8sц йl–ššNŸ>Э_ўх_ВgЯžml%брq@7ЃбˆгщЄВВ•J…ХbY#‚ЉT*ьv;•••фѓyЪЪЪф"JЅƒС@EEбh—Ы%ЃЮQWWЧщгЇЩfГœ={ŸЯG*• ЌЌ ‹Х‚RЉФl6sђфIъъъиП?]]]ŒŽŽ IЅRhЕZЬf3NЇ“††>Œ^ЏGЁP зыW\‡еj•…GС§!нCI”ЋЏЏчG?њvЛ\.ЧчŸN__oНѕ†Ÿќф'+*Eo%„'`SЈT*vэкEgg'ŒŽŽтѓљшъъЂГГ“'Nаоо.'„†;FU6›•WГЯŸ?OWWƒA2™ ррСƒВ—‚@ [BёЇЇЇ‡wп}—пџўїdГYЊЋЋљсШ›oОЩЮ;E8хтшбЃдзз‡Q(Инn***VьSZZЪ_џѕ_ѓц›o’Яч1 444 VЋ1ŸGЋеR__ЯїПџ}ОћняВИИ(яЏRЉаh4 Ьf36›MђŽ9‚лэ& ЁP(Ј­­ЅВВђЁŽхvFѓl6O?§4jЕšххez{{т7Пљ ‹…џјЧE+ ?ю!O С]‘ОЌиl6:D?ccc–––№љ| аввBuu5С`p…€їГŸ§ŒЋWЏ244„Чу!‰ЯчillфрСƒ477ЫЩŸ@ xYЏКьдд}єчЮ# aЗлy§ѕзyљх—йЕkзšФњ[M4xиl4>ЅЅЅиэvYX“BS ЧWЏзгддDCCƒмž$жHоzХЕZНТЋOЁP`4быѕ”••‘ЭfхіЅXiЉm—Ы…Эf#“ЩЫхфЖЅапесГNЇ“’’љ: CacяOСњ†йцѓyдj5ххх;vŒX,ЦПќЫПpыж-њћћљрƒhllфР[n1Yy@ юJaЮ™]ЛvqрРЎ^НЪФФЩd’ЉЉ)|>ЗnнЂВВ’ЙЙ9–——YXXрђхЫєєє033C<—лвjЕ:thSaЙ@ <†яI… Ојт Ю;ЧииVЋ•cЧŽёкkЏбооŽХbY#Ъˆ№кЭГк6PЋе+rолGЁP гщŠЖ% wЋУX‹й ыхЎ[Я^)жЗѕŽнЬО‚ЏO>ŸGЃбPUUХ /МРммЉTŠссaЎ]ЛЦлoПMYYшѕњGннM#ž@ ›&ŸЯSQQСоН{йГgSSSђjr*•Тчѓсѓљф§—––XZZZгŽZ­ЦщtrђфIаjЕ[.бА@ ОнЄгiІЇЇљ№У@ЁPАsчN~єЃБoп>JJJФ"еb#ћ`ГЖУƒhу^їНлБыyо {шыБк3OЃбШ…е|>ѓѓѓЮœ9УЁC‡фœŠ[eм•К@  ­VЫЮ;9uъfГЅђоЭ “ЩФоН{9|јА№ЦС–BšУс0чЮЃЋЋ‹@ @uu5п§юwyёХ)))й№ј­"ќ~џ#юхцBž@ ‚{&ŸЯc0hmmхшбЃ›Nl2™xт‰'8zє(FЃQx'`Ы -hхr9ццц`yyЋеЪюнЛйБc‡ЉнFV'‚ьіТхrБ{їnаh4LLLААА№ЈЛЕiФЇŒ@ ‚{Ђа+Яd2ёя|‡ІІ&t:н]­ЋЋурСƒДЕЕ ЃX [’D"зыeff…BAUU”––ЎЉB*Ќ‚Ч…B!‡НыѕzЊЊЊhooЧ`00??O<д]м4BШ@p_фѓy ­­­tvvR__ПсўZ­–АџўM‡т @№ИЧ™ŸŸg~~…BAmm-.— N'„;` -F755ЁзыЗœзЅђ@ м•BKl6ДЗЗЏы•ЇP(ЈЋЋЃГГ“ІІІ_t$О"‚­@*•biiIЎrYVV†ХbAЉTŠ9lQЌP‰АUЖZ­–ŠŠ єz§– ‰пZН@№XP(ФЉеjvэкХЈЊЊ*КПFЃЁГГ“ŽŽ\.зУъІ@ œL&C*•"NЃP(0›ЭТoюGјzbйfђмнK.O2™”E’­&ЌG6›%“L&‹ŠH…H‚HII ƒaЭ( Вй,ёxœлЗo3::ŠЧу!‰Яч1›ЭдддАcЧмn7‡c…­ §F‰Хbd2™uћ бh0›ЭhЕZT*еškŠХb+lЃбИЦЃ2—Ы‘H$XZZ’Н.5 &“ ГйМтњ–——‰FЃФуqђљ<*• ГйŒХb)К_,“_S*•шѕzьvћ Б№ИD"A4%•JНfN‡бhDЏзЃVЏ”x EМ……вщє BI,S ƒњˆоо^<бhTф$ёKЊ"њьГЯrј№al6›,–цѓyоџ}>љфІЇЇзєAЅRЁзыБZ­дззгййЩоН{qЛнВ‡Y<чГЯ>уWПњ^Џ€уЧѓвK/qј№aЙ­h4ЪgŸ}ЦџћџOоЏЖЖ–гЇOѓкkЏЁзы;ЖO__яМѓ_~љ%nЗ›_|‘W_}UЮœЫхИyѓ&oП§6—.]’ŸƒС@[[ћЗKyy9fЭu]О|™>ј€ююю5Я–RЉD­VcЕZЉЉЉЁННЮЮNZ[[Wˆ˜ЫЫЫЬЭЭёOџєOŒŒŒJЅVxЊеjєz=‹—ЫECCэээДДДP^^ОmžщB ЫЫЫј§~‰„ђ@ lmж пнШS(шѕzъъъxс…%‘H`ГйhkkуФ‰X­жuл(іњƒхxTЁШ@ иО vЛ@ РььЌьэ$‰<ХМгЖЉTŠёёqЎ_ПN(ж_x“ ZНђЪ+k‘щщiЮ;Ч{яНGww7С`T*…RЉDЃб T*IЅRј§~fgg™˜˜`xxЏзЫгO?Mmm-*•Š|>ЧусЦŒŒŒЌ8ЗєSЅRЁеj)))сњѕы<ѓЬ3МњъЋ477wФОt:Эєє4нннђk­­­8p@вр‹/О`aa€ЉЉ)мn7O?§4ƒ€d2Щфф$_~љ%_}ѕpG\KЇг+Т5Ѓб(œ={–ўў~ЙяZ­–p8ЬЉSЇ())‘Я_hџЬЯЯ388Ш•+WŠŽЛRЉ”…х+WЎаззЧќcZ[[eяHЩkДППŸоооо}…bžVЋХ`0PRRBCC‡тдЉS8pЕZ-ЗЕUžсѕP(фr9bБууу$“Iљѕ­‚ђ@ Ќ ˜ЁЖ:щёъDЯвОfГ™ЃGђЛп§Žp8LUU ІІ@Q)… Š їY-J|S†чvX™Сц(Ь [YYIcc#.\  288ШЬЬЬЖ Eдщt455ё“Ÿќ­VЛfЮjЕвммŒZ­–m‚ББ1>ўјc.^МШтт"jЕš'žx‚W^y…“'OтvЛQЋеЬЬЬpіьY>њш#Ў^НJ"‘ртХ‹TWWSUU%WЛ/œлеj5‡ƒ7п|“ЊЊ*–––рwПћѓѓѓФуqFFFИrх ЏНіƒFƒЫхЂЎЎЅRI.—# 177G8ЦjЕ’ЯчёzНЬЭЭ‘ЩddoРT*…Ячcvv–ііvТс0sssЬЯЯwž‹ЊЊ****фpо\.ЧииCCC,..ЪћI6U$сЋЏОтЕз^УхrЩый3fГ™ЇžzЧћї“Ых˜žžцЗП§-$ ццц8wю/Ој"ЅЅЅыР0›Э9r„ЃGЂгщ‡УLOOЫсp˜ОО>й#ёЏџњЏйБc‡.М)\„]ZZb||œССAвщ4 X­жGмУЭ#„<@ ЖыUлhџ|>Яђђ2ЫЫЫd2љЇДТ‹ХфŸБXŒD"!oЩd’d2ЙЂК\:^б^&“‘ Q)QА$ЮЭЭЧ™œœфўчxїнwWˆn*• ЕZZ­–зh4hЕZДZ-zН^Ў^Їзыбыѕ ŒF#&“Iўнl6ЏH№,ЕЃбhфЖ73Vв˜оЭгЎиО@ иўЌNеPYYIGGFЃ‘xŸOіюЫчѓиэvъыыбjЕЄR)ЂбЈ,мЙнnВй,ŸЯ‡BЁРbБЭfх\ˆгггфr9”J%^Џ—ййY‰pGЋЎЎ–…GИЂ<88ШшшЈ\ЅЗММœX,F$!гззЧииnЗ{MhіjЬf3O?§4пћоїащt,..’Щdxїнw™œœ$•J1;;K,л0я›Aё'ђ'И\.2™ ЁPˆ[ЗnёЯџќЯ\ИpŸЯЧммПњеЏиЗo‡CіFмjЌ^x››укЕkx<ђљ<---”••=ТоBШ` P!‰rщtšT*E<gqq‘H$B$aii‰ЅЅ%"‘бhTў;FI$ЄR)Y”“:Љ]ЩыNхŠyє­Г]]еLj+‰0??ПbEИи*sa8mЁwє{Ёи'‰tвOЉТšTMNк, VЋ‹Х"oVЋ•’’ЌV+zН^7#њ сN ‡ƒііvкллщээexx˜+WЎpј№aZZZuїї:яŠx‘H„ОО>й[Эd2БgЯ>Liiщš…3—ЫХО}ћ8tш###фѓy|>уууxН^Šž/›Э’Ячбh4X­Vl6›њ+хЬ+œл- ЕЕЕ8ќ~ПœŸozzšC‡‹Х˜%`2™иП?БXŒББ1Тс0rhЊЧу‘=ї NЇ“ЊЊ*JJJфўy<ёxцччщщщЁ­­ Їгyз1–6ЉHˆУс=х”J%:n]OМbmIceЗлйП?ўчN,умЙsФуqИ|љ2эээzљ=юHb^8ІЗЗ— .Эf)++уР[JЄBž@ ‰ЭфUЫхr+ЖX,&‹t’8‰DX\\$Ыb]4•Ны‰„,ђIэHb]:–Нш …КТ~ i•~†Оzи­кZ,МЗ0$Wъ‹$ѓю+ ЧБА_…"_ЁgŸД †}’А'…ўZ­ж›$њIbŸ$Вњ>ŠМy@№эС`0PWWЧГЯ>Ыєє4@€ызЏsюм9jkkWф'лѓB:fff†>ј`PЄP(hnnІККГйL.—#‰0==M4Рh4Вkз.ЪЫЫWф"“цNFCEE;wюDЃбАММ,{дЂBž$.,,JЅИuыSSS,//wФСццft:нŠJБддд‡eЁjrr’l6K(Туё …0›ЭŠ~RhЎХb‘НљJJJАйlиэvьvЛ,єIbŸЪk41 шt:y 6Ž+‚­ЩъЯpЅR‰ЫхтЛп§._~љ%KKKŒŒŒ№Щ'ŸаббA{{Л\`;фSM&“ŒŽŽђЏџњЏk<и•J%ќЧ,{Фчr9‰сpXЎЊеjЉЎЎЦ`0Ш"ръ4fГ™ђђr4œ $‰DжєG §№Ущюю&‹1<<Ь№№0Й\Žšš:;;9rфˆ,<хѓyДZ-NЇ“;v0<Ÿ\e-  ƒ,,,Чeс*—Ы­Ѓдj5ƒ‹Х‚Z­–ѓЩц•“Ф*ГйŒЩdТd2ЩB”фЅЖ:нjЏ6I№[+]џъdЬйz^zвяЋ= ЅБ“rі%“Щyќ s§E"bБи ‘SкWI4”B’%!Q_ilѕz=%%%И\.y+++“ЗввR‡<ЖвJЁКХФНѕТ”ЖŠ!,‚?|–FіьйУwОѓќ~?ƒƒƒ|ѕеWќњзПЦjЕВcЧŽоYАu?я———™››[с&ЁVЋхАXјCŠt:-чiSЉT˜L&Y,6j4šB_aЎпb§ёћ§ќтП@­VЫе]“Щ$vЛУ‡sњєi<ИbЬU*•\˜умЙsD"ІІІ˜ŸŸg||\чœN'иl6™L†`0ШэлЗIЅRx<Тс0 …FC}}Нк›NЇ єііЪэY,іяпOEEƒІІ&L&‘H„ЙЙ9™нPШ[\\ф§їпчу?–+б& ­­­МќђЫ<ћьГ”””MkВ…яKaЪ&“IО’MЕQоНGEБќ“Ћ_ЫfГФb1.\ИРйГgХbБpша!Nž)_сТТТ qOњ{aaAОЯ +D=щ>KЦ{MM,ъIЏFДZэуx#НѕТ’@№p(ќжыѕ|>.— Н^ПbВйЌ^КММL>ŸЧd2Щsхjдj5NЇ“?њЃ?ЂЖЖ–‰‰ >љфо~ћm’Щ$ƒƒƒœ;wŽЦЦF^zщЅ§еh4”——SUUХшш(Щd’p8LWWУУУD"hhh@ЏзЃRЉЈЌЌФщt222ТЭ›7БйlrE^N'ч”гщtЄгiцццјъЋЏˆFЃrˆ№фф$?џљЯe!дыѕ299)їЫяї3<<ЬэлЗБлэEяƒйlцщЇŸцфЩ“,--qўќy~§ы_уёx˜™™с‹/О ­­7оx—Ыu_Яйьь,###ј|>љ5)к 0?оЃІ˜Дк†…BtuuёілoѓљчŸ …ЈЋЋуЙчžуЅ—^Кя\‚!ф @@qc@|2™ ЉTŠP(Фќќ<~ПЏзЫьь,“““В˜чѓљ…Brbg)з‹Ых’+ЄJvЅЅЅђцt:БйlВx' ;Х*ЅnдїѕЎC„aоauЈŽі#!…пю+yN&“IЙ‰T|D Ы r˜ЎTE.‰˜%ŸЯЫХ5JKKЉЈЈ ЊЊŠЊЊ*ъъъdQOqЭf3fEŽНюсVќB(л …BAYYЧ'‡ЂЛЛ[ўќ~х•WЈЉЉY‘3o+}vK9dЅъяХФщZЅъЇmmm\ЙrЏзK<чж­[\КtIC•ЊГf2ІЇЇЙvэ===r;•••466RZZКц\JЅЃбHkk+mmm477Ѓеjщээ•ЋИіѕѕqюм9>Œгщ”ч|IhtЛн˜ЭfйыўњѕыЬЯЯ“L&q:Инn9Ї_uu5хххєїї3::Šбh$ w„мццfЙRЌ~;00@2™юЄ[™хНїо“Џ!—ЫЩ6#мёHœ˜˜рж­[ьйГЇшЂЄFЃЁЎЎŽPVVЦ№№АМ 899Щ‡~ШО}ћф]ынЯеЖЂdы~ійgєііВАА€BЁРh4вжжFyyЙ<†гГЛоТІпяЇЋЋKЮ)шїћЉЉЉсйgŸхЅ—^bїюнВјМеBž@ О•Ќчэ$^X^^–‹R,,,рѓљahhˆёёqІІІ˜››#‹‘ЫхPЉTrБ‡УAII NЇ“ђђrмn7еееTWWSYYIyy96› Н^/{зн­ŸХњZьѕТœ%л•ћ&яg_Љ€…йlЦхrЩяKЯˆTl# тёx˜evv–™™fgg™ŸŸ—ХНd2ЩФФУУУ( єz=vЛ]Ю­зддФЮ;qЛн8NJJJ0™LшtК5‚юvОП@№8Во‚Ÿ”ЛMЉTR__ЯK/НD:ц­ЗоbhhˆkзЎ‰DHЇгМ№Т ьиБГйМЦГњqFюFaОКbу!хіэььфвЅKLNN …№x<МћюЛ(•J>Lii) …‚p8ЬХ‹љня~ЗbŽьшш ЃЃCЮ;WЌReњввR8Р‰'№љ|ЄR)М^/—/_ІЗЗ—#GŽ`БX€?ˆ€ЋsкMLLЫх0 ”––RSS#я/-Рђм.]ЋЩdЂЅЅ“Щ„BЁРяїгзз‡зы%“Щ VЋхBcЋяГЩd"‘HАДДD.—УуёаллЫЋЏОКnШЇTpТd2бооЮЩ“'Й}ћЖ!№еW_qэк5*++e!oѕyГй,‘HЏз+ ƒєїїѓж[oбппO*•Тd2бддФџgяНу:ѓ§ўзєо gX†ЄXХ*‰j–mЙI.ыѕЪыmіо‹ю  A‚ ?ф—ќљ1@€ $HЛОыдfЏ™ IDATНЛkЏwзmmЩЖ$Ћ“‹и;9У2ЌУNџў я9; %Ъ’)Šz^Р‡3Ї<ч9gцљœїѓ)GЅЈЈhWнЇ…ЂЄШ™ххeй[ёыЏП&уvЛ9uъ?ўё9vь˜,ЊяІsк.BШСУVтG~hG$aff†ЎЎ.кллЙyѓІbFeЃў:ыьѕz дддШKyy9^Џ‹ХrG>™BэкŽїеvЮяq~8и*tЂT*e‘ЯfГQ\\LKK‹l@ЎЏЏЫyz`hhˆББ1BЁЫЫЫrВъ‰‰ Оўњk9‰x  ЁЁаккJMM .—ыŽ0ъBз[\k@ иYrЧn•JE ряџўябjЕќу?ў#tww399Щјј8?џљЯ9tшœKMbЗ{шнOб/iн––NŸ>ЭЬЬ чЯŸ'Nsюм9ЦЧЧilldпО}h4FFFшшш`rr’D"BЁ ІІ†гЇOs№рAT*•l{ВхЄОїx<МњъЋ|ѕеW,//‹ХсOњЕЕЕ›< U*•••8”JЅœnn d>ŸПп/CђІзыѕ$“IYLгh4иl6ЊЊЊащtВwaGG‡œащtrша!кккфаTщ<жззщююцТ… Ќ­­177GWWС`ŠŠŠЛ^I№|ц™gИxё"УУУDЃQцччљьГЯиПП|љ§‰DИxё"ыыыЈеjТс0ЃЃЃtww‡eвяїѓГŸ§ŒУ‡cЗлwе}ZшžЬd2ЬЯЯѓбGёПџїџІЗЗ—ѕѕuмn7ЏМђ џюп§;ЖєT|\Bž@ žHrx<Юќќ<###єіівннЭрр ггг,--‹Хиии ™LЪТЯчЃККšЪЪJіэлGyy9>Ÿo“•фI%Bly2PЋеr8‹ЧуЁЉЉ‰h4ЪъъЊ\ exx˜ссaЦЦЦcqq‘ Й‚юрр gЯžЅЈЈˆ}ћібммLmm-ЕЕЕ”””`ЕZ Šz@ xД( Ьf3oОљ&:Žп§юwœ?ž••оџ}цччљС~РЉSЇ6 EЛ‘BоNїВaђsОєвKdГYєz=/^$299ЩТТ—.]BЁPЧх‰RЛнNcc#ПјХ/8yђфІ\qљТg~ћŒF#---ДЖЖЪХ(VVVјќѓЯyёХБZ­8Ny§ŠŠ <Z­VpЙ\ј§ўMž€VЋŸЯ‡лэоT1VЇгсvЛ)//GЋеВММЬрр }}}ђ: ќшG?т{пћо“ЖkkkмИqCЎ˜‹Х˜œœфъеЋxНо;ЮГаx_]]ЭшээЅППŸl6ЫеЋWЙzѕ*•••ј|О;ЖD"\О|™›7oЂP(HЅR$ bБЉT ›ЭFkk+ЏПў:?љЩOpЛнЛ:—œBЁ`ee…ііv>њш#ўјЧ?299I2™ЄЖЖ–W^y…_ќтджжЪžx3BШСƒd-Dc@ xИм€ЅT*)**тєщг˜L&_|ё‹‹‹|§ѕз,..222ТщгЇihhРjЕnЪеЕ~ЛЅЊЊ’–4Q)БЖ* |>/НєNЇ“ццfnнКХддKKKlllЩd0›Э”––RRRBCCO=ѕGŽ‘sВIЧ2 иl6ьv;ƒAЎ(+ЕAЃбрѕzyійg™˜˜ •JАККJGGЕЕЕиэvйNѓx,юцХL&Y[[cjjŠссaњњњшыыc``€ййYVWW‰FЃЄR)4 %%%455бжжFKK еееИнnЬf3Z­v“ЈЗ›<=рqчnПЉљіˆTHс_ўх_јЫ_ўB?ЋЋЋ(•JŽ9ТЫ/ПЬгO?M]]NЇSЎ\Оc}WЄгiжзз‰Чу› XX,–‚тeюџw#“ЩАББA<'NЫљэrS’@a›.ВББA:FЁP RЉАX,w„’ђK9ърvN<“Щ„VЋн$4JщSЄЖHb ^ЏПc]ЉШUnЎдvЩ[1‹ХdБL*Ќ‘_мЌPЮКx<.чоSЋеX,RЉ”œоEкŸ”Т%ЗЏ3™ БXŒX,ЖЩ3д`0`0Шd2ЌЎЎЪ"_.JЅr“ —{оЙmнiћaЋˆщњNNNrуЦ ўєЇ?ёЭ7п0??JЅТяїsфШ~њгŸrьи1ŠŠŠP*•лі"}Bž@ vœo;єšЁ.”7D2~SЉЁPˆЎЎ.ЮŸ?ЯЙsч`eeE6dT*EEE466rј№aŽ=JkkЋ,мm&ћИ є[ёmЮ#ПџЗcИпЯƒЮНжЙлчћѕи iЖytt”K—.qѕъUКЛЛ'‰ШыFЪЪЪhkkудЉS9r„ŠŠŠ‚aPЙье~‚GХн~k—––јЫ_ўТяџ{Ојт ццц€ПCx§ѕзy§ѕз)--нжYhМќ.'Уtь~аcoхэxЏэЖгЎэкљ6хНьћНs2єлюcЛћп-žєйтт"п|ѓ њгŸјьГЯnчd”<ўѓŸoђТ”МdяХуb !O ;Юw%фIеЊ"‘ууу\Мx‘oОљ†žžfffX[[#‹ЁеjёzНдддpрРџќѓ<ѓЬ3ддд`ЕZŸ8!Џ;-фх.„МЃP_' цццшшшрѓЯ?чђхЫŒŒŒАВВB2™ЄВВ’—^z‰—_~™У‡STT„FЃЙ/1xЛыь„'‚gЛCOў@~ЗКT*ХммƒƒƒДЗЗs§њuњћћ™ššbyy™l6‹гщЄЊЊŠ††фАYЏз‹ХbAЋеосzП—…Ђt:M"‘“Kyм”J%сp˜ББ1666№ћ§TUUЁгщˆХb,,,АИИИ)ЬS EБлэrUЗќi])ŒF*" А‰DBWбh4hЕZ9ŸI:fccCо^ЁP`4хэївѕйъBЁИ]Un}}}SЎЧоо^zzz+Д™L&ŠŠŠЈЌЌЄЅЅ…#GŽаддDii)&“щЎ…{Љ/`ЇЩџ /dЫDЃQ‚С ннн|ѕеW\Мx‘"‘‹…@ џv>|˜ъъjl6л!ЄЙЧ)tlСюFŒЛeЋ{w}}ББ1КЛЛЙ~§:7nм`dd„ЙЙ9Вй,~ПŸC‡ёьГЯrј№ajjjp8wxпmЗ—k!„<@ ь8SШK$,//o№nоМЩШШбht“ бии('0И\Ў;?IF№ќќ<НННмМyИ-žcГйИzѕ*===$ ž}іY~ќууt:щээхЫ/ПЄЏЏххeЂб(Щd…B^ЏЧхrQYYI[[ Инn”J%‰D‚ѓчЯ3>>N4ХnЗЫž:Ž……њњњшшш ЌЌŒЦЦFЊЋЋƒ\П~ЩЩIрv‚ъ“'OЪ3Ў{Bп…l6Ыкк333 аннMwwЗ\}YА==zTО.ХХХшѕњЛц`њЎgћ`Џr7[Bš˜‘rХѕїїsётE.]КDWWЌ­­aГйЈЊЊ’#ИнnŒFуE%ђй‰пl!D „Bчp;_№ъъ*ЁPˆўў~Ў]ЛF{{;}}}ЬЬЬ бh№x<дддpфШžўyšššфIфБ_—{YT­СЎхnj*•’‹ttt№—Пќ…+WЎШIfГ™ђђђM!†­­­ВxЗеьѕУ ™x…B|њщЇќУ?ќƒ††JJJјќѓЯ™››CЅRaЕZљоїО‡Ус ЗЗ—п§юwttt RЉd-‘H‹ХШd28ž{ю9~ўѓŸѓдSOсp8H$|ёХ|ќёЧЬЬЬPVVЦпџ§пуїћбщtLNNђС№Ћ_§Šl6ЫБcЧјлП§[*++Q(єїїѓџўпџу›oОAЋеВџ~ъъъpЙ\В‡Т^Й.…(”›PЉTЪ•kjjxц™gукЕk\О|™ЎЎ.&''™ŸŸчГЯ>ЃЃЃƒpђфIž}іYіэл‡Ус蔇Iкџ^юK@ xдHљКŒF#ЄВВ’У‡sётEЮž=Ы­[ЗXXX ГГ“žžЮž=ЛЩ–ЉЈЈРnЗoђL/t илcЃрёЃMŸЭfЩd2ФуqYРръеЋ\Кt‰ўў~–——QЋе8N***8rфЯ>ћ,ЧŽ“+њJф ƒ{!ф `зrЗAx~~žoОљ†?ќЯ>ћŒљљyЙ’Їлэ–KЮ?ѓЬ3TUUa6›7эWфћЋ:??м6|аыѕФуq9м8WшIЇгшѕzjkkЉЏЏЇИИ€ЩЩInоМЩ­[ЗƒќюwПУh4тp88qт:ЧC2™dnn…BAOOБXL‹юээ•2>>N,У`00::Ъшш(3338NYРЪїЈ|($BЋеj\..—‹№§яŸызЏѓйgŸёйgŸ1>>Юьь,Ÿ~њ)—/_цЃ>тG?њ/Нєееешѕњ‚…cђ)‚{ГЊ˜ЙПГvЛcЧŽбккЪЋЏОЪ'Ÿ|ТЇŸ~JGGГГГ 144ФЇŸ~Ъў§ћyњщЇ9yђ$MMMЩуt&“йбпk16юХн&ТЅџгщ4бh”ЮŸ?Яз_Э7˜˜˜ЋјšL&ЪЫЫ9yђ$gЮœсРИнnT*UС){§оBž@  rЫЭ_Кt‰?ў˜‹/2<<Ьккеее=z”“'OrєшQќ~?VЋN|ћ"љэиЋdГY4 ѕѕѕМѕж[TVVЧёљ|X­Všššјџё?Ђзы)..Цh4АВВТ_|СЏ~ѕ+._ОL2™ЄЇЇ‡оо^<ˆVЋЅЊЊJ6К666fqq“ЩФммSSSr[Тс0333,--ЁVЋeeeИmЬеззcБXPЉTrлї*лѕЊШѕдѓzНœўјcъыыikkурСƒдззуёxащtwh%вН™ЩdXZZb||œžžЎ]ЛЦЭ›7™˜˜`qq‘h4J6›ХыѕвииШёуЧ9~ќИœЖХh4nЪk-ёЄxЂ !O Л’ќyuu•ЁЁ!Ю;ЧЙsчшээ% ‘Эf)//чРœ8q‚C‡QUU…Чуй”;эACcїЂAя‘ЈP(МђЪ+Мѕж[иl6RЉjЕ“Щ„RЉЄЂЂ‚ВВ2 *•Št:- €вg—/_&›Э ™šš"ЂзыЉЈЈРчѓa0ˆЧуLLLААА€NЇ# ‡1 (•J666…BLOOЫyЋЋЋЈT*l6 рЩ Э5P …лJЈеjl6fГЧCEE‡тЪ•+\НzUЎv+…Їїііrъд)кккpЙ\h4š'Њ_`Ї)є.Ž’Šp•””аммЬѓЯ?Я7шщщadd„љљyƒrюкъъjъъъЈ­­ЅЂЂЧƒЩdКЃ@Ц^L"ибrEхx<Юђђ2333 бззG?ЃЃЃLOOГИИH"‘Рd2QWWGCCЭЭЭ455Q]]-Oа+•Ъ;ЁхЗaЏ#„<@ ьjвщ4333tvvrюм9>џќs†‡‡Щd2xН^8vьGЅББЏз+{рС“33ї0PЋе”——sтФ ***6}–л’їмьь,kkk$ ВйЌќžФккЫЫЫФуq”J%>ŸO.І …˜ŸŸgjjŠL&УЬЬ ””” зы ƒЬЯЯ322‚йlfzzšh4*‡шVUULhМWиJАЫ§Маћљ^jЕЛнŽЭfЃДДT6ŒПќђK:;;™ššЂННЉЉ)&&&˜œœфЉЇž’УбХŸ@ |їђ 3Fќ~? ДДДpыж-йл]Њм944Ф№№0эээЫ‚^UUхххј§~œN'&“ ­V+‡"цSќЦ &йl–T*E<gqq‘……ІЇЇe``€ЁЁ!FGG™•э;ЗлMII 555477гкк*OЮK^ю•њуIЙ…'‚]AО`ЭfI&“LOOѓљчŸѓч?џ™ .‡БX,TWWsтФ ^yхž~њiьv{САР'e@HљKKKЭ§˜ЭfI$tuuqіьYЎ]ЛЦииKKK$“IљzEЃQy›D"A<'•J`Гй(++Уэv3==M$att”h4J(BЁPАџ~œNЇ|­1ЬЭЭЧqЙ\”––тїћЗL№Н—й*ѓV†lюК‡ƒC‡QSSУјјух ФГГГ|јс‡  yх•WhllФbБl:ю“жп@№ мPVШГH­Vуp88|ј0ЭЭЭЬЯЯгппЯеЋWщшш`ppPžXЛyѓ&ђфM}}= дзз№zНX­V ƒ,ъ=ЬB[mїАХТBћ{д‚фNкžъ\яv\Љ`E*•bccƒH$Тђђ2С`ОО>ybvv–t:FЃСh4R^^NYYЭЭЭДЕЕбввТО}ћфД.вў…ђW„'‚GЪVUЩd’ЩЩIўЯџљ?|№С ’NЇ1 ?~œЗп~›^xввRYР“ƒќЗCЉTЂгщфем~L$LOOѓЫ_ў’Пќх/В№&…pj4 JЅRо&7љ0мЮ§№ћ§tvv’L&`aaP(„С` ББПпO?С`[ЗnАИИH*•ТnЗSYY‰УсиtЌНЦvЅпя~ЄkaЕZ9zє( œ8q‚їпŸ?џљЯŒбее%{xМѓЮ;œ>}zSAaD С§ёm3 MШшt:JKK)--хЙчž# вййЩхЫ—Й|љ27oоdii‰ХХEщъъ’+}жжжвввТhll$рp8ащtїOwJ лы|—bпNˆЅ…>“^KyЌgggщяя—EхЎЎ.BЁыыыЄгiy;ЋеJee%фФ‰9r„ђђrЬfѓv§У<ЏН‚ђ@АЋP(,--бооЮЏ~ѕ+ОќђK‚С †КК:^§u^}ѕUъыыїМ˜Г›X__ЇННііvТс0JЅПпЯ™3gxњщЇqЙ\ŒŒŒ№ёЧѓ‡?ќЁр> ХХХј§~ДZ­,фi4BЁfГ™њњzŠŠŠ№zНŒŒŒаееХђђ2ыыы( œN'•••Вp(јіFŽ;FQQ---ќіЗПхЪ•+,--ЩbэЬЬ ЏПў:EEEЈеъ=Ъ, вяАJЅ’‹QЕЖЖrцЬ†‡‡щъъЂЋЋ‹ССAfffX[[#гооN__}є‡ђђrЊЋЋЉЎЎfпО}”——ЫЙUѓѓъm——ХјџhШ-T!yнƒAFGGbppббQBЁЫЫЫD"bБЩdN‡ЫхЂММ\ЏЋЋ#рrЙ0hЕкM,Фuо!ф `з P(…Bœ?žїпŸsчЮ177‡нnч№сУМњъЋМєвKL&“ряСЗљ-Дn*•b~~žххe’Щ$jЕ—ЫХ /МРёуЧбjЕrОМЛQTTDYY‹…p8Ьшш(pл(ЌЏЏЇКК—Ы…ЯчCЁP055Хввh4ŠŠŠЈЌЌзў[яЇP(0›Эддд`Гй№ћ§ќсрыЏПfbb‚7n‹ХˆFЃœ>}šъъjt:]С™xq=рЛсnПЏ’WМХb‘ ЕЖЖ2==ЭФФ### 299)Ш-6p§њu\.^ЏŸЯGii)@€’’М^/nЗ‹Х‚^Џ/˜ЮbЋtїsїbЛуЬЃ‡vђјл=жНњюnŸKз6NЧ‰FЃ,..277Чьь,гггLNN233#ч5^ZZbuu•x<ŽJЅ’mŒввRЊЊЊЈЊЊЂВВ’ввRМ^/vЛƒС & ПBШС##аžхмЙsВˆЗАА@II Я<ѓ ЏОњ*'Ož$ 7|З(•Ъ;fK766˜œœФщt‹ХИ~§:“““wнгщЄЄЄЧC8fii И?O*†aЕZ)..ЦbБШI3™ ‡ПпOIIЩNœђƒ^ЏЇДД—Ы…ЭfУхrqіьYnнКХѕызхJs’'lnЈ­@ v–|(›ЭЂT*быѕшѕzмn7UUUD"˜˜˜`llŒббQ&&&˜žžfnnŽp8Ььь,( ŒF#.— Пп/Ч~ПЏз‹зы•Ч‹Х‚йlFЇгЁбh6U-ФNLјьЦœy…ИŸЖмяdьНЎСНі!хЗKЅRЌЏЏГЖЖЦъъ*KKKЬЯЯ3;;K0$  …˜нTєLВ=|•——SQQAee%хххј|>‡œТхлžЋ@y@ иd2"‘чЯŸчНїоуТ… Ќ­­сѓљxѕеWљЩO~Т‘#GАйl›ђЎ‰СўюмЋђsиIџHu:<“*ЭИNOOѓџј\Йr…t:ЭТТёxќЎЧ”*№•””аззЗ)o[iiЉlрIbпаа™L—ЫEII NЇѓ~ЛBG!я<“ЩФ3Я<ƒЫхТхrёћпџžЮЮNЎ]ЛF"‘ Nc4ЉЊЊоx@№ˆй*_м.^хp8p8дддЧY]]% 222ТРР}}}LNN …dЯїP(ФФФйlV.Dрёx())‘sѓ•””PRR" {fГY.žЁеjQЋе(•Ъ{ |пі<%;™‡.wœнJˆЛ—–я1™ЩdфЂ™i$ IDATщtšD"!/бh”ееUVVV…BLMMЩžœ“““ƒAVWWйии ›ЭЂVЋбщt˜ЭfЬf3nЗ›ттb*++ЉЉЉЁЖЖ–ЪЪJмn7ƒсŽЪљmоMзљq@y@ xdHƒіњњ:ќђ—ПфкЕkD"JJJxы­Зјзџњ_SUUЕ)ЄOpџlw6VЭђЗ5ДЖЖђУўxрЖwОЩdТnЗуѓљ(++#ШUGKKKёxIЅR„Уaў№‡?№ы_џšызЏЃRЉ8x№ џщ?§'žzъ)\. Ўƒ@ <м-—\&“!™LFяШ6??O(" 177Чќќ<сpXЖ‰„œЋOЋеb00ђb6›хќz6› Лн./VЋUЯ4›Э˜L&L&“\A­VЃRЉP*•ђп'мXiIЅR$ жзз7-‘H„••VVVX^^–_ЏЎЎЪЫњњ:бh”ѕѕubБЄR)ріФЋ^Џ—m1ЩvЫ_œN'vЛ]ЉЮююхiw7Џбнbп?.іŒђ@АуHтЭиияПџ>џїџў_ККК№zНМљц›ќєЇ?хФ‰шt:y›Чe`нмoш‡mLmטлNЛrзїУwGўѕš˜˜р7Пљ П§эoщъъBЃб№ілoѓ‹_ќ‚ЖЖ6єz§#jЉ@ „{ї™LFЎXКВВ"{wЭЮЮЪŸ4щЖДДD$‘…ЅX,F<'™LЗ' 5œWЭbБ`БXdсNђшГZ­rA\1а`0 зыeЯ/Щ›O­VЃбhфзв"…єц.вyц‡фnѕї^}–ћюпм|УЙџK‹$ЪIK2™мДHžqБXL^ЄPgЉ…ДЌЎЎ‰DˆD"Ќ­­ЩЏЃб(Щd’T*ЕЅШ* ЌNЇЇг‰ЫхТчѓЩaивЋеj•‹›мЭnМ_лLyпZ+‚GB"‘рЦœ={–ўў~єz=ЧŽу7орШ‘#шѕz‘э!qПЙcvпЯўД2›рСЩ7ЈЫЫЫy§ѕзY]]•`њщЇдддPRRByyЙИ&@№rЏпnЅR‰С`Р`0рrЙиЗop;ЂBј–––˜ennNн …BЬЯЯГИИ(‹KБXL––——™ŸŸ'•JЩљy•JЅ,ТI‚Ÿ$№IТžфБg4e0Wь“ђђщѕњ;„=•JЕi‘„>Љ0GnŽќ•J%їŸVЋХh4nъG)ВСуёШ^v^ЏŸЯ'G< t:н}MИ~[@Лјі!O „ййYЮ;ЧЕkз№ћ§М§іл9rГй,МЎ‚]B6›ЅЎЎŽW^y…ЩЩIо}ї]&&&8{і,UUU”––nЪ[(ОЗ@АЗШїB“Ф"ГйŒзыЅЎЎN^Oђ$“ђшI!ЙRn6Щ“onnŽp8,чм“rЛ*АP…BБЅPЇVЋбыѕ›Nw‡7ŸFЃ‘зЯ сЭѕЄsЫѕЈЫюr…Км\sвљllllZ$Nк6™LЪЏ +„$|šL&YД“„:ЗлMQQ‘,иљ|>JJJ№x<˜L&ЙOдъ­х ­<фФП;Bž@ vœT*ХХ‹щььdii ЏзЫ[oНХ‘#Gфi`ї RЉЈЋЋу{пћзЏ_gxx˜ЎЎ.._ОЬЁC‡К‰@ иHžpfГЛнN …Ћd2)‡‰JљкVWWх|{KKKrn7ЉƒB* ~ЙТ—”зO*кlђЈЫїКЫЕНWШэVфŠ\…Bi%=iЩ§?џ3i•J%чœ“Щ›NђF”МЅŸяЎГƒрЛ!п˜Яѕ@оs8ДДДpъд)Тс0сp˜ююnККК„'{˜ћM‘!Є<уr‘8)є4зƒOђ^“BOЅМpбh” љЕTИAzOкFђ€“МсrCPsCQ%o8Љ’\~Шl*•bccC>­VЛЩN•њEЧђНs)мUкOюЂгщd.ПPHўћЙ"NЇ“Н ЅpтмЂ љ!ТЙб.їђzТоюF<- `GЩfГєїїгййЩтт"^Џ—ƒвккŠС`з„@№шЩ5ј5 ~ПŸгЇOsсТz{{ЅНН_|Н^џФTСlЧv“„.F€ЩdК#cЋ|sЩdrSˆj<—)œ5џџмзмтR(Ћ$фIžrRиl$abb‚Ы—/“JЅ(//gџў§Ычšыё'…цц‹wЙ"žк›т›ћž$ШI‹$ќЪяwПфzџн- рё@y@ иQ2™ зЎ]cbb‚D"A рШ‘#8Nya\;ЫvОsйl“ЩФЈЏЏgjjŠЙЙ9zzz‡Уј|>!ф `лф{ƒчzKЂеЗйЇ$ЬI‹$Юх~V(ф5w ƒ|ўљчмИqƒt:Mcc#яМѓЧифљ–ы§VшunоНмmva[я-„'‚%“ЩpуЦ VVVаjЕTTTаииxGЎ@А{дj5.—‹жжV:::`llŒ‰‰ \.—ьa!С§R(ьѓ~ЈsQЋеИнnљј‹ŸЯGyyљЗк_ЁjЏ…олЮЖлнnЛэ<~ˆiS@ ь(™L†ЁЁ!‰vЛттb<ЯЃn–@ и …FCuu5NЇ“l6ЫЪЪ ccc›’ @АМыЖ3йœ›cO ј.y@ иQВй,333$“Iьv;“ЩˆйA`З’;ƒЏP((**Тсp VЋ‰ХbЬЬЬJЅq+@№8qПv_nБ†GСнDК{yКzЛч"ьcA>BШСŽ’ЭfYZZ"NcБXАZ­"ТЦЁ0мЛ…BеjХl6ЃеjIЇгЌЌЌNЇuг@А(dџфkи[‰kКЛ;iГ=ШБ„mЙ7Bž@ vœx<.WСдщt"Aўф&`Ю7:s“)п˜kяTž”o;ƒОнѓz"ш“cцn:R>ЅRI6›%•J‰p"@ |gьхёV И_„'‚GЉTnЊіЄГ•’Эfйии`}}d2I&“AЅRЁзы1h4šm vвІ5œ$ eЋm %ŠоIžTС*_Ю­і—Пˆ‡.@ yм‘ЎY$a}}D"ХbСbБљфVVVЖ]ЕMтШ‘#шѕzЌV+МћюЛ,,,\WЉTЂеjБZ­”——sєшQŽ=JMMьy8==ЭgŸ}Ц_|€^ЏG­VS\\Œбh”ї•JЅИuыяОћ.ЁP€ЖЖ6t:vЛЎЎ.о}ї]цчч7ѕХНЮMЉTb4 8Nєz§Жћb/‘ЩdXXX`yy™d2‰^ЏЧяї 1^ `—@ v…BAUU,--133Уќќ'ЩK07|YЅRaБXˆD"O\HИV+хУ!ЃP(АйlЙhY@ јюBž@ vЅRISSWЎ\aqq‘ёёq†‡‡ЉЎЎžL ›Э‰DhooчзПў5зЏ_guu“ЩDee%ЧЇВВƒСРввннн\П~P(ФШШkkk(•Jмn7uuuР_…Јмў,дЗRСŒмџЅт#jЕšЊЊ*Ž=ЪђђВМN8fzzZіhSЉT”——уѓљаjЕђz Иню‚ЧАX,444Ш^mыыы,,,0==Этт"/^$“ЩрvЛЉЌЌD­Vпб~•JUАPŠtМмЯЄї4 ~ПŸЖЖ6ТсАмџЉTŠоо^–——IЅRh4М^/r­RЉФbБрt:їМїY!яФl6K:fmmžžТс0ƒŸЯG иtэ@ п {л СЎCЉTrєшQ>ќ№CТс0уууДЗЗѓт‹/kž2™ ГГГќЫПќ эээЌЌЌ зыЉ­­хпџћЯЫ/ПŒзыE­V‹Х˜ššт—Пќ%|№ЃЃЃ„УaўјЧ?rьи1мn7NЇѓ[З%Зџѕz=яМѓgЮœ‘=а _~љ%яОћ.}єƒwоy‡7п|Зл-oЏгщ0›ЭЌЌЌl:†FЃЁЎЎŽџњ_џ+eee(•J‚С чЯŸч§ЏџХфф$‰D‚ЁЁ!ЮŸ?ЯїПџ}ЧЗ>Ї\ЌV+/Ој"G•ЯIђвћЯџљ?sхЪVWWхѕўУјmъЇгљФфЧЫЏpЧЃГГ“p8ŒзыЅЖЖ–ттb‘#O `Bž@ vЩ#ЏББ‘P(ФЬЬ —/_ІЏЏккк=—w,зГi+‘r}}‘‘ОљцЙC рх—_цЕз^УсpШ"‰NЇЃЌЌŒŸ§ьgƒA–––X^^fee…K—.q№рСћН UЭmЏХbСd2mzпnЗoВ”J%VЋЏз‹ЧуйДНJЅКCШS(hЕZмn7^Џ­V‹ЧуСd21>>Ю{яНЧтт"‘H„`0( kїУV}­RЉ0›Э›r2Ігi4ЭІP_)žлэо$фIћ€Џ ќИ‘ЭfY\\фГЯ>c||œD"A р№сУw&@ |7м"СwˆBЁРыѕrтФ JJJˆХbєѕѕёбG‡IЇгw—і"+++ŒŽŽЪљьT*eeeДЕЕсёxфмc№змruuu455сѓљ€лyы™%oЛ0E~иkО№(х‰Ы]Ж sUЋе›жЙ›‡ЅцЊеjeЯ=‡Унn—…Вt:M2™м”‹/—ќћdЛїRЉМуœЄ\xЙэ•жгjЕ›жS*•{^Д*НЖЖFoo/Ÿ|ђ KKK8iiiy"њD `7 „<@ ь8ƒуЧгммŒХb! ђЇ?§‰ŽŽŽMЙиžжзз …Br)?лО}ћ ц€ƒлХ^ЏИ-bЭЮЮВИИH"‘јNлЛUўДќз[‰jRЎЕh4J$auu•P(Ф№№0УУУrћЕZ-‹e“Їмvлw?B№Нж/єY~Шщ^'™L244Ф_|СЭ›7I$дззsј№aЪЫЫuѓ@ žDh­@ v…BA}}='Nœ`xx˜+WЎpуЦ ўќч?уt:9pрƒa[aЉЛэД;‰DфъЋjЕ‹Х"WђЭп‡ф)gГй0›ЭР_ fФbБ-=иV{tйl–ееUклл ƒ( цццhooчтХ‹DЃQ9]ee%VЋuKAГаqЗ{wсзћэa‘п7ЁPˆ‹/ђЩ'ŸАВВ‚ЫхтјёуДЕЕa2™фѕŸє~<^ь…1F OBШСŽЃP(0™L<їмsŒгппЯТТПџ§яёљ|И\.jkku3w ЩC-ЅRyЯЪЈљU[w*,љnМл щM&“єїїѓ_ўЫAЅR‘Эf‰ЧуЌЏЏЧлоxеее<ѓЬ3иlЖ-ѕ]?| БяЖа|ўќy>ќ№CzzzP(>|˜^xšššGн<@ ‚' !ф `Ч‘Š^zщ%ІІІјчўgљрƒащtМ§іл;Т4їЂxЂVЋ1 (•J2™ ™L†X,F$Ж“жззйииnї‹^ЏGЋеЪтоУшЋћэїэŠˆЉTŠp8,я7“ЩЭfбщt8NNœ8С™3gxъЉЇфу?,сn;m”бЛхм+ф_умѓL$|ђЩ'ќѓ?џ37nм@ЃбPQQСлoПMssѓSНїQђА~ћіъ§ћ]В—Ч@ <О!O „l6‹^ЏЇББ‘ќрLMMqѕъUљѓŸџŒNЇуЧ?ў1^Џїžži;&“ Чƒ^Џ'‹‘L& ‡УЬЬЬАџў;жW(lll …‡УђћnЗ›Э†NЇCЅRЁеj7 eRшn.йl–d2)?АJž€Йb`О№ѕ JЅЛнNKK FЃЅR‰JЅBЏзуp8иЗo­­­дззуrЙ6m'Тк‘JЅdoFЉ]в{™LF^W­VЫлцžгVсИ;сэЗлШЯsИММЬеЋWљѕЏЭЕkзˆХbTTT№Ю;я№дSOсvЛQ*•O\ѕ^СоAмЗ;ƒ‘рсВЗŸŒ@АыqЛн;vŒХХEbБ===tvv’ЭfQЋеœ:uŠ@ €^ЏіІ‡„ХbЁЌЌ Џз+WЎžžІГГ“ЃGb2™dСn‹rєѕѕ …€л"Wee%N‡FЃй”[nccƒххe‰„\ЁU i ‡УВШ'˜Шv_ЋT*ќ~?oП§6^ЏWЎЋгщАйlј|>œNЇ|Э%єz=ƒ•JE:&•JБВВ"{.JmFЃЌЎЎЪaКFЃƒСАiН{QHмл‹ф{тe2цццИvэПљЭoјъЋЏX^^ІММœгЇOѓУўВВ2ДZ­ёv€­њїnEXюg?‚­}іpЦбŸ@№pBž@ vœ\с@ЉTтѓљ8sц ‹‹‹d2zzzИ~§К,<:uŠЊЊЊMBЬ^єВй,‹…}ћібддФђђ2+++LLL№еW_qфШjkkБX,(•JYМ:wю,,, T*БX,ДЖЖтїћбщt˜L&JKKщыы#‹БККЪшш(cccј§~4 LNNвпп/WŠ5™La2™ЖьлэsЅR‰ЫхтХ_ЄЌЌlЫ№ЬќklГйpЙ\˜L&VWWI&“Œ122Bqq1:N~ollŒѕѕuрЖ7žлэЦсplйІ'Ѕњl>Й}ЌP(HЅRЬЭЭqсТ~їЛпёЧ?ў‘D"Aqq1/М№?§щOillМcћї№q&зУT —BеѓџvщЗEЉT|‹№м‚э!„<@ <2$C]­VуѕzљWџъ_ЁгщјЇњ'Ў_ПNww7џ§Пџwцццјб~ФСƒхт{ ­VK р?ј}}}D"Тс0_§5щtšŸќф'455a2™˜››увЅKМїо{ L&1™LьпПŸ“'OтѓљPЉT8Z[[ЙpсЋЋЋ,,,pљђeо{я=^~љe“““|њщЇ\Кt‰h4 €ЫхЂІІЋеК)ŒѕaSЈРG>љrEEEВзсъъ*щtšK—.сrЙ0 ”——3??ЯџјGЮŸ?/{ъIBiqqё}ЗёIcii‰?ќїо{oОљ†d2‰нnчѕз_чoўцo8vьиЃnЂрџ'зcVzJЅфТ1ЉTŠd2ЩЦЦБXlShН$№IЛRzюwN ­wЏ*в…™­Ж-4)“мэ’[ьч^mоюdаvћ`Ћ§хџŽJWАїєzЬ3Я<#‹xпUџ~›тVЋ•жжV^|ёEІЇЇ‰ЧуLOOѓлпў– .`ЕZ‰ХbƒAцччл"щsЯ=ЧсУ‡ёx<мžН@!‘%‹144Ф{яНЧЇŸ~J?~ПŸwоy‡ў№‡477o+ЬѓIъЫЂИ"ХY\\d||œЩЩIІЇЇ ƒЬЬЬАЖЖF<'‘HJЅ6хŒ”і™V]шкхЏwПпнћ=Цнол‰у~ћЫї|…ТтщvФХнp=юеЮмЯЅМЋ*• ƒС€ЭfУыѕR\\ŒпяЇЄЄ„ђђrМ^ЏœF"ww;Ž@ <Љ!O Л‚l6‹JЅЂДД”—^z ­V‹бhфъеЋƒAЮž=Ытт"“““<їмsьлЗГйМg |FƒпячG?њ‹…sчЮбггC8fdd•J…BЁ “ЩNЇбыѕдддp№рAN:Х /М€Ус‚єz=ѕѕѕМѓЮ;X,Ў]ЛF(" ВАА€BЁ Bшt:JJJxійgyу7Ј­­-ш!"‘ынl улЮњ’7о§zМЉеjjjj8sц ыыы\Нz•P(ФТТсpЕZ-Ÿ“T]ЕЕЕ•Ÿ§ьg444 гщюњ ~xЗѓyœЩ8NЅRЬЬЬp§њu>ўјcЮŸ?ЯФФ …‚ІІ&ОїНяё§яŸКК:L&гІ}mUбW№№($О,//3==Эшш(### 2==ЭТТ‚œ32‰H$фяУ^НŸG U‡оЫфVWЋешt:ŒF#fГГйŒЫх"Аoп>jjjЈЌЌЄЌЌ ‹Х"{ьэ•T@№АBž@p.& IDAT vœЛхjЕšђђr ƒlф_О|™ЉЉ)Оњъ+BЁгггœп–9ж' Z­–ццfL&мИqƒссaЙˆ$všL&|>uuuДЕЕqрРќ~?№зОUЉTиэvN:…ХbЁККšцччйии “Щ RЉ0xН^іяпЯгO?Mss36›эЎзШjЕRUUХЁC‡ф}фW–D3FƒзыЅЅЅ…ттb4 ЕЕЕшѕњ{>˜х Š.—‹ЃGЂеjЉ­­ЅППŸййYжззIЇг(•JŒF#‡ЊЊ*Ž;ЦБcЧpЙ\[†Ÿ) T*UUUВтt:)++CЃбlѓ ю^ йl–ЅЅ%†††Иtщ_|ё—.]biiIЫ>uъпџўїЉЌЌмєг;Cюu‹Чу,//355EOOннн 0>>Юєє4kkkd2”JЅ< "yёЊT*T*еЖТTя&р?(пFРњЖэ)T™њaзу,Ф=ь~йЮѕ‘&nвщ4ЩdRО—gggIЅR(•JЌV+>ŸђђrЊЋЋimmЅЎЎŽђђr\.—< #=@ Иђ@А+Ш}ЈЊšОёЦуёx8{і,УУУДЗЗ311СРРЇOŸцщЇŸІММ“Щ„Z­.˜Wh7“{ойьэJНвЬЩ“'™œœ$ ВЖЖF:FЋеbГй(++ЃИИ›Э†FЃйВ‚ЅпячЕз^ушбЃrш]$!NЃбhАлэ”””PVVvз}Im(--хх—_ІЖЖјџи{ЯчЖВєЮџƒœ s&%’IR‘ нЃЖfККglS9”§Тўќwј§жVйЛ/жыšЕwЪнлšБfFБЅ–DeRs3@"‡п §юH0IЄt>UЗH‚їžsnЮпчyоК ;::0 яl›NЇ1tvvЂP(‡УЈT*œN'VЋuг<|йэeЪшььdzzšЙЙ9Й0ŠZ­ЦbБPQQAUU.—ы>ВЏ…BС`рЫ/ПфФ‰Фb1  rЈђ~a+й\ч1•J‰D№zН<ўœызЏsыж-FFFP(8NЮŸ?Яз_Э•+W(+++Јп§~Ÿэђ=›rхG““@€7oоаззЧ§ћїyј№!ЌЎЎЂRЉфjЯ™‹ЫхТjЕb0аыѕhЕZљљИ—ћ”Н_;ioЋ!ЇЛЭAzйЏH"^,# …XYYayyЏз‹пя' …appп§юw455бннЭЙsч8qтuuuЩЮtqnСЇŽ"}ПNСfЋo=“““\П~_ќтмН{WNк^UUХ… јГ?ћ3йuЅVЋ?Њљ›хJЪ'рmЅНьАз|ыgOІГ'TmЛYј|"l”ЇiГ~ђЕЗ_?mGШЫ<_@€ЁЁ!ОљцОљцЦЦЦX[[CЋеR^^ЮŸџљŸѓЧќЧДЗЗП#Ьє{i?А!`ii‰[ЗnёЭ7пpѓцMцццфuєz=.—‹ІІ&Ž=ЪЁC‡ЈЎЎ–+;kЕZйWЈ#O№{ВѓnП =ƒSЉ‰DBvх…B!|>гггŒŒŒ000РШШsssrс%щ Н3gЮ№ѓŸџœ‹/тt:?КїxСўevv–џїџўџјџH8ц/ўт/јћПџ{._ОќЁ‡&иCЪ3E8ђ@А/Щќ ^QQСз_-‡sўз§,..r§њuњћћщщщс‹/ОрФ‰”——ПцyPйэIфnЖЗ•Жіr2МŸбnГ‘1ѓУh0d``€лЗosѓцM^О|ЩЪЪ ‰D‚ššNŸ>Эз_ЭщгЇЉЈЈCйя)цђђ2/^МрлoПхў§ћŒP*•”••бжжFgg'---TVVЪю;F#‹vй…В‹]ж“KИл Q_„ƒОEК.еj5zНžттb*++9vь+++ЬЭЭ1<<ЬГgЯ`ii‰ХХEnмИСызЏЙxё"?ўёщъъ’Т@№ЉђqЬr@№Q#хX3™LВхЮ;<}њ”ЉЉ)YYYatt”уЧЫyу***аыѕЛRoПNЦv{<[uѓэхXvЃЭ§vОvƒЭЊbJФb1–——хёуЧ<~ќ˜ўў~оМyC РщtвооNOO===ДЕЕЩЎжBњl|ЮTщѕH$Тјј8wяохWПњ§§§,,,NЇЉЊЊЂ­­ŽŽ:DMM %%% †œi>Жъ8оОђЙŒЗляAЛwЖО_ШћCц:jЕ­VKQQVЋ•ввRъыы9zє(CCCєїї300Рєє4УУУƒAйСwхЪZ[[зЙѓ6ЛЗрcBy@ и—d‡I Б=ŠЫхЂЎЎŽццfфo69иh[СўфS˜иЅгiBЁKKKLNN200РЃGxётSSS„Уa, 'NœsPuuuQWW'ДјŽг~ [Є МzѕŠп§юw\П~ЇOŸ’L&)))ЁЉЉ‰cЧŽбннMCC6›э"?›ˆїЁШчЬћTиюОnѕЙ‘™њ@­Vc6›1›ЭTTTаииШсУ‡illфЩ“' БАА€ЯчУэvуѕzљђЫ/ikkУl6oškU >6„'‚}OцФJЁPPZZЪ~є#Ž9Т‰'И~§:=bzzš……fffx№рœ={–ЎЎ.>ŒЫхЂЈЈ­VЛсЗї›Й@Ф„Y№ЁШW ‰DXYYa||œgЯžё№сCž={ЦФФ …“ЩDCCэээќшG?твЅKTWWc0ђЖ-и}ВŸЉTŠP(ФгЇOљџјЎ_ПЮјј8†ššКККшщщсјёуИ\Ўwкйь|фѓњ!ЧМ}oЅШn йяd;є2+Ў;Nьv;ДЖЖrыж-=zФммЯŸ?gnnŽййYўђ/џ’ЮЮNЧ;bоЧ~ќСЇђ@p`Шй”J%•••”••бггУ?ќРwп}ЧнЛwСчѓqыж->|HMM 'OžфѓЯ?чмЙsTWWc4Q*•л н„ƒЩЧvоЄ§‰Чу,--ёъе+nмИ!WЁѕћ§r^ДввRЮœ9УеЋWљьГЯhjj’'ОYш9ш( BЁЯŸ?чŸўщŸјс‡№zНшѕzъъъјыПўkzzzЈЌЌDЅR‘L&зm+|HvѓЬvBJUД/\И@GGзЏ_члoПЅЏЏ™™ўѕ_џ•ЅЅ%Йј€ЭfлЕБС~Gy@ иїlц*…мієєаммЬеЋWy№рїюнchhˆ••&''YZZтбЃG477ЫyєŽ9BUUеКџнШШOŸ>хщгЇМzѕŠййY‚С бh“ЩDmm-]]]œ?žЮЮNjjj(...Ј‚щЇZИ—dqАИИШ§ћїљяџ§ПѓфЩќ~?eeetuuёеW_бйй‰еjX'т эОwJяёWЎ\СщtrуЦ юмЙУммїюн#NуѓљјъЋЏpЙ\т=Z |!O Š\љ‹ЄњFЃЛнNCCЇOŸцХ‹Мxё‚зЏ_3;;Ыјј8KKKŒŒŒ№рСššš8|јАœ‹ЇДД”ЂЂЂw’§‹PZС‡"s2‡ёzНМyѓ†‘‘fjjŠ……Й ­Ус ЙЙ™ЮЮNŽ?N[[еееиl6єz§;эц›№~ŒХі …‚……nоМЩџљ?џ‡‡ ЉЎЎцќљѓ\Йr…ііvЬfѓ:ч№vФ !hфgЏХъ­Дљ>Югn‡яюE8pЎ6T*%%%œ8q“ЩDqq1ПўѕЏ™››ЃЗЗxЂўGєGЃRЉфT@№1"„<@ ь[6šde zщtЕZMII VЋ•ІІ&Ž=Ъ‰'xљђ%}}} ГААРьь,гггМxёBNЌнккJss3uuu”——уp80™LhЕZy"йЇ˜$іšxчЧшvнЫ”вёВZ­ДЗЗc4Q(мИqƒ7oо№шб#вщ4ХХХ\Кt ЛнўЮћЖ@ |L!O š\ЩВ•J%zНžЦЦFъъъ8{і,<~ќ˜'Ož№њѕkцццXYYappWЏ^qѓцMЊЊЊ8|ј0GхШ‘#джжтt:БX, ДZmоъxbR-иˆB ЈЄR)‰‘H„P(„зыeffFЎФќњѕk&''Y^^&Ѓгщ(..Цхr­Ћjкжж†ЫхBЏзЏыWLj?™_8Фb1ž?Ю/љKnнКE0ЄДД”+WЎ№“Ÿќ„––t:нGљLйo>„ы4_яуиьv›яћќЅгiŒF#---rШљЭ›7™˜˜рСƒ( , ]]]иlЖwЮoЎПр "„<@ ь[Жњ!;_HŽнnЧnЗsђфIМ^/єііrџў}=zФвв~ППпЯЋWЏјц›opЙ\:tˆŽŽŽ;Fgg'•••X­VЙъ­;ь„Ьы5™LВЖЖЦввCCC<{іŒgЯžёњѕkfffƒђКjЕЋеJCC.\рьйГtttPUU…бh~яЭюG№a‰ЧуЬЬЬ№ЯџќЯмИqЗлЫхтўрјѓ?џsЊЊЊаh4‰ЎтМlђЙЬя’}lЄŠЮѕW…RЉфкЕkLNNђлпўЋеŠ^ЏчЬ™3hЕк4b@ и[„'‚O ЋеЪ‰'hnnцЪ•+ŒбззG__CCCLOO YZZ" 200РЕkз(++ЃЁЁццfšššЈЏЏЇЖЖГйŒNЇЫщдBŠ@"л}ЧY[[Ууё022Тии˜МLOOГММЬъъ*‘H„D"^ЏЧnЗsша!Ž=ЪбЃGikkЃЊЊŠттb ƒ, yџy.‰SSSќЫПќ wяоХуёP^^NOOђ'BYY™œлkЛ}Рў}офкЏэИDwгQЕпя•НЬiЗ_Џ“BIЇгИ\.Ў^НJ2™ф›oОaaa7nPVV†С` ЋЋыРяЇ@ фBy@ јdP(ЈеjŠŠŠфТеее=z”K—.111Сшш(cccLMM177Чђђ2ЫЫЫЬЮЮ222ТЃGp8”••Q]]Muu5•••”——SZZŠУс@Џзч Ун,МВP>ІЩиЧРF‚­$кE"‚С ‹‹‹ЬЯЯ377ЧЬЬ 333LOOуёxX^^Цяї …P*•˜ЭfšššЈ­­ЅББ‘њњzЈЎЎЦхraГйащtыrA‰kcџ277Ч­[Зјілo™ŸŸЇИȘгЇOѓх—_ваа€FЃyЇ:ёfь–8і>йЎ›yЏEЗїuЬіЫЙйЉˆ ОX†JЅЂООžK—.БЖЖЦЗп~‹ЯчуЦђћtMMЭЎŽY іBШС'‡4бh4иl6JJJhhh ГГ“ЅЅ%ІЇЇ—НййYМ^Џ\1tll ЕZХbЁДД”ввR***ЈЌЌЄВВRєЌV+ХХХЃгщPЋеЈTЊМIИ7aіЛ{d/x_ТдNћQ($“I‰БXŒЕЕ59\лыѕВИИШТТ333ЬЮЮ2??Явв^Џ—p8ŒRЉФ`0`Гйhjj’'  ВˆWZZŠеjEЇгхЬ )DМ§EІРЛВВТГgЯјеЏ~Х№№0†ŽŽ.]КDggчЎфФ;(сў[уF_~ьFбЁ§~Ÿdпч;йпBEпƒт$—Цi49|ј0‘H„ййYžЅы|/іu'Я‹ЬgЮnŒm7ЎЗt:ХbЁННŸўєЇx<FGGyљђ%п~ћ-GЅЙЙН^ПуО`П „<@ |ВlфDащt”––RVVЦЩ“'I$ј|>ІІІцѕызМzѕŠссaYи“–™™рmи^ЏЇЈЈˆВВ2ъыыЉЏЏЇІІ†ккZЊЋЋq:ВИg06uщ}J“XxџтуFЁщtšd2I8fmmххeццц˜ššbzzšЩЩI&&&˜eyy™`0H2™|Ї}“Щ„Ус ІІ†#GŽpєшQZ[[ЉЋЋУщtRTTДЎЯьТвrPrЃ}ъЌЎЎrѓцMnоМ‰ЯчCЇгёљчŸsњєiJKKwtOДы`ЛŒђЃ§МЏ{СЇЖП‘}mX,._ОЬииС`ЉЉ)юпПЯ/љKўсўВВВu_ˆdЖ! !ф @АЉT јНcЯd2бааРХ‹ёљ|x<fff˜˜˜`||\Ю{цѕzY]]%F LMMёУ? гщ(**ЂИИ‡УгщЄЌЌŒВВ2.— Їг‰ЭfУh4Ђгщаh4Јеъw&"љјTПнpen+ЙьbБбh”••<KKK,--сvЛх0YЧУЪЪ ~ПŸH$B4•нy’ыЮh4bЕZхPйккZЙPJYYvЛЂЂ"єzН~KИЫ Ÿ§нƒJ:цбЃGмЛwЩЩIЬf3'OžфГЯ>ЃЂЂB^чC УuД!х{Y@cЗЯэNЧКЮЭнrpюцБR*•˜L&Ў\ЙТмм@ЏзЫЗп~Kww7gЯžХfГэhМ@А_Bž@ џ?›M"T*ƒЃбˆЭfЃДД”X,Ц‘#GXYYСчѓсѕzqЛнЬЭЭ1??/ >RŽНееUVVV˜EЃб гщ0˜L&L&“,ќHљѕЌVЋђkЕZБX,X,ŠŠŠфЂ™љїЄЅPСя SшФ/™LЪ‹”Ч.ГККJ0$ ЪЁБ>Ÿ••yёљ|ј§~‚С ЁPˆЕЕ5жжжˆD"Фуqвщ4ƒС@ii)NЇSdЫЫЫ)//ЧхrЩ*2CЌеjЕ,ж >$q"‘HрѕzЙ~§:$ jjjИzѕ*ѕѕѕВ7WЅсфЩлъ8Г_лOзтћХ2_лы™ŸŸgqq‘ЙЙ9Yрѓљ|ВА' HС`ххe‰„,bIB_ІЃOј$бOј$ЁЩl6Џs§IуЬї2‹oHЎ>IьЫљђ‰~›MЬВ'Ъ™9рr‰uвOIЈЫ }•œuБXŒH$B8^'Ц­ЎЎЎsмI9 §~?ЋЋЋrЌд–ДЏjЕZ>О’убh4Ъ‚Љгщ”+KЂ&+9эt:нЖЎ%СС&гЗААРЕkз!гаа@OO•••В ВQNЦїIЁbгVrеIыJїqцўf‹Iв3&{лнФі‚ьqІгi‰ЋЋЋЄR)љ=Сd2­[яC’ыЫЉŒkПфhЬGuu5'Nœ`hhˆЅЅ%†††x№р---8ЮOЦБ.>^„'‚OšB'­ЗYRюžЂЂ"JKKiii‘'Ж‘H„P(D0ФуёШ!ЙвЯЬ|lЋЋЋr.6IИк IЪьєzН,LIтžС` 9g›єSЪг—н–FЃAЉTЎ[T*еК1d‹tйaЎ’ ' tR%иH$"яo8–UІГ.SјЬn'‘H4љ—\v’`gГйфPиђђr***фЅЌЌŒтттuЎЧь}Эќ™Щ~˜Ф оЋЋЋ ѓлпў–`0ˆнnЇГГ“ююю-WЇо+ЖS(cЋтO"‘ фН%—Ћ$vЉTЊœЁЦ…іЗUЖђEDцs-гœI<g~~ž›7oтїћ)**ЂББ‘‹/ю‹№кНb?TFЯ SзщtДДДpсТz{{ ƒ<}њ”cЧŽqьи1ŒFуЇ@ ьBШр=‘ž ШaЏfГ—ЫEssГ,FE"VWW …BЌЎЎЪ9јЄn>ŸOЮпЖВВ"ЛаЂбЈь^K&“rxЉ4iЭнВ…Иl'žДž4щЮѕњF.Н\ю;)$6лu'-­'­›љ{vuWЅR)чЬ $зЂ”{PЪCXRRBII 6› ‹Х";M&г;юХЬАфlЇQ.ТD\АЛLOOsџў}fffH$ДЖЖвббеjнr[›‰gлuDmКК“ќiв}БААРџњ_џ‹ББ1Ђбш;ыIЎз’’ъъъшъъЂЎЎГй\P?›a+cЮЕ­ДНпячљѓчx<‰хххДЖЖтt:з­—H$˜››улoПe~~‡УС… шщщyч ŽХFч}ЋЧ*зѓoПфY,..І­­ŽŽž>}ЪФФOž<сќљѓtvv~шс СŽBž@ я™ьŠЄ№жэ‘эюЪЌ‰Ф:gšДH"ŸфP“мjRXЉєw(Zчц“*ЌJсЅвЯx<ўŽp–-’Iћkђ—2˜НП…8mВЧЬWIT“rџe.zН^^$N )Юv J9%їaц"‰u™BхfчrГw‚щZX[[cpp‡F)))ЁННІІ&Й*1фЭњ˜НоfыьЦѕ—яў.t]€P(ФШШ}}}9ФJЅFƒ^ЏЧjЕ288ШO~ђŽ?NqqёŽїa+фл‡t:пячЦ ‡щъъ’Cь3yщtšX,†ЧуСэv>ШИ a7s#~Ш<‹Йю ­VKEE.\`bbЗлЭРР=Ђ­­M.4Дм„@АU„'С{Іа ƒ$dС[чž”g)IфЫ SFЃ„B!ТсАМdŠйЏg†Бf‡ІJ9щЄ>В—LбоV‡D"LLLАЖЖ†NЇУщtR^^ўŽcOЪВЩE—œ-ощѕњuЁРRИЋДHE)ЄџgњШ,ј‘Bп‹ЩŸ@Bxѕъƒƒƒ455бккŠЫхкqл;]gГѕ7k#—(ŸяОФ~щ ˆp8ŒйlЦщtb4IЅRDЃQќ~?^Џ—……БZ­И\ЎuB^v_› Š›}aыоЮќbEЁPШ9юЂб(SSS  …pЙ\D"љљœщ6›ЭДДДШ.пЪЪЪœc-$W]і(йч'{ЬЕЗ™sЛl$*H ‹…ююnюоН‹пяgzzšоо^Оњъ+цCS Ж…ђ@ 8`dOд$‘Ћаmѓ r’˜щвЫЌ+ {в’-цIsЗлЭџјџƒ‰‰ ьv;чЮуЫ/П|'Ќ7ГАDЖx—щМгjЕшѕњu…8 Х:ANrаmѕј ‘NА›ЄгiЦЧЧРыѕЂеj9~ќ8uuuЦМnЙ­фІлЩ:[mc3СlГѕВЉЎЎцтХ‹TWWЧёћ§ ѓќљsfggёљ|М~§šуЧгккšГ_Љ:Еф†Зšў.= 2 Hюcј}NLЕњїг x>N"‘ 0::J?jЕšŠŠ кллЉЉЉ‘Y4ххЫ—мН{—WЏ^‘L&ЉЌЌЄЁЁЇгI:fii‰ССA|>/^М@ЅRбжжF{{ЛмПtœЄJийdу0›ЭДЗЗГИИHoo/KKK$ JKK9zє(.—‹t:Ус ББё62лЪюKТчѓQ^^NGGNЇЧУ№№0 x<=zФ_|ЫхBЅRБДДФ­[Зxўќ9^Џ—ЂЂ"ЊЋЋijjBЏзуїћyѓц SSS9їm?АбНАе/œ ЙЗ  TWW3<<Ьтт"CCCtvv !O H„'Сc7&cяЋНpљь—ЩЈруb'‚n2™$ ђњѕk|>FЃ‘ЪЪJъыых№Ы|Wї{Јэn266ЦммFЎИ‰DH&“qњєiN:%WzU(ЌЌЌаппЯШШЩd“ЩФхЫ—Й|љ2ѕѕѕЄR)ІЇЇљпџћѓфЩМ^/###<}њ”ІІІwЦPhQœT*EII /^ФщtтvЛYYY!‘HP__ЯŸќЩŸpќјq’ЩЄœ‹-Г FЁиэvЮž=ЫW_}EMM “““ќтПрћяП'АИИˆлэ&ЂVЋ™››уСƒT* ќф'?сђхЫ <їюнукЕkМ~§zЫуљšт п=Zˆи]UUEMM :ŽH$Трр ‡њњњmJкЮћа~ћRL \„'С>d7?шШdцAЄ“*СN‰ХbЬЮЮ2>>N РщtRSSƒнnп4'йЇt§IеfГ‘rх?~œккZєz=щtЅRЩђђ2ѓѓѓt:555|§ѕз9rƒС@:ІЎЎŽххe№zНrШn8~ч”Ы‘—Џˆ‡JЅЂЈЈHЮЅ&mЋеjБZ­8Žu9AЅ0кЬb<›бккЪчŸЮ™3gфатОО>XYY!‰ …HЅRD"™%cЗл9yђ$_}ѕхххЄгiЊЊЊ0 ј§~ У~d7DЏЬѓZRRBUUvЛщщi†††X\\$ЃгщveЬ[лAxћ!ф @ и3і2Ož@А_‡УrШ^4•C-ЅмxЙ*А~ŠTVVвжж†нn' 255ХєєДь<ћц›o0›Эœ?žттbрmЅкH$B<Чh4R\\ŒХbA­VЫyщ vЛ].!9$3E6 ЉјNцГFЪu—ыIыf.йЏKcиJЋУсРсp T*eёR­VЫpцxSЉБXŒh4J:FЏзcЕZБX,ђzR_ЉЭ\Ч`ПБYЅ|nж­`2™(//ЇВВ’7oо0;;Ыдд>ŸВВВmЗЛ]„ˆ'v‚ђ@ lŠ4‘Ь AЪ'КeОžkВRШvС^’ымjўJi›t:M(bpp@ €Z­ЦхrЩyоВЗљTQ(ддд№уџ˜У‡ …˜œœфоН{|џ§їxН^^П~Э“'OЈЎЎцшбЃ( ЙЈ…RЉ”]iбh”T*ЕN( …BrhЋRЉDЇгЩ:iIЇг$‰uТ]*•ТэvГЖЖЖсyЪ~VeЗЛ]єzНь“„Щlз`ІX(UѕХb$ Ђб(БXl]eфX,–sіЫu˜яОиKБ[­Vуp8Ј­­х‡~Рчѓ133ƒзы-XШлЪјvђŒ‚ЭBž@ ‚MIЇгD"|>ƒЂЂ"ДZэ:wJ!“”ь‰[*•buu•H$‚JЅТfГэЋЄь‚нv}J•I‡††ˆD"F\..—kWћљАX,466вооN<ЇЁЁ­V‹зыхоН{њћћikkЃЙЙН^йlЦfГЩ•Wнn7}}} ЉT Пп/WpаjЕ”——ЃбhPЋеhЕZYќ ЬЭЭсvЛ1ј|>ЙpФFdŠkбhŸЯЧъъЊ,(JЙЗJіѓnЃчŸVЋХbБ`ЕZ‰FЃЌЎЎ299ЩЋWЏhkkC­VЫaХCCCВ0јО)T лjžемЛ …›ЭFUU†H$ТќќќІч}+ф Ž\@Ал!O СІHN˜ЇOŸЂеjЉЊЊЂВВ’ЂЂ"9l+9RЉбhЏзЫииЁPˆŠŠ l6лžю‡рг"sтŸ†ЙyЗ$тё8~ПŸЉЉ)тё8NЇЇг‰ХbЩzЙS>Tњvі%ѓxKЧC їДйlДЗЗѓцЭž>}J8frr’зЏ_sъд)ЊЋЋ)))ЁЖЖ—ЫХјј8 ќњзП&P__O2™djjŠ;wюрvЛQЋе”””ажж†^Џ'‹a6›1™LФb1–––шээEЅRQ\\ЬФФпџ=nЗ;я>ЈT*ŒFЃьHіx<<ў­V‹BЁ ЂЂ‚ВВВ=ЭmšNЇбщt”••бддФЪЪ kkkМ|љ“ЩФЪЪ ƒAоПчЯŸoкц~fЗЧЊP((**ЂММœЂЂ"nЗ›ЅЅ%RЉTС/r‘Ыљ˜JЅФ—R`ЯBž@ ‚M‘B冇‡ЙsчvЛŸќф'\Иp‡УZ§ћU”Bй$гwп}Чƒ8|ј0ћЗЛЃЩ”@t:M0DЅRЁзыбh4Л–Л.ГДД„лэ&‘HP\\ŒнnЧh4ю›PЦAЎМrйџp:tvvR[[Ыјј8ЫЫЫŒŒŒ0<ћŒююnjkksNXЄЩW2™daa—/_ђ§їпsяо=&&&ЈЋЋЃЅЅ…ЦЦЦїН[‚Oˆ™™ž$™L~0gи~В5 VЋ—ЫХьь,>ŸOЮИU!/з3#‰0==M?ccc|љх—дееЁRЉ„3O ь*BШ@А) …ЅRIss3GЅППŸзЏ_ГИИШШШ>ЄЋЋ‹жжVЙRЂ4!•’кП|љRљfnn€ЋWЏвббйlо“0DСЇKцudЕZqЛн<{іŒяПџžSЇNqќјqjkkБX,ЈTЊm…ЌJŽМееUрmRIШлЭeяГ0РF§JЏвQQЧЇЄЄ„h4J{{ЛrœйNII .\`uu•ххeL&VЋU.т`6›iooЧl6sша!&''Y^^&Ыb]ii)ДЖЖR__/ТЈЊЊтЪ•+˜L&ЦЦЦX]]EЅRсp88|ј0‹…gЯž199‰С` ЁЁAvћ кккјг?§SpЛнD"љџвњJЅЛнЮйГgёxМюX9Nž<‰еj ЙЙ“ЩДю8WWWsъд)ЊЊЊP*•TUUЁгщHЇгЈеjJKKљёLyy9ƒƒƒ,,,H$(**ЂОО‹ХТфф$>о:љ$б:зyЭ.>БгkыC]Ћ‘NЇQЉTQVV†FЃamm ŸЯG  ЄЄdУmГЩЊУс0Мxё‚Ч333CssГpу ‚=CЇгЩќќ<ЁPЅR‰еjЅММœt:Mee%ЫЫЫЈеjŠ‹‹1›ЭђБUЉTиэv>ћь3ккк№љ|Фb1рэyB€U*хххќьg?#Ѓгщdg Dee%№€пяЗЭ<Ÿ---ГЖЖ†BЁ ЉЉ ƒС Лќтё86›гЇOгккŠпя'™Lb0АZ­ЬЮЮђњѕkYHЖйlђЕНY%ёЅR‰С` ДДЕZM4Хяї sЎŸяИHсГ@@>ж?цЩ“'LNNbЗлљйЯ~†Эfлv@ и!ф @ (•JE[[]]]чЮуќљѓtvvтp80™LЈеъw„Ћ\BЁ>ŸN‡йlЦ`0ьi~АбxŽ)ЉИР‰'жнзйaЋ№іЙRRRТ™3g6\WЃб`Злq:ыњЩ•‹/лeІеjЉЈЈ ВВr›JњІр–+ќUrлe s™эЄгiy|љЦхp8p:rшuцЖ555джжЎЇ4žd2‰лэf``ЋеJYY.—KЎЪЛИИH?ЯŸ?'Nc0ЈЋЋЃВВђ!/з5КзТ~|vKcвh484 @€`0H xg§|їn*•’ѓыН~§š~ј[Зn144D Рщtrўќy.\И€йl.x|ТОћьЦ1§TDnССCy@ ЖDii)Ч—аKHœЕЕ5љЕp8L8~Ї ЉВфчŸN]]]Ю№#!ц v›КК:КЛЛљс‡јўћя ƒєіівззЧwп}Ч… јъЋЏшъъ’Уя6 Ћ“ТѓрmО7Ѓб˜wЛнт}ц<ЫUАf+ф /ЮзFЁыn%d9ŸК•6ГЋюnЖоfуЫЌм[ш8ЅsЧ™™™сП§ЗџF:ІЖЖ–ВВ2t:ЋЋЋŒ3::Ътт" …‚ццfКЛЛihhиpLŸ jЕЛнŽVЋ%‘H ѓ:ђ$2‹Xј§~=zФwп}ЧэлЗ‘s%джжrщв%ЊЋЋEеZ@Аg!O С–PЉT466rщв%nпО-‡бn‹ХТљѓч9vь˜œ+*1љТVsкщt:ZZZИtщOŸ>%“NЇ‰FЃLOOѓэЗпђьй3NžmФЇ @ [FЏзSWWЧ_|Срр сpx]ўЛАZ­9r„ѓчЯЏK(/l•э\;‹…––>ћь3цццpЛныB!cБГГГИнn†‡‡yљђ%]]]rQŒккZЌVЋ,ŒФуq9ДNЋеЂгщ>ˆЗ•ЩѕNEqЯnТfЗr,ЅЪЋNЇ“ЋWЏтїћY]]•…<ЕZ^ЏЧbБPRRBqqБœы1ЛЏ\§юеyнЫ<|[jвщ4JЅRЎтЋT*‰Чу„B!љR‹™™†††шээхЩ“' БИȘз}n6›9yђ$ЧŽЃЈЈ(яё=ŽЧЭ8HћБлЙJ‚§‚ђ@ lЅR‰ЭfуђхЫ\П~Џз+‡nЖ]uu5gЯžЅОО^Ўшw&‚§…T ™LnyЂV\\ЬхЫ—Йyѓ&+++D"‘wж‰ЧуИнnмnїКЂ===tttрt:QЉTФуqYФVЋеr˜уЧЬ~qg4v#”UЊв[UUEuuѕКзЅіВ‹lь†шђОЯёfbчVЊ'gЃVЋбh4(•J’Щ$БXLЎВžYФтіэлr‹Эr(VUUбййIuuѕКp[СС%‹ќЅ@№ОBž@ ‚mЁзыinnІЇЇ‡ёёё‚„<ЃбШ‘#GИpс:N|S.иRтљ@ @  ‘Hф­P˜KH&“”––вааРЬЬLN!/“`0ШуЧщяячкЕkєєє№гŸў”––Тс0ЉTJЮПЅRЉ>ˆЗU1H№сиЎKЈаТЙжџьц8vZiWЁP RЉd!/•JFёљ|єііrэк5юоНћN‹ЭкlmmХnЗч,ž!WЊ,‰‚љ’›UЪЮЗўFЯОЬџg Лљr^цG!aй›oГ<››•Щ<ІвњЛЕПR‘’……М^oЮJлС‡Fy@  "з‡w­VЫЅK—xќј1ГГГ›цЪ“rIїЫDSp№№љ|\ЛvoОљFЎ›‹|“мd2ЩФФ~ППр>Г‹bДЕЕ ёћ§rиcf(уAЩ%%lЦ~П–З2>щ>U*•,//sћіmІІІxіьГГГЌЌЌlЩU—JЅx№рSSSх]/3g[ЁcЭІ!o?‡“n6Жьџч{~чкfЗУ}cБXо|ˆС‡Fy@ Ж…”8\ч†‡‡щяяЯЛО^ЏчФ‰?~ГйœѓCї~Ÿ, > ЙЎ‹X,ЦЬЬ Яž=УэvЏћ!Ž `]XlЁуŠbƒA< …BЎzЉT*Q*•yйя$7ZЎіђ­ГзїЮЧroОяъЛЛ!ф|hЖ3о­8шђ…gnЗн1dn/9Й‚С Џ_ПfhhˆЅЅЅm‹6nЗ›ххх я§DЌнп }тшЬ>і…ИїЖ3ЖЬ>ђѕГе6wКПRъЩA)Ф<С~By@  "_ђn›ЭFWW}}}ŒŽŽц ST(деебееESS“\( _E`3ЄBсp˜H$Bqq1NЇН^/џ?“ьы,NГИИˆпя'мЏBЁ@ЋеRVVFUUсp˜ееU9ФЖp4щяBєчzэ  @‚ƒЫћ~6KзїFтKі}Ж]g›FЃЁЄЄ‡УZ­ЦэvЫХ/Ж‚ЭfУjЕЪЯŸЬ§ШќНv  vЂы™Яё—+Lu+ТиVџПй1иŠ Џа§нl,UUU˜LІ ћоBШ@А#”J%GŽЁЋЋ‹‡2>>ўЮ:Z­–SЇNбббУсоїƒ0QHр§SHЈ\SSŸ}іЅЅЅяLаЄќT№6.sэк5 ЏU*•шt:ЌV+•••œ9s†'N0::ЪП§лПсїћI&“$ RЉ”,Vя…LŠ? ЙЗrЏц[wЃ<`;_>r ЪЛyюіЂН\o5/н‡&s в}šNЇq8\Иp+WЎpчЮ?~ЬФФ>Ÿp8\А№жииШ™3gЈЌЌЬ+zт@ЯќВЏ—\тгFŽД|}чы+п8ѓЕЕY^К­ИяrmЛйzвГ=пxЗКПЅЅЅ…ВВВœћ#Мo„'`лHzN'ЧŽуфЩ“яyjЕš’’>џќsъыыQЋХЧСюЂбh8rфїwGKK А~‚™=Y‹FЃLNNrяоН‚ћŠЛ\Кt‰ЏПўšЮЮNєz=џёџVЋо лЉЂ+ь&Л)цх6і’Нl?N“H$dС]ЏзSWWЧз_ЭЅK—xіьП§эoљЭo~C?БXЌ ћйd2ёХ_№йgŸЩЯƒ\њСe?в„ј$-С'ЮnфkRЉT466rљђenпОзы%™L`БX8ў<ЧŽУjЕюژ‚\ф БЫ~Эчѓё›пќ†ссaVWWѓЖЇRЉ(**ЂЃЃƒžžЮž=K[[NЇЃбH"‘+еыyЙЦА“Щћ~žјoеЅЕ[9тv:БЮ{сїyЅзЄЅаЖђIК6ЅырCUТЬч ЪGf^ЙЭDМ­ЖНQ›ЕБ“sŸJЅdGžRЉ” дX,КЛЛЉЏЏчђхЫellŒХХХuE1‰§§§<~ќ˜“'OR]]Ныћ-BШ`ВUЧЧvЖЫеNІ{ WиYЎп3џ6 œ;wŽяОћЏзKyy9'OžЄЂЂ‚T*E4]7ЮьŸЙі!з:лu8ф;VBшћxЩ~уё8cccмЛwХХEрн"ЇOŸцтХ‹œ8q‚ъъj9пU.YЁP`4)..  БЖЖVpмљШ'ЬgоЋ{ёe@,c||œџљ?џ'ѓѓѓыњQЉThЕZŒF#VЋUv;ЖЗЗгаа€нn—нКљЦ—яЛ)иGЃQоМyУ7hhh ЖЖvG$Зтрр |н544pщв%RЉдЖ„Џ§ьиЮwMgВ›уоЪё“мx~П_ђєz=‹%я}c08tшЕЕЕtwwѓђхKnмИAoo/уууЌЌЌШE1fggyіь}}}В‹3ѓолчK L„'x;y‘’ѕKK*•ЪЙH9žЄp:щїd2‰RЉЄББ‘‰‰ JKKЉЌЌdvvVЮGЄRЉфEњ[š№d†пIЮi=ЕZRЉЬ›-1idуѓљxёт<_3 r‹ЏОњŠŽŽl6jЕzгќhJЅ“ЩDII №{!/‹эљОь7вщ4БXŒххeМ^я†ы* ~їЛпqєшQ~ќуѓХ_P^^ўžFšL{t§ьч‡ŸЩdŸЯ'пЃ™B|6™чLЋеR]]MUUчЮ“‹bќіЗПЅЏЏX,F,chhˆлЗosщв% ƒx{‚ђ@ јфšдmц4)$щЗ”l?‘HШЙКbБсp˜ЕЕ5жжж…B„B!"‘ˆ ‡‰FЃD""‘ˆќ{<—'(Rў/Љ§Ь ™K*•bvvЧC Руё`2™жэGІ`ЇRЉPЋеЈеjДZ-­V‹VЋEЇгЁеjбыѕыƒС€NЇУ`0`41˜L&L&FЃN'З)х0“ФС­œ1 ћxHЅRєѕѕбллЫввХХХtttpсТЮœ9Ckk+.— ƒС3Œ2пЕ`4БйlD"YШЫt R!sН§мШхФлЫы[jгh4RUUХБcЧHЅRD"–——™››cvv–H$B?‘H„`0Ш_ќХ_P\\ŒJЅЪщ^’DќЬ§’іEЪЩ—Й]ЎчgЎ§•ЖMЅR ZZZјЋПњ+вщ4NЇ“жжжw\_™эхъ/ЛH†RЉфєщгX­VNЇ“ЊЊ*Y,Юw3]™}фкпьѕЅuВгdmЗОйJюnКгЖтЦ“\Й^Џ—x<ŽNЇУbБ`6›з­›я~”кШ,ŠёйgŸЩE1^НzХвв<рёуЧtuuЩя}@А›!O ‚}JЖ@—L&e!-ВЖЖF0\'а­ЎЎЎ[$б.ЫЂ$дхчВJNЛЬŸ’+/ŸлDк6r†Ыf‹zйМLчžT4S˜“„?Н^NЇ['ђe‹{fГ™ЂЂ"Yш+**’џ6 hЕZЙэB?!є$ayy™—/_ВВВТЙsчшююцФ‰>|˜ЊЊ*ЙˆEіЖ›Еm0Айl( 9louuѕpКккKЗжћШY– “ЩDkk+љ—)ЛѕГГГєѕѕё№сCмn7ccchЕZшщщЁЈЈX/і„B!|>ЫЫЫЙHйlЦnЗуp8аh49Ÿ3Щd’ЕЕ5yћP($‡Tкl6JKKх<}’УВДД›Э†Щdz'ь2 БММЬввЁPHv"k4ŒF#‹EоVzžX,ЙкБеj• ,dяk<—ЧКВВB4EЉTЪ‚БУсsКeŽG ѓL&“”””PYY‰Z­fvvV>fFЃ‘ВВ2‡œ›o7У^џ?іоєЙ­+Нѓџ`_‚иС}пIQ eJ–Ќ]Жх–[nw'нqЅ+ЉJЊ{jfR3ШLеМЩМœъдєd&щvЇнŽе-/’,kЅ(Jї} ‚ля…~їЄHŠ”D‰’ЮЇŠE РНїмsЯ=Фљояѓ<[yиДопŒЮл—}ьx<Юьь,ЩdNGnnюcBо“іЁT*WХ(++ЃЅЅ…ŽŽ:::X\\флoПЅЂЂН^џвr@ ‚з!ф @АƒlДиXЛА‘rїHbфь‘D8IДЫўYZZ" ВДДD8^хЖЫvнХуqй—э “к‘-Јe‹gй"šVЋ•КйТ[vЈыZgШк~ишgmиnЖh‹Х ѕ•ЖY{йэзjЕ љGѕЄпyyyфххЩnŒь“Щ„бhФ`0ШлHB_vиЏре@gС`NЧсУ‡Љ­­хРmшРл*вbоh4F ,,,Ќ,68žwўАѕЖп(яфNЂеjq8477Ыyт’Щ$KKK444 бhИvэ‡ббQЎ]ЛFSSFЃQv‘ЅR)fffшыыcppЉЉ)I&“Јеj,‹\Œ ЁЁ‹ХВ*зођђ2 0<<Œзы%Ыю;ЗлMMM mmmИнnRЉѓѓѓtuu‘ЩdШЯЯЧхr­ЪъѕzщыыусУ‡LMM‡e!OЋеЪЁж‡ЂЙЙЋеJ&“ajjŠоо^ЙиEssѓЊpтT*E8ІЏЏОО>ЦЧЧёћ§Фb1”J%&“ ЗлMee%”––ЂзыQ(,--qхЪˆХbTVVвммL4ЅЇЇ‡@ @2™$77—ЪЪJŽ=JYYйcnБlq№yŽ‘’ŸFќKЅR,//3;;K"‘ 77ЋеŠйlоіё3™ЬКE1ZZZшщщ‘d%“ЩЧцё H <+BШр9БžУ`эB=[ЌЪ[ХbВ'…ЃzН^|>Ÿ, љпRјžфЈ“’ІЏ Y•~$БBrd‡Аj4љ'лс&…ЕЎї9ЩЙ–э “Еѕ„.)џž$Тe‹sRАф ”њdee…x<.џЌ ё•њ/лU˜НЯ`0ˆпя_зE˜}.zНžММ>ŽJЅЂАА}ћісp8˜ŸŸЇЏЏЁЁ!Ў\ЙB8FЅRёЮ;я зыёћ§ќц7ПсђхЫxН^р‘˜›››‹Z­–ѓі тѕz‰Чух™[ы:žхЛяОуж­[ВˆзккJii):ŽХХEFGG—…F ЕZНъњdУx<ЮааїwЧнЛw‰D"ЈT*єz=FЃ‘t:-?фщээell ­VЫјCЊЊЊ€еЙ№&''ёx<ЈT*L&JЅ’h4J"‘`vv–?ќс”——SPP@nnю!6)*+/,,ШBžгщ$??џЙоЇZ­–ТТB Ÿл>`-BШСУГффYo?…Ћe2Ђб(сp˜ХХEМ^/гггВ`7==ЯчcqqQьВнeй @Щ g00™LX­Vl6VЋUЕZ­X,YА3rО8IмЫш$a.[“„:i1И‘ГlэBєiњs=З^іПзKюОQюкќ}’г1лЩ'х”B‘ГО`0ШТТ‚ќГИИИJ№“rњ§~ЦЧЧWЙM&yyyX,ŠŠŠ((( ИИXњ$Я`0<Жˆ_{ойч,{;Ук№яьзŸ­V‹еjЅИȘ‘‘–––˜››# ЁзыwT$YЯMјМУ"7:n6л=^&“!''ГйŒNЇ“EЕX,F:&399ЩХ‹™E­VгккЪG}D[[zНžххeкллљќѓЯЙzѕ*НННДЗЗSZZJaa!эээtttрїћбщtsтФ ъыыЩЫЫ#‘HрѕzщээЅ  ЕZНЊк№zs 4ЇGЃQt:ххх|ђЩ'дззЃгщˆХbƒAЦЦЦШЯЯ—Уj7Ы“ЈP(˜››ЃЃЃƒћїяF1›ЭьнЛ—уЧSQQA,уСƒмИqƒžžЂб(пџ=uuuфчч?жVNGYY|№еее,,,pуЦ Ў^НJ8fvvЧУтт"yyyraŒЇНžв5нhћчэ:нЮ>ГЗFЃЬЭЭЩЙ%Чѕг†жo%Œ}Ћл СvBž@ [`ЃХ˜T6ГААРмм>ŸOvзљ|>ццц,.. …ф"Щd’L&ƒZ­FЇг‘““# r‹EїДX,ВЛNrеIQv%W)VЪх–э˜ЫЎјИбyН6ZјЌЭwї,l”wOrсeWх•WщКHN>)„y­№ЗДДD("Ш9’t:\ўјc‡,†УaZZZф‚й.нѕк(ЭЕ†d2I(b``€L&ƒеjХd2ЩaљRСЭŠIЏљ§~YZZ"“ЩPSSУщгЇ9}њД,ДЩЎ@ŸЯЧФФSSS„BЁЧЎгщфШ‘#œ?›ЭF$!‘Hазз'џ§YZZ"‹mщкmЦFч;wп=э~™œœ$ЃVЋqЛн8!Ќ ‚Wё R o ЯуЫz2™”ѓй-,,рїћ™››cffFvлЭЮЮ2;;Ыќќ<‹‹‹ВЫD­VЫЁЏvЛ]ю$—ХbСсpрp8АйlЋ 2Hт”JыžФf ЊнNЕ]qqэ9Jyњ6sYd;џ$Ÿ$іIЁЯйсЙ~ПŸљљyќ~П:™-Ь†Уa‚С ЃЃЃРЃ0:“Щ„Ус<)Wі‡,иJТоГ$E^Žгзш‹ЕТsNNѕѕѕфффАИИ(;žъъъžћБзВ^Ш§Vyтг< P(rСЉ*ЋT˜F­VЧ ƒ9чхфф$п|ѓОЎP(ˆFЃrиЌ$ˆљ§~Ђб(GvиЙнnіяпOCCУЊsЮЫЫЃ  @х7ыCIЌЋЋЋcllŒББ1јуџШН{їd???ŸВВ2jkkбыѕЋЖпhПсp˜ЙЙ9љ3ЅЅЅ444P\\,їoMM ###иl6|>ЁPˆ……–——W9Љс‘зввBee%ЙЙЙШEЄМЄйЁПЯƒ“ŸхЮNm1??ЯФФщtZvRлэічеL@ xa!O o4›…7JЮ.)T3‰АААРьь,“““єїї322ТФФ„œл.Ш•^u:\ еjЕтt:)(( ЈЈHvlхччЫa˜йЎК'Mи ›-€v“иѓ"кВ6„WBЊЬ+aГй())‘џŸ]A7‹ЩљММ^/^Џ—™™ІІІфТ$RИt<gtt”ССAвщ4ГйL~~>ЅЅЅTTTPUUEUUnЗ›Э&‡Fk4𠋆РюКvo"k ЃбHcc#vЛ]ёGFF8qтФ–\Ій"єvяя—Qьb­xИе6Kл%“IFGG™œœ$ Ёбhp8X­VДZ­\эS*#хv[ZZZїќЄFЃQ.ЧхvIѓ№кў’DВ']#ЩUgБX8zє(щtš[Зn1;;‹пяgff†d2)пчUUUœ?žуЧЏšK6Bšc$t:\‘V {•œлR‘Iр\ЏЈŠЩdТщtЪЮEщсFі<—э|^ьєУЁgyX‹ХфПн …Bž‡m6лѓnІ@ ь8BШ ‹ьХA2™$уѕz ГГ“088Шєє4ЁPH•Ж•’ЉЛ\.JJJЈЊЊЂККšВВ2ЪЪЪpЛнЋФš­ф‹Ы~]8Я‡эєЃRЉ”CъђѓѓijjўН€I8f~~žЉЉ)ЦЧЧaxx˜ббQМ^/С`P.^тѓљx№р\MисpPYYICC---ьнЛ—’’ЌV+:N\ѓ]Ъкœd”””ШN­ББ1"‘FЃёЉspН*l4FзЫЛ™H$˜ŸŸчыЏП–Cg- rсЅR)?дHЇгфццвддDKKЫК!щвёэv;uuuЈеjrssхc/..2==-‹^йѓЉ4‡o”~ •JEKK œ={–ббQІЇЇ™››ctt”ОО><wюмAЏзуp8(..~bџi4 ƒќЩœн.)Яg8suJ§БіA”4ц$!p=БђyЄ2xP(,--ЩŽy…BAUUХХХфффМьц СЖBž@ <њЂŸJЅˆD"ЬЯЯгппOoo/§§§ВГАА@$!‹‘L&Q(фххсp8())‘ХКŠŠ АлэX,rrrdwžFЃY•ГюIнГ$љ~Sиj<­(КYnAIŒгщtфххQRRBkkЋ(98'&&“{Н^йЙ7==пяЇЋЋ‹/ПќЇгIii)ЕЕЕ444P__OYYfГy•Ss­;EŒ‹—‡Z­ЦfГQ[[KWW—|Э=•••rиц“юѓЇьŸGисNlŸNЇхтR1‹@ РШШэээмМy“ййY4 ………œ9s›Э†BЁРh4RPP@aa!уууЄгiЌV+mmmджжЪсЕR8|,czzГйLQQ™L†††9gсФФ/^DЏзSSSƒйl&™LтѓљшээЅЙЙ™šššMI…B!‡ћ*•Jмn7nЗ€••Иxё"џјџ чй\[HbmП) ьv;хххВƒюсУ‡|ѕеWЈеjJKKYYYсў§ћ|їнwr(БУсУeƒСр†n8щяЬFѓиГКш6švйї“зыerrRЎnмаа ЛрUCy@ x#XoœЩdH&“ƒA<### 1<<Ьјј8^ЏПп/чЙSЋеђBБААттbЙBЂTЅT*Ta4WžиjЉЭzЛeqДиЊњ,}іЄО—ЎЉ$ЬJ9Ѕзнn7‰D‚h4*члѓћ§ЋЊ3==ЭЬЬŒ\PУуё0<п}їгггИ\.VVV˜œœdllŒX,†VЋeџў§TUUa2™ƒOМ/*'ъNЮ=OЛяD"Сшш(уууd2l6uuuX­V1W ‚W!ф р#Ы•%ЇЇЇщяяg``€ССAЦЦ֘™™!ЃT*ЩЩЩСщtbЗл)**ЂЄЄ„ввRЪЪЪ(..І  €ММ<ŒF#Z­v]!nГдVsgэ$ЏВ$‰БйљЅ6Ъ/'Б'оvПйЮ*)'•С`ѓ0%“Iтё8KKKЬЭЭсёxgllŒЩЩIЙвБпя—пЛwяVЋ•ВВ2ЊЊЊЈЉЉЁІІ†ъъj\.yyy †'&ыь RŸЋT*)--ЅЇЇ‡`0ШН{їhkk#''gг№кWэОл ЫЫЫ Ыт–T=:•JЁRЉdксУ‡9yђ$ђ=ЇRЉpЙ\œ9s†……юпПЯьь,_§5===˜L&рб\.’DКжжVєz=еееœ={…BAoo/‹‹‹мЛwюююUзBЏзЫyфжВvўŽFЃtwwгййI^^‹ƒС@&“! 2==FЃСjЕR__OII JЅRЮѕЗ^>УL&ƒйlІЉЉ‰їпŸ+WЎ055ХддгггhЕZY•м{•••œтё8WЎ\сoџіo™ššТd2ё_џыху?ЦхrНьц­Ык…ГVЋХхrсrЙиГgЉTŠ……ЦЧЧщююцюнЛДЗЗ344D0ФчѓсѓљhooЧbБP]]M[[ЧŽуэЗпЦэvЫЁœЛm‘ўКcЕZijjЂММ\х ДДT}‘ФЈЂЂ"~јУ …фїЄ\’zН!’i IDATžмм\ьvЛ\­;77W“жŠœ’№wј№a˜šš’ѓ•Цb1Y8”„+—ЫEii)‡ƒT*<Ъ#їСажжЦјј8ЃЃЃ,..’JЅШЭЭЅЄЄ„КК:ьv;Z­–d2I]]Ÿ|ђ ™LЋеJ]]\=ЖДД”ŸџќчœэѕzbШV’пЋеjЙ"ЎеjЅ  €ŠŠ іяпЯфф$CCCrUх‘‘цццXXX`zzšЎ]ЛFSSћіэЃЅЅEN№П6žXШ>JJJhnnІЌЌŒžžКЛЛщяя—]R’0ѓ4їі‹dЛїT№CЏзoiпых‹ЫўїZq{­ЈЖ§f‡ДЏЗє[ЉTb0VЙ'з†o$І­нпкѓЪЭЭ}lолhNнЌзлN*ФДбўЅ}ъtКUЛv ;1') "‘ˆќ  Q]]Mkk+EEEO§€C vBШС+Чz h4Ъьь,УУУЩa’-„I.šьъЛйћШd2ЕO ыLЅRВCDz}3qTЪe(хА’*СЊеjYЈЫ>п­,ФжЅОЩTЄуlж?kлќ<ЧФfЙѕЄм[Rў­ккZZ[[™œœЄЏЏ‡вллЫШШˆьмЁЋЋ‹ŽŽ8Рў§ћЉЏЏЇЈЈГйМ*ЄяyŸЫ›HvџY,9pр€ьœьююІООЛнў\œЏв1Ÿїx\onЇ8Ьк6nхѓл}џIћп,Зпfлf6лQ(ЙўЖлŽѕиNпnЅ­O*pБ•vя†ПsЯТF…’Щ$sssмИqЏз‹JЅ’гHBэѓЮY)/ !ф р•E‘BЁ###мИqƒkзЎqїю]ІІІфЊГR^Ё§ћїѓж[oбммLQQб*wЦz…*žTИ`'‘r2­ЌЌШ3™ ЙЙЙTUUБДДФќќ<ЫЫЫr(f~~>999$ №zНD"дj56› —Ы…Хb‘ІвЙЅгiйᇉFЃrј•FЃСd2Щ‰жзVп\Џ}еееD"ќ~?KKK$“I иэіuŒ' Тс0ГГГ,,,H$аjЕX,мn7ЫЫЫLOO …фœrххх›іЌ^ЄJеŠXXXУЋ5œ(оbБШЎŸ-r­зцѕ^гщtИнnмn7{їюхЬ™3єїїгооN{{;§§§ЬЮЮтѕz™œœфЦ477sќјqŽ=Jcc#NЇН^/_Ы'-ц…рЗuдj5•••=z”K—.сїћe!ЏЖЖVЎ”ЙžˆАўнЪмєЌ"ЭnПо;%ФіьйГn[wћX‚l„'‚W†Е_ИЃб(ccc\О|™Я?џœ{їю177'/юђѓѓ9tшЇNтшбЃджжЂзыs#эVRЉ@€џўпџ;ЄR)љХ/~СЕkзhoogffН^O]]?§щOйЗoГГГ\Мx‘oОљЏз‹С``Яž=Мџўћ\ИpЃб(їa:&ѓлпў–[Зn166F  ‰ТС hnnцЬ™3М§ілr’№t:Этт"џуќкллI$466ђ7ѓ7мН{—›7o2<2™ jЕš‚‚ђѓѓyћэЗ™››ЃННЏПўškзЎ188ШввзЏ_чў§ћ\Мx‘“'OђбGбввB^^оcNKСГуt:х‚9зЎ]cllŒЮЮNіэл'чIсzlд‡Ђ_п\2™ ‡[Зn1>>N:ІЙЙ™ƒюк"H@А„'‚]ЯZ/‘H000РеЋWљъЋЏИџ>~ПŸH$BNNeeeДЕЕqќјqй}g6›sZ­ЧГ8dv‚L&C Рчѓ‹ХˆD",..222B0$‘H T*gzzš††ќ~?Зnн"ШяOOO399‰Z­цНїо“yRБˆЫ—/гооЮђђ2…BA*•bii ЧCoo/Зnнт—Пќ%яОћ.EEEР#!Pjпђђ2ЫЫЫќЗџіпfaaX,F&“affЧ#Лр<(Ÿу№№0ПћняјэoЫааБXŒT*…JЅb||œŽŽђђђg~~€ЅЅЅuъЏG<чЛяОуГЯ>улoПennŽT*%Ÿg(bbb‚ЎЎ.:;;љёЬ{яНЗЎsъe‡lgоZсBЯZ­ЗлЭЩ“'ijjтмЙsмО}›oОљ†ОО>–––шяяgnnŽлЗosъд)NŸ>Эž={АлэЋіїВЧ§ЋŽVЋЅЈЈˆ>њˆССA&&&шыыуъеЋTUU­гЗТк9p'У!ŸЧў^ЖЫщeїYrЯm%—шгА•0ф­|nЋћлш3/jN‘Ž1??Я§ћїЙ}ћ6щtZ~ЈзааАi.F@ xUBž@ v-kП`ЧуqfggЙuыWЏ^ЅННССA‚С ЙЙЙьнЛ—p№рAіьйCyy9‹Ev­]ДМЬb[%“ЩШљсЂб(ЉTŠўў~ŠŠŠ(++Уяї3>>ŽпяЇЃЃƒ‘‘t:&“‰šš9Мr~~žОО>.]КФ0™LrХDЩНxьи1\.nЗЃбH<gxx˜ііv>|H0фј•••8NйЩ%хЕ‹Хbј§~Lkk+ЕЕЕиlЖЧrСIl5 ыeЛJЄ6dп`0P__Я‡~ˆнnчсУ‡|љх—єєє …HЅRьлЗwп}—††њњњјќѓЯщъъ" ёрСќ~?ХХХr ЃбШ™3gXYY!''G.ќ!§vv–ОО>–——y№рSSSФуёuЋ*j4JKKљ№УЉЌЌ$ r§њuўѕ_џ•X,ЦФФcccD" ГГГмЙs‡‡ВВВ‚ЭfуьйГ:tˆќќ|–——щээхїПџ=бh”D"БЅ>“H$ДЗЗsыж-&&&АX,М§ілќф'?ЁЖЖNЧьь,NЇ“ййY&''iooЇІІ†ЖЖЖUЁиЛЭЦЎtо™L•J…ХbСl6S^^Ncc#{іьсіэлмН{—ўў~ЦЦЦ№љ|Œ166Ц™3ghiiСхrЩтЗpч=™LNGEEgЯžerr’ŽŽ†‡‡љц›opЛн””” еjзэуЕЏ=­cыe2xйNЇgЭYї<Žћ,Ч{жўлnŽКэkЋэлЉПЁ›ЭK^ЏWў›’L&),,фьйГдееЩљYХœ&^u„'‚]Eі…BA"‘`vv–Лwяђх—_ђх—_тѕzQЋеИнn8uъЇNЂІІ†МММ-Й ^E”J%.—‹Ÿќф'ќЩŸќ vЛkзЎ111AOO.—‹SЇNёз§з122Тшш(CCC,//377G8&™LЪ§ЂT*ЉЌЌdppўў~9L6N‹Х№љ|РЃўœŸŸ' Ч+ZЁP(p8\ИpПј‹П ЈЈˆ@ €ЭfуђхЫ$ –––V…мNNN2::J @ЏзSSSУ_ќХ_pша!, ёxœ™™ …BLMM=БŸ$ˆдўЮЮNfffHЅR ЪЫЫQ*•xН^рQСŽ‚‚rssQЉTxН^=-Л}м­экŒ&њ"yЧЬУ’ріЌћнЬ=/#NЧЙ}ћ6Зoпfzz‹ХТбЃG9zєЈШ'^+„'‚]K&“СыѕђOџєOќг?§эээФуqT*ЕЕЕќр?рТ… ьнЛNЗnЯыф(RЋе8Nо~ћmЬf3jЕšмммUљЭJJJЈЏЏЇАА…BЭfУl6Ѓеj‰D"…ЅЦb1њћћљлП§[Оџў{<БXL~Н№цD"БЎА ‰ЋЇOŸЦсp RЉ0™Lr5н@ ‡ Їгi2™ ~ПŸХХE‰VЋ•={іааа@^^№ЈBkqqБ,@mEШЫОі‰D‚щщi"‘ˆ<ž~ѕЋ_ёы_џњБМs ЌЌЌ0;;ЫвввЊО}ебщtTWWSZZЪБcЧјт‹/јчўgклл |§ѕзєїїѓЃ§ˆ?љ“?Ё­­m•3O№t”——sцЬFGGљт‹/˜˜˜рwПћ6›ММ< УcbщѓьязeўМzь„o#‰cccќўїПЇПП…BAyy9Ÿ|ђ eeeшt:1 ‚з!ф `WАі v(ЂЇЇ‡џћџ/WЎ\add„L&C~~>gЯžхќљѓДЖЖRPPАcbУn[+•JДZ-&“ •J%;ВczНўБЪМвє‰T*ХєєДмЧ333FjkkillФ`0JЅЂГГSЎd›НПѕкgБXkпFЎЖь§lф’іѓ4зc#wгz§!‰‡Z­V.tё:!ЋFЃ!??Ÿ?ў˜њњzОљц.^МHgg'ГГГќЫПќ ‡ .pўќyљzЎ'’УюЛOvJЅ’жжV&''™œœЄГГ“ююn._ОŒХbaпО}[.:АнО~бсД/ыиky“ŠlЌЧNфPмЮѕнio­‹5‘H099ЩЇŸ~J__бh”њњz.\ИРЁC‡DH­@ xэBž@ ^:kХŸЯЧэлЗљєгOЙqуН^ЯоН{yїнw9qтѕѕѕиэvT*еЊ}эTвён€$feŸѓZKЉTЪ"кFЂ€єz*•"pчЮ|>щtšІІ&ўєOџ”ƒЂбh№ћ§|ёХєєєШB^і>жЂT*QЋеOМ’ ”——GNNjЕšx<Юјј8SSSиl6rrrH&“ЬЯЯ300РтттЖћJ­VcЗлхŠХ‡ƒѓчЯSSSѓXŽ?ЅR);NЇь*мшœ_Её•-Љеj\.FЃЛнNyy9_~љ%7oоd~~žkзЎ ёћ§ќр? ЌЌ Н^ПJ}еЮџEВV˜s:9rDЎо ЙuыyyyфццR]]НсОDoŸW§^}Vvѓљ?Эx^ћїlэЉЩЩIО§і[Ў\ЙB Рэvsьи1о{я=9_юыфЮ!ф рЅВіЫљЬЬ зЎ]уГЯ>увЅK„B!œN'­­­МџўћМїо{Ы.М7‘­8!6rЭe#…ž.--‘NЇQ(X­Vjkkinn&‹ Y^^оR‘‰эЂP((,,ЄААмм\Тс0}}}ќлП§@ЇгI4e``€ызЏ3??Пэ§ыt:ъъъИ}ћ6>ŸOЎъкжжFaaЁ,N­ЌЌШ9уё8‡Ће*Wp}]€&“‰††\.8NЎ]ЛЦШШЗnн" ’H$xяНїЈ­­]ЗвЊрЩh4*++yїнwщяячђхЫx<Оџў{rss1›Эы>˜иŒЇјDЮCСn`ЛѓъzЎUщ;УЭ›7љњыЏ™˜˜ ''‡C‡qцЬФЏ%BШСKcэђ@ Р•+WјЭo~УЗп~K4%??ŸSЇNёбGqтФ ьvћŽц“кЌ нь|З"оI(•J ŒŽŽF™ššтњѕыЄгiИ}ћ6ЋђцСГ ’cЎЄЄ„––КЛЛхŠИџчџќкллe!oppББ1Тс№–ї/-u:‡тюнЛx<јуџˆ^ЏЇББ‹ХB:& 1==ЭРР …‚ЖЖ6ккк^Kб#ћ<вщ4*• ЗлЭЛяОKAAvЛ‹/вззЧН{їX^^&sсТфJЋЏГРљМШrssinnцч?џ9ѓѓѓtvv244ФХ‹Блэ;v ›Э&‹yk `<ЉП_ЧБњДˆѓп}чПY—­Жwэ>Й}ћ6_}ѕ]]]Јеj9ў>Юјј8№HlдыѕИ\.2™ ЁPhУѓ^Џ”J%рТ… „B!._ОLWW§§§фффШЂ”фШK$дззSRR"їсы<цВЧˆJЅbпО}иэvŠŠŠјѕЏЭ7шыыузПў5+++ќе_§Џ}Пь‹…їо{ŸЯG,уюнЛ №Ћ_§ Н^ЯсУ‡{XБЯ">сB№Њ“JЅИuыŸў9wяо%N“ŸŸЯ_ўх_rіьYђѓѓ_v`ЧBž@ ^8kЉС`kзЎёПўзџтоН{d2jkkљщOЪ~є#*++eСeНшыМ(U*•X­VœN'ЉT ЋеКЪБ#UЎ•„.ЋеК*ьXЉTb2™p8hЕZьvћЊїэv;}єЩd’ЋWЏ222B,#77—––Nœ8зых_ўх_PЉT˜ЭfrrrфтJЅ’ММ<œN'+++иl69GžtНДZ-‡ƒX,&‹‚йХ/ЊЋЋљГ?ћ3\.—.]b||œh4ŠбhЄММœУ‡ГИИШХ‹щяяGЉTЂгщP*•( ‡ƒh4JNNFЃQ‰…GеZO:…Ус ЕЕ•ііvІІІфjЙ …ЃбHaa!‹…={іаддєFИ5Вн^nЗ›>ј‹Х‚ЩdтцЭ›LMMёХ_ RЉјџс?рt:хkEНзЙПžщ~8wюKKKЄR):::узПў5‹‹‹?~œттт-9pŸЖ СЫdЛВчтt:M рњѕы|њщЇєііЪ~ўѓŸsцЬ\.зЊэЄmзО&Џ*BШСK% вооЮџўпџ›ЮЮЮUецўєOџ”ђђђЧŠl‡WYŒQ*•˜ЭfўќЯџœ3gЮШU{ГХМќќ|Ю;Gaa!ЅЅЅдееЩћаыѕœ;wŽЪЪJVVV0 TVVЪbžNЇЃЌЌŒџјЧьнЛЏзK<Ч`0P^^NYY ”––‡бjЕДЕЕЩb™Щdт“O>сдЉSЄR)мnїЊ№@•JEYYџщ?§'BЁJЅ’КК:ЙBЌд†ъъjЬf3---ЬЬЬЧбыѕ8N љэo+ЛњДZ-NЇЕZFЃaџў§ќЭпќ ЁPFC[[&“iU?:ћь3t:&“ •J%/рЄjЕnЗ›'N№чўч”””ЌZД v…B!;*ЅЪО“““\Мx‘ššŠŠŠЈЌЌUlŸFCEEПјХ/0ќПџїџшььdrr’ќЧdbb‚ќр>|˜ЂЂ"рЩ"ГИ‚зЅRI*•baa{їюёщЇŸвййI @ЇгQZZЪ/љK>ќ№CЙ@ М)!O /…‘‘Оћю;zzzаыѕTWWѓгŸў”ЦЦЦUa‘oђ—ѓЮ}+}ђМђi=MЖлОќќ|8Рмм~ПŸH$B2™DЋ[эL@ IDATеbЕZБZ­TWWгжжF[[ ВˆЗSP^їqЗнѓ+,,фдЉSx<ўюяўŽ……Оћю;ЊЋЋ),,ЎМmА6ФPЁP››ЫќcœN'Пћняјц›o№љ|ttt077GWWGхРX,–UoВї+еЧz}П›xYЁиЯZMYrтЯЭЭбггУЕkзИyѓ&‡H$‚ЫхтаЁCќьg?уШ‘#фчч‹ё.о8„'‚N<чцЭ›мПŸ……мn7чЯŸчРX­жЧђA ^oJJJ8ўХХХ8ŽЧТ„;GvЎХккZЮž=Ы;wшщщЁЛЛ›лЗoгккJuuЕ‘ЖIveg•JE~~>'NœРbБPXXШџјG†‡‡! 266Fww7ЭЭЭTUUсvЛ1ыŠHЛ%Џукапн8>žЗр•-дюЦѓ}йЌ76%ё.фсУ‡tuuбппзыE­VS__ЯБcЧ8wюmmmr•t@ xг3Ÿ@ ^(™L†љљyЎ_ПЮјј8†ššЮ;G~~>F,~оЄХb!77—њњz‰„\8хiгh4rqD 1^vЋеJKK ЇOŸfff†љљyКЛЛyј№!UUUђчv‹ˆДY+­­fыvЛyћэЗq:ИнnЎ\ЙBOOГГГмЙs‡ёёqzzzhjjЂООžввRl6&“ N‡JЅZѕ d79ХvыxШTЗЛнГМПгМьуoDvЛRЉёxœp8ŒпяЧуёШ"орр ГГГ$“I\.MMM;vŒ'Nавв‚йlФ|#оL„'‚J&“appPvувккЪоН{1 /Лy‚—„T€bГЭѕ.ЛEЄx]ЩюkЕZлэц§їпчђхЫƒAЦЧЧЙwяяПџ>:N,ІŸ‚Еb›йlfяоНTUUбддФў№Ў_ПЮШШ>ŸЧУ§ћїЉЌЌЄООžъъjЪЫЫq:˜Эfєz=•J%‹…ЯR0H№dФУ„Э‘цюt:M*•"‘HШоќќёXoškxН‡'R­к-§{Нэ@А=„'‚ŽFЃ‘CО‰„љњџY>”ЩdV%—о—r Љеъ “—oeљЂœkOЛЈЭ>ЏьОY/ьp-яy-А_gзпFч–нзЉTjUИІ”M№džЖŸžЖ8Œ$ЂМЉЂЩкМqы‰vыyIЈЮžwЄ‡O‚­Г™ЃnГ1-ц@ и!ф р…ЂP(ШЫЫ#‰D‡У$“IДZэЫnкKcэ;233У№№0###ј|>Тс0ЉT ­V‹йlІЈЈˆЊЊ****p:Јеjy?щtš……>|H4%“Щ`6›)..ІЌЌ јwJ<Чуё066F<GЉTbБXhnnFЃб0<<Ьєє4+++л>/‡УAII VЋ•щщiFGG‰Чуы~VЅRЁгщШЭЭЅ  ЋеŠ^Џ—пW(ЬЯЯ399ЩЬЬ …•JEMM ………ЋЊЅІR)ІЇЇ&`Гй(--ХfГсѕzоА-›ЁбhиГg6›э^а‡B!Тс0‰DЕZйl^[”Ѕї„0ђф0Эьї6њїVіЏЗиПВsм рљ „<@ МP ………„B!‚С ~ПŸh4Šбh|йMлћь3ж§ЌJЅBЏзcЕZЉЊЊЂЅЅ…њњzђѓѓeWŒЧусвЅK\П~NЧ'Ÿ|ђ˜ш—L&щщщсгO?enn€ццfЮ;‡С` ЋЋ‹ўч&lы|ЄЦџђ_ў &“щЕŸŸфžIЅRј|>H$шt:ђѓѓQЋХзЪ—ХfB‰”Б]їзZG№ѓ:оы|=^чs‚н„јЦ%‚ŠBЁ ВВ’ББ1‚С гггЬЯЯcЗлпиE€BЁ NFЙsчџ№џРхЫ—™šš%Жзщt(•ЪџН7nы<я§?Al$СWpW‘Z(‰кЌнЖl)Ж%^ХзI&uЗ™ЄqвлLуI;IкIs“щMллfЗSп{уІMМЩЖdй’,ЩЂ6Š”(юћ’  @ьП?ќ;oŠЄ(Y EНŸ™3Фйоѓтр€яї|ŸчСчѓсt:ikkумЙsœ;wŽююnžzъ)ŠŠŠаыѕ„B!ьv;‡bhhˆ@ РъеЋ)**КтигггДЗЗѓілo3<<ŒVЋeУ† |ё‹_DЇгqљђe>#z…УaТсpЬр6:MСчѓБzѕj–-[F{{;ФfГ‰sV„ХБЁфMДX,lоМ™ќумџ§ddd0::Ъ™3gxэЕзDПlиАЭ›7ЧœS(ЂЇЇ‡C‡бззРФФЋV­ЂЌЌŒююnо}ї]†††D["‘ШyФfцuRŠ<|њгŸІММќz>ъ;žH$B0ЄЋЋK\&“‰ќќќ%+l.fюЖ{хbсZњ§n(04wу9K$ЩЭF y‰D"ЙЅЈеjV­ZХЉSЇЅЛЛ›іііЛVQ№љ|ДЕЕё/џђ/œ7‰D"YLШџИ$‰DrKQЉT,_Оœ•+W288ˆЭfумЙs\О|™ЊЊ* Уэnт-ЧыѕвллЫ‘#GАлэ„B!rrrиЖm>њ(F‘џ.++ ŸЯЧјј8LMMбллKmm-•••пvХХХБlй2!Ц)ƒДщщijkkХz†eЫ–БaУ,‹Фj44 vЛ=fП*• “ЩФкЕk)((e~~>УУУМѕж[И\.ЦЦЦшььdrrђ† gёёёdggЧД3 1>>.‚бы­_Пžььь˜ѓWТœ—’рМA"cЗл9|ј0}}}„B!ђѓѓYГfЭ]+ТKю<ќ~?vЛH$BZZZL~ж™Bп\‚мl‚ зыХхrсѕzЩЮЮFЋе.Ј(†D"‘H$зŠђ$‰DrKQЉTdddАiг&ihh ЉЉ‰Зп~‹ХBnnЎЗМ[@“““tvvвкк**ЧцччsЯ=їPQQ>Grr2›6mЂЖЖ–ццfмn7>ŸK—.144D~~ўЌ}w­§ЉRЉаjЕWф>гыѕ1aЋZ­ЃбИ СM ћUмƒ:“Щ„пяЇИИXЯяї399‰ЯчЛЎdѓ =ЇP(„Яч‹q”Љеjтуу1$&&^qќЛщњTpЙ\466rша!!|VUUБjе*!lJ$‹H$BWWННН$%% GЉбhМтОЖЪД‡ссaкллБйlфццb6›бщtwн=B†еK$Щ­A y‰D"Йхшѕz6oоЬЉSЇшъъbxx˜W_}•еЋW“˜˜HZZšpїРвLLLазз‡Ых" ЁеjЩЮЮІММœИИ8Тс№}`6›)..&++‹ЎЎ."‘§§§иэv2:бBдшпЙ*<ЮЊ‡ ј§~T*@ЇгЩјјИШ]‡VЋЩѕ7п~oDлЃпSоŸmљRЛ&ЏR щшшр№сУ\Иp@ @EEызЏЇАА№ЎљЎJю\”k4>>žЉЉ)Nœ8AWW[ЗneѓцЭ,[Ж ГйŒС`И"ПцЬy8Цчѓ111A[[ЇNтмЙs„УaўјџxN'онј@"‘H$7)фI$‰фЖPVVЦŽ;шшшр§їпЇООžџќЯџ$==šššЛ*пжєє4.—KфЁ‹'55UTk­ C\\fГYфЄ‹D"8Nмn7С`pоуЭц.ЛеьvЛ4 qќјq:„лэ 11‘ььь˜‚7ЋЭ3…(їT*###;vŒW_}ЧCJJ [ЖlaУ†  щЦ“м1ФХХQUUХљѓчљ§яЯбЃGYЙr%ЛwяцОћюЃКК:&зg4Ъ}ШэvгввТ;яМУ›oОЩхЫ—IJJт‘GЁІІ&&\w&RЬ“H$ЩGхю%I$‰dQЁеjйДiнннєєєаззЧЛяОKNNzНžъъjБюRј„УсёMЉЎ:—˜Љє…FЃ‰qŽ„B!BЁаGUцrЇнШўДЖЖђЭo~SфDœššbtt”ўў~†’’ЖlйBrrђœеiЅ€tsˆюWЇгЩ›oОЩoМСРРёёёмwп}lпОЋе*?Щ‡ХbaЭš5ддд№њыЏгии(&Ќ_Пž;w’••%ЊXG"BЁ6›ІІ&Nž<Щ|@KK ‡ƒ@ Рš5kиЙs'&“щЊљ"—ъoкR<'‰D"YŒH!O"‘H$З•JE^^;vь ППŸ—_~™‘‘о~ћmŒF#FЃ‘ВВ21 ZЊјCЉrЎсpПпзыu}E8ёљ|ј§~рЙптуу…ш5W}д~МšpГМRдее‰uRЅR‘––FUU=є›7oFЃб‡мRНЪч‡ёx<Aeeх]YœFrgэЖU~KДZ-ЅЅЅlнК•'NрrЙшяяЧсpаппЯХ‹)..цтХ‹LOOуїћщъът—Пќ%CCCДЖЖ200Рфф$VЋ•5kжАfЭš9:(mˆn“D"‘H$зƒђ$‰Dr[ˆD" VЌXС#>ž}ьcX­Vєz=pu‘шN$11‘мм\RRR# bГйhkkcуЦФЧЧЧœk$a||œЮЮN†‡‡E.ЋеJzz:zНFƒбhТ—пяgjjŠ`0(Bv#‘С`ЩЩI!†i4єz§ЧŒцj§]Јd6дj5YYY<ёФ˜Эf"l41›Э,[ЖŒььlŒFcЬБтуубjЕЈеj!жy<ІЇЇcŽ===зы9t:]Œ МѓXŠЬvю3п …BŒqіьY~ё‹_pфШІІІXЖlїнwћїя'''‡јјј[ЩG њКOHH ЄЄ„ћяПŸЖЖ6М^ЏИƒA†††bЖ›uŸ&“‰ššV­Z…NЇ“n;‰D"‘мtЄ'‘H$’лŽйlц‘GСэvѓЋ_§ŠКК:љб~„лэцSŸњeeeФХХ-ЩARrr2Ы–-ЃАА‰‰ М^/нннМџўћмwп}B4‰ZЮŸ?O]]lЦХХБ|љrВВВащt 222шшш>LЮnГй№x<$&& 1lrr’ЎЎ.Ђk0HKKУ`0Ь"v5цѓ4 ЙЙЙьпПŸММ‡ЛЇгЩ{яНЧ‹/ОШСƒ ‡УX­VxрО№…/ˆ*ЕwkџHю|”{KZZ{іьсэЗпЦсpˆ{ЦBQЉT,_Оœšš –фя“D"‘HRШ“H$Щ-gІH­V“РC=D$!11‘>ј›ЭЦЏ~ѕ+l6<ђ›7o&))I ––Š˜ гщ(((рŸјCCC `Зл9vьџ№џРоН{)--EЏз3>>ЮХ‹yљх—ЉЏЏЧяїc0())aћіэdggЃбhHMMЅККš .рvЛЃЖЖ–пќц7lкД “Щ„ЭfуШ‘#джжŠP1ГйLYY™Hи>3]‘зумSrUЉеъ†™™™aБXшыы# R[[KVVqqqdeeсp88tш'Nœеo“’’XЖl999ѓЖs)\KзJєg …шшшреW_хѕз_чТ… D"ŠŠŠxќёЧйЗo%%%ЗБЕЩEЇгQ\\ЬŽ;АйlДЖЖ.x[•J…бhфо{яЅММ\ИЦg>ˆИя+‰D"ЙЙH!O"‘H$ЗХЙЅ„[юоН›јјx GЅЏЏ0>>ЮШШ;wю$##C„ѕнщbžв~ГйЬ<@{{;‡ІППŸССAоxу :;;ЩЪЪBЋеŠќM---8Nєz=ЅЅЅ<ёФЌ^НZpЉЉЉlпО“'Oтѕzёx<ДЗЗѓ‹_ќ‚уЧc4q8ДЗЗ344D0$99™ЊЊ*6nмS|cfџЮbЏз…rЕmg755•+VАaУ†‡‡ tvvђЪ+ЏаввBZZ“““ДДДаооN(BЃбP]]ЭЊUЋШШؘuПsЕa)КkЂў+„Уa\.—/_цѕз_чШ‘#477уїћЉЈЈрбGeяоНTUUa0–dПH–.sхщŒ~ˆДmл6ъъъXА+Я`0P^^Ю=їмCVVjЕZ~7$‰DrKBžD"‘H qqqВ{їnŒF#ёёёœ9s†ССAоyчьv;###lйВ…’’RRR>RјчbТ`0А|љr{ь1t:|№ННН 244$Њб†B!ќ~?‹ХBYY;vь`пО}фффˆќw‰‰‰ЌYГ†‡~˜ИИ8šššpЙ\œ={–ЦЦFдj5С`ПпZ­&33“5kжpџ§їГrхЪk”*ТаЬѕpцВЙжПк1t:Ы—/чЁ‡btt”ЖЖ6ДДД еjcЮ)##C8WЏ^-мœГх‡b d|ђNТыѕвппO]]‡тШ‘# ЁзыYГf {іьaпО}c4яŠ>‘, šOU­VГrхJжЎ]Kkkы‚\yЪУ’;vP^^>ыНхN~Р$‘H$’Хђ$‰Drл‰ЮЇІVЋЩЫЫcЯž=ddd№яџўяœM("99YˆР=і‹FsЧ}З$’љˆўнБX,Ќ_Пž‹/вййI0œw[Н^O~~><№‹EVФ–H$Щ-E y‰D"Y”ЄЄЄАkз.ЌV+џїџў_^}ѕU.]КDOOПќх/ihhрЁ‡тс‡fљђхKb ‰DаjЕдддPYYЩО}ћhkkЃЗЗЇгI0"^ii)EEE˜Эfєz§"‹" ёљЯ^„эvttрrЙ…BB№***ЂЌЌLˆЂЪіsaЕZйН{7VЋј0ЯдЊUЋ0 ГЎo4YЙr%O>љ$nЗ[ЛP•з"ХХХ‘““УO<СŽ;hkkЃЋЋ‹ббQсT4›ЭPZZŠеjНjuUЕZС`сЃггг$&&RUUEBBТUлtЇ …DA‹пўіЗ?~›ЭF$СbБАgЯžxт Жoп. „H'žd)ЃVЋYЕjызЏчдЉSWTЌIzz:ыж­cуЦsої$‰D"ЙYH!O"‘H$‹‚ЙDœТТBўлћo”––rрР>ŒУсрТ… ŒŒŒpюм9юЛя>ЖoпNAA^VЕX1 фххaБXЈЉЉ! ЧѓФГ: IDAT™FЃAЏзЃгщbœR+ф)ыыѕzЌV+‹…5kж …ФКN‡^ЏaЙsЁЧjЕ’––ЦіэлХ~’’’DўДшт‘HƒС@uu5%%%„B!T*Z­–ффф…FЯ ЋбhШЬЬ$99™•+W  ‡УWœгLoЎ|YzНžН{їтїћ ‡УФХХa0юh!oІ@ БйlдееqрРNŸ>Moo/$&&RYYЩ'?љIvьиAYY WxwтwIrwr­зЊХbЁККšѕызѓъЋЏЮЙžFЃЁЌЌŒ]Лv]скНгsЖJ$‰фЮ@ y‰D"Y”(‚VЋЅ  ЃбHVVЅЅЅМїо{455блл‹Ус ЇЇ‡††6mкDuu5EEEТIНЏХ<РŠѓ‚?„а*Йљ˜Э-}Ўбћ2™LзМЏ™шѕzQЁq!лЦХХ‘˜˜Hbbтœы/єГ‰.РO|||Ьg=_›f†_ЯlЃйlžїи‹QžЭ‰Љ єU0dhhˆK—.qњєijkkЙtщЃЃЃh4JKKйАaїп?555фццb4cŽГXЮW"Й‘Dч№дщt”––ВuыVNœ8гщ=ЂЩЪЪЂККšеЋW'нЊ‰D"ЙхH!O"‘H$‹FCvv6ЉЉЉŸŸЯБcЧИpс===œ;wŽžžšššXП~=555TUU‘››KbbЂp­-F!&šыmг<—љіu=Ч™k›ђY\ЫњW[їzћn1ˆУ3 ˆЈTЊaТыѕbЗлщшшрќљѓœ>}š .аззG8&;;›ЪЪJ6oоЬЖmлXГf ‰‰‰2aПфЎDЅR‘™™IMM ЋV­тєщгWTА‹‹ЃВВRо‹с> ‘H$’Л)фI$‰dQ2[8ЅС` ЄЄ„œœVЌXС‘#G8|ј0—.]ТхrqтФ .^МШ‰'иО};лЖmЙп”*Иб,vaoЁ,–ѓИл­8—kняlƒѕлэТ™эј‘H„p8ŒзыХхrбллЫ… 8tшчЯŸgdd„H$‚Щd";;›mлЖБ{їnjjjШЪЪaЮs‰RД,e"‘ ”””А{їnкллёzН„УaБŽЩdBŸNЇЛэї‰D"‘мH!O"‘H$w ŠыШh4В~§z***иЕkфЕз^ЃЉЉ‰ёёqjkk9ў<ЏПўКЈъКnн:ђѓѓбh4Rˆ|df†BпN”ы9 111A}}=Gх§їпчтХ‹иэv:XPPР–-[јјЧ?ЮЦ1›ЭФЧЧ_сX•HюVвввx№Сyы­Зp8ИнnрУяйђхЫYП~=………ЗЗ‘‰D"ЙЋ‘BžD"‘H=s9ЁDэКuы8vь'OžфђхЫŒбббСШШЧЇЌЌŒššжЏ_OYY‹хŠќs‹йqєQлv­л_3юFЕёNсV^'3?хисp˜ёёqКККhhhрЬ™3444000€Ус`zz­VKyy9лЗogыж­Ќ\Й’ььlfЭёЕЏџлЩии;яЛ0wжѕyW§QЭw9Яё‘†УaЦЦЧ№‡У№џRЉеДvuђѕo|эЗОuѕ}K–Г™#‡пНнЭH$)фI$‰фЮE­Vc4Euбмм\жЎ]KCCuuuДДД044DKK ƒƒƒ477ѓСPQQСђхЫ)//ЇЈЈˆффdt:нœХЛАБилw=,ІsšKHОйmœMUЉTƒA&''БйlДЗЗsётE._ОLGG§§§Œ‡IKKcеЊUЌ\Й’ššVЎ\Iaa!ЉЉЉЂBёЕˆЏ‹щ3Й•ќ‘0№элнЩ-"ŽpЉёoМё D"ђђђјьg?Kiiщ]ЭZr§<ГЖцv7A"‘H)фI$‰фcІиІЬM&UUUВzѕjjjj8ў< ttt`ГйhmmЅЃЃƒКК: )//gХŠ“——GFFЩЩЩhЕZ‘/Lсj•ao6ѕXѓm?—`t5цr‰]/зrЬЛETRBxSSSиэvщююІЉЉ‰ІІ&Z[[Фыѕb0ШЮЮІ  €хЫ—ГfЭQЩйd2 /zџ WЋ€{7ЃбhHБXnw3$зˆ2>Г0ЬЬпшeЪМДВ’тŽњ‡‡ёљ|TЎ^MQYiтїaцїbц}pfѕ№Л§{$‘H$’ƒђ$‰DrG23G™’?/))‰ЄЄ$JJJИчž{hjjтЬ™3œ9s†ІІ&FFFghhˆккZЬf3Ќ^НšUЋVQ^^NVV&“IШPЋеЈеъ9}бmЙс–7ъ˜JJццzЮы!˜žžfjjŠББ1КЛЛЉЏЏчТ… 477гггУєє4ЃбHaa!Ы–-cЭš5lиА•+WbЕZбыѕWДm!ТЎDrЛ™MtSŠК„Уa"‘ЁPHМ7s …bІшmgЎ?Sє ‡УФХХ‘˜˜H8&99™ЁЁ!œNЇhŸ"мЉT*тттPЉTтїBy'цЪы™ыDЯЃї3лq$‰D"‘BžD"‘H–3]D*•ŠєєtЖnнJMM >њ(—.]тшбЃœ&“ ­V;gO‰фFуvЛEXx]]gЯžЅЉЉ ›Э†зыЉф\PP@MMШ—““CBBТЎR‰фN#  …Ф<рїћёxгггј§~ќ~?>ŸПп/Ж ƒA€ї”}+Ђ "ьтЁPˆpшаЁY…7EЈгh4bFЃAЋеŠ)>>NwХd0ФЄЄ‹ащth41)ћ•пk‰D"‘H!O"‘H$w,ГЙЂ]ŠУLЏз“MJJ UUU<ђШ#455Q__/BocccИнn:::xїнwЩЮЮІААввR***(--nНшœzГџЃ8'nЕЛяzs;м!Kб‘ ёx<иэvzzzhnn9яcjj ЏзK8Цd2‘››KUUеееЌ\Й’eЫ–‘‘‘AbbЂp‘ТьЁsБћVВј‡У1Тмєє4‡ЉЉ)<nЗЧ3yН^ё№љ|BŒ ƒ1SДгN™Ђџ‡УР•!З37ЂЗqЙ\Г†ЭF;хf:чЂ?eŠттт„ш=зjЕшѕz‘жh4’ ^Яќ[Џз‹эїŸD"‘H–&RШ“H$Щ’"к™=˜RмIIIX,–-[ЦкЕkщээЅ­­––:::шыыctt‡УСРР---œ9s†ŒŒ ЌV+EEEфчч“››KnnЎOїФLц ГМš`wЕЂ7KH”\?бђl„Уaќ~?nЗ‡УЭfЃППŸоо^z{{щяяg``ЛнŽгщdzzЕZЩdbйВeBX.++ЃИȘмм\вггILLDЃбH—ЈфЖЃ„ДƒAќ~ПсЂХКЉЉ)ІІІpЛнB ѓzНТUЇИчfNбю9E`SˆЪ![ДЂХ­шpз™aЎ3'eПpЅи7sRDDХеЇЬЃ]…Г…џЮќЮF }ŠШ=)ПezН^}zН^{‰‰‰Bр3 тoe}щь“H$’;)фI$‰dI2ŸhІ xВГГЉЊЊbУ† єєєаооN[[єїї322‚Ус ГГ“–– щщщdee‘““CAAdee‘‘‘Azz:III˜L&єz}LбŒkжfцџЛY,%бo1fPD%tЯчѓ155…гщФщt222ТааєєєаппЯрр vЛЗлM8Ц`0’’‚Хb!;;›ЂЂ"JJJ())ЁААььl’’’bш/І>,}”ы[ auUœu“““LNNŠзбn;e]ХaЇt№'[t˜ЊС`˜5дTЗ”їСKТЂ—E zsхЌ‹ЮO7лї(Z|›™ЋoЖi.ї ђО2љ§~ё~єvЁPЏзЫфффЁПJЛ•ѓTœzJˆЎбh$99“ЩDbbЂѕfŠ{:Nє“,Ъ!‘H$‹)фI$‰dЩ3›(‰DPЋе ЌV+VЋ• 6011Срр ---466вммLww7###1UCЯž=‹FЃ!99YT Uмz………dff’––&Тp…2pМY%9ЛЕDЛt”PС@ €ЯчУэvуrЙe``€ЮЮNzzzшъъ!Г•J%6‹…ддTrrr(++ЃВВ’хЫ—SRRBjj*:Nˆ бa€2Офf-T)b“’Їnjj —ЫХјјИ˜œN'.— —ЫХфф$ггг1BrџSD5х>ЌVЋХНR™GчS*eRђЫE Q3ѓб)ТдL‘nІыn>сn6Ё\aЖнйТzЃнzбТпяЩэЇЬQ4ZUr*лEчќSі;>>ЮшшhŒРЈˆ›:Ž„„L&iiiЄІІ’šš*^'''Ч„щF‡њЮ,О!‘H$’л‹ђ$‰DrW=8‹Чl6c6›YБbћиЧЃЏЏццf.]КD}}=]]]Т=5==Э№№0ѕѕѕФХХЁзыIII!77—ЂЂ"Š‹‹)))Ё  €œœвввDШ“di ёzНИ\.†‡‡щщщЁЇЇ‡ЖЖ6:::шээзK0Œ ПUФрММ<*++YНz5UUU“‘‘ABB‚HУеУ­%’‰"оyН^ьv;6›ссaFFFaxx—ЫуЌS˜щјй…xd2™„“Y™’’’„ƒL­V Q)кEЗTЏ§™wЃн{гггИнnмn7LLL099)ФSe>55#њ<‡#Іпттт„šœœŒХb!33“ЌЌ,1OKKщ#dо=‰D"YH!O"‘H$w%ѓ Ѓ‹d(ЮКввRvэк%y===tttаооNoo/ЃЃЃLNNŠ­Ус ­­Mф.JNN&==ЬЬLrrrШЩЩ‰0ЅЄЄ`0„“d!ю‡ЅћQЙ–>˜ЭYsЕэ—пяgrr’ббQ†‡‡…А100РааЃЃЃ8N&&&„ГЦяї …HJJТl6‹аl%\677—ЬЬLRSS1"чтЬы`ЖdћЩ : |tt”ббQ!иŒŒрrɘ˜˜Рыѕ gžњ‡QЋеТ—””Drr2ЩЩЩЄЄЄЁ.99YˆtЪК:.FЄ›™ЧnЎœuKхЗG9wFƒNЇї,ЅЏgњfКљ&''…3Rј&&&„SRЙŸ)N?ЗлЭ№№0---Т ™@jj*‹…ŒŒ 17›Э$%%a0ЄИ'‘H$З)фI$‰dЩ3[ОREА‹YНUrх§yцї}ООRB—Ѓ ј|>!№ЭЬ]ЈgeRж‹ЩНЇ„н*!ЙfГYˆzЪo–бh\№ƒ(‰D"‘\?RШ“H$‰$ŠЋU‚UЃЉЉЉˆpЇ‰‰ FGGБйlиl6њњњТnЗ366†гщЩоGFFшыы# ‰а&ЃбˆЩd"%%E ””ќE)))ТеЂ8[зVДЋ%:Yљl мяІŠІЪ€6:W•т RЗб њ'&&ФwbbЇг‰УсеcбЮсpˆА5Eдаh4 L&999˜L&ЬfГp[fggЧМNII!!!aAой*fJ1Or­(bЕ"фLLLёNqойэvqћ|>сВгщtтA†’cMqз)їЉhЇ]toХa'Йљ(§ЌИјb–GWаU*g+тrЯSr*aЛJDE№ h4ДZ­pЇЅЅ‘‘‘AVVщщщ1!гzН^ {‰DrBžD"‘Hю:ЎU™щŒˆі” ‰IIIфцццLѓx<И\.ьv; аззЧрр 6›ёёq&&&„(4==Эфф$ннн„Уa€G тv‰v?D‹~J›’~fјЙЊ4*!lѓ…ЎЭіў“ЂЦЙ^+G s3ЇшJ‘ŠРPоуё'Š29‡pк9сJQrK)ŸEtELХ}ЂˆJШДеj%77WPQ>­V;Ї3t!§)Х;ЩЕЂ||>Їг)\УJ(ИЭfУуё„;NЩaЇ\пЉЉЉddd™™IzzК(ШЂvбеЙ%‹хїР`0œœГ\ЙOКнnœNЇy‡‡‡Х)х7Ыяїуp8% ‰пЈєєtВГГЩЭЭЅААŒŒ RRRHLLПeRи•H$’Žђ$‰D"љˆЬœттт„Р“——Guu5€йTм{§§§єѕѕ‰u?УУУТ Ё ЊЦЧЧщщщЙ"QЙтОPђL)ЙЉf |бсoIII$$$@bbЂ}‹ЎЊ;s-јнŒAћ|тœ2v“xН^ІІІDтweŠЮЅф†RТ Ѓѓ{)љЁзо\ŸЅ’уP ƒЮЪЪ"??ŸььlђђђШЫЫ#77—ддд˜~f%’[A(Тхr188Hww7эээДЕЕ122ТффЄ(JЁ\—J^;ГйLnn.yyyX­VВГГIOOзЖa–.ŠаІ8‹сХNЂ…рОО>ёpЪfГ111пяb_KK jЕšффdqП,..ІИИЋеŠЩdїHЩѕуїћљuЏ…@ €нnЧ`0’’r“ZИјPЂ',Ы-8цvЛёzНX,–[zмE0Фхr‘€^ЏПнЭ‘ …<‰D"‘HЎ™ыљP ЫЎввR!*)ŸђІ„ЛE;ХЂcŠ[,ˆeš)ђ)ч:›иЇˆfбB’—Nq)“тЄSњGq-*.Лшu”зJеLeбтŸ2‡У1cG‘2 ‰kVr@eeea6›INNЙ зЃвJ_ЬЦ<л5#]v’‰RYv``€ЮЮNКККyЇЇЇ…ѓN)РЃ\пбЂЩdŠЙОЃПч’Л ЅЛтИЫЬЬЄВВЧУФФcccТйЉЬ‡HWрёx ООžффdrss)((   €мм\2220 KњкњџјОџ§я_ѓvИBєёx<ќлП§/Нє.\@Їгсѕz),,ф‰'žрk_ћкМBQoo/пќц7yх•WD>з‚‚žzъ)ўъЏўŠћЗЃЉЉ‰ŸџќчзмоХЪРРыж­Ухrсѓљ˜œœМ"єќf№ќѓЯѓуџЇгI$aљђх466оєуоHЊЊЊшээejj €cЧŽБuыжлм* H!O"‘H$’ЬBЅx†2`Qˆ+ЂЯЬnJn"eЎф1Šž+Ў3EШSжїzНbюѓљФ?ьб9уЂ+A*эšKќ›Э7[ОЋ…оF‡ЦЮ"эР‹ž. ЦЌ}>€hЇЋˆnJFЃб(vбU4Ѓ ‹(ЙО”я ЂиˆВяљž2ŸфV …№zНŒ3<Eoo/пњжЗxу7ШЬЬФуё№Ъ+Џ№WѕWќєЇ?хХ_фЁ‡šЕїмsххх>|˜ъъjBЁGхЙчžух—_ІЗЗ—{яНїжtЬ-";;›ІІ&N:5kПмLўћџя|щK_тg?ћѓ7sK}Ѓ8qтУУУддд1яfбппЯ‰'јєЇ?}SГTBžD"‘H$7™љФEьQJ:ŽФФDЬfГX'кЙ-є)‰ЪЃCL•‚ЪЄzŠ›-:Д4КRыlNЖ@ #ІE gJлЃч3лЋМ№~6БoІ“oІxЈИBЂFхЕтTТ‹ѕzНюЂ…8ХIЇ„++Џ ƒp)ЧИŸЗDђQˆD"LOOуrЙЁŽJxОнnЧуё˜˜HffІ(F™™)<%wYt(Ифі‰D№x<\О|™ББ1‚С ™™™”””Фќмn”пЋ™љ[ГВВDХяЩЩIЦЧЧБйl 244Ф№№0‡—Ы…Эfc``€жжVвввШЮЮІААќќ|rssБX,тк\ Ђофф$Я>ћ,?јСФћћЗ‹ЭfcѓцЭ<ўју<ѕдSьиБƒКК:&&&ФК§§§<№Р ёкkЏБwя^БЬh4Вџ~юЙч6lиР'?љI~џћпѓБ},І§зJЅтЕз^#)) €јјx|№AvэкХоН{immщ<– jЕšддT6nмxЫ­<8\Лvэ-?іBЩЧl6›oКwьи1^xс)ф-)фI$‰Dr›XЈр=hšhNц”ќFnЗ[~^Џ7ЦЕ=)aЌJ9eЎLŠ эžƒ?ИэBЁ>Ÿоо^<Z­VИ€Ђ{бnРhбN wU:EЄS:%ќ7ZЌ‹vм)9џ]tАтЈ[Јƒ2њsZhQ ‰фF‰Dƒј|>мn7ƒƒƒДЗЗгввBWWУУУс˜R*][­V ),,$77—єєt У’G–*• —ЫХЛяОKcc#^Џ—uыж‰ и‹…љюFT-ЮЮЮfљђхxН^ЦЦЦшяяЇЗЗ—ююnp8Инn†‡‡рвЅKЄЇЇSXXHyy9%%%dee‘’’"т슿 RSSyўљчg]}^‰‰‰ќнп§{іь Рч?џyјЬg>#тESPPРЗП§mўќЯџœ/|с 466 G_ рѕз_gїюнBФ‹FЋеђТ /А|љђ%'фIn Зтћwіьй›~ŒЅ„ђ$‰D"Йƒ‰˜СOЇгЭЛюЬїf evсЭяЂsйЭ\>==ЭРР?ќсiii!;;›|Я~іГ1aМ3C`g†­Ю\/:яŸ2Эѕх|Т›,:!ЙгƒŒŒŒаккJCCЂкЌr=ыѕzВВВ(**ЂЌЌŒђђrЌV+IIIW} Y„B!QЈGyјЂ%ЙгPRI(UђђђиИq# аооNSS---ŒŽŽ2==-œЅЇOŸ&''‡ŠŠ V­ZEUUYYYwЌ=99ЩЎ]ЛHLL\ањїо{/iiiТ‘їілoѓо{я№Х/~qоmŸ|ђIўђ/џЛнЮ~є#ОїНярt:™žžІЅЅ…`0ˆFsЅ`ЕZyц™gxэЕзЎхє$’‚лэцХ_dнКuЗЛ)w RШ“H$‰d‰pЕ'ІГ‰ZJŽЛИИȘАYeљlGOЪћЪмчѓ‰|[jЕЃбˆеj•{Ѓл1›CofИэЬѕЃЗЛКнЬѕцкnІsO"Й„УaМ^/ННН455бддDww7уууxН^‚С ƒ!ЦХTXXHff&ЩЩЩ"TќN?юF>Ъ}mБ1л§SЉцЎзыЩЩЩЁККšббQ:;;iooЇЛЛ›Э†зыeppёёqš››БZ­TTTPUUE^^IIIwдu=11СІM›МОFЃЁІІFy/Нє№anоМyоm“’’XЙr%чЮу…^рЛп§.*• ГйŒС` ЕЕ•ЇŸ~šќЧ$99љŠэїяпЯЎсьЎdhhˆгЇO“””Фж­[c$œ>}šžž***XЙrхМћinnІННp8L^^+VЌXp€жжVšššЈЉЉ!77ї#Bcc#---тМцЋ|љђešššШШШрž{юЙ!ЧЗлэœ,ђљЯžІІ&vяоMSS}}}ќЫПќ O<ёDЬ>'&&јмч>ЧЋЏОJRRёёёX­VОєЅ/-ЈO|>›7oч“žžЮїПџ}>їЙЯ‘ššЪааƒ§зeџў§1ліѕѕёGєGДЖЖВaУ|>‡FЅRёня~—/љЫWяwосOўфO№x<мџ§дззуѕzyљх—чЭэЗuыVккк>МwUVVrёт՘ўјГ?ћ3~џћпѓаCaЗлyќёЧyюЙчјц7П |NћрƒŠŠТGމI'апп/Dг'žx‚п§юwќХ_ќ?ўёмЇK)фI$‰Dr‹XLbдЭlУLп\Ык†…†Уоё,њ82lWr=(Й%].ƒƒƒДЕЕ 7Ъ№№АpпY­VВГГ)..ІЈЈˆќќ|222HHHXї”љˆD"ЂЊюдд*•ŠŠŠ дj5NЇ“ББ1€ШЏ–‘‘^ЏЧсpаппгщ$`4…ј3[ОПББ1FFFp8"чg(B­VЃзы1™Lddd\‘/0‰аззGooЏL+**аjЕЂАˆЧу!>>ГйLvv6‹х Q0 сёx`ttT$‡7deea0ЇЏЏH$Brr2хххddd,И/“““ŒŒŒ0>>Юфф$@•J…бh$==‹ХBZZкЂЋŽѕ233)**ЂЂЂ‚ўў~саФnЗ‹jЬнннДЗЗS^^.ТЧ“““ѕy*…,Ў…xЏзЫШШР‚D< цЁYOO•••ќяџ§ПйЗoѕѕѕx<~ѓ›п№›пќ€ввR>љЩOђЇњЇ-ш8;vьр…^рoўцo8tш'Nœрќљѓджж’ЭзОі5^zщ%ўјџ•JХ}їн'*уюлЗ_џњзlкД‰gžyFьs``€={іPXX#(`Ы–-<љф“455ЭйЮуЧѓы_џšЯўѓьпПŸoћл”””ˆхС`‡~˜>ј€#GŽАeЫОїНяёмsЯa0xійgЉЉЉallŒ_ќт<§єгьмЙ“Зп~{жcжееpўќљїчRF y‰D"‘HЎ‹Й„ГЙ^Яїо|,v‘Bсjч-‘ЬD~ьv;MMM\Иpццf†‡‡]k‹…‚‚***XБbХ^‡Йtщ‡fppFУ< BЅњњњ№љ|ЄЅЅQUUEuu5fГ™††ъъъТяїc2™())со{яЅЄЄ„ЄЄ$ё]‹D"ДЖЖrъд)ККʘššbzzZ8щ fГ™ВВ2жЎ]KII &“IlпииШЛяОK__†={і VЋщыыЃЋЋ‹ЩЩIt:VЋ•uыжБqуFЌVЋpх)blkk+'OžЄЃЃЇгI$Сd2Q^^NVV§§§œ9s†p8Lqq1 ЄЇЇ/Ј}>ЃЃЃ\Кt‰‹/взз‡ЫхЈЄЄ$ЌV+UUUЌZЕŠТТТ;ЂP„Z­…2 XЙr%§§§477гииH{{ЛЈxkГйИ|љ2eeeЌ_ПžŠŠ 233ILLМЃО !Кrэlyэf#Z\Ž.˜QPP@mm-џњЏџЪџљ?џ‡гЇO‹emmm|џћпчŸўщŸјйЯ~Цg>ѓ™ЋЧbБ`БXЈЉЉсаЁCДЖЖвжж†еjрўЯџЩK/НФћяПЯО}ћјлП§[ВВВј“?љўЧџјМђЪ+1BžR­ЗЁЁоо^!Р=№Р˜L&\.ННН”––P]]-м„џ№џР[oН…ЩdbэкЕƒA!tЭЦK/НФ/~ё ^}ѕUіьйsХђчž{ŽОО>žўyq^jЕšo|уМќђЫ|§ы_чТ… Р‡Й п|ѓMвввјЧќGєz=пњжЗxѓЭ7Љ­­НjŸ*ћ_ЗnNЇ“я|ч;8~јУRQQ@ee%пјЦ7xійgљњзПЮ™3gАйlДДДКь>ё‰OАlй2ж­[ЧбЃGЙxёЂђ"‘ўчŽпячпј†шы_|ј0<йчѓЭ™sЙЖЖ–Џ~ѕЋќшG?т+_љЪЫђ“Ÿpќјqіэл'D<јаmњя|‡чŸž?њЃ?š7Dx&ПўѕЏyљх—yњщЇМЭRF y‰D"‘HnвЅ&‘ЬN$СщtвддФсУ‡illФхr сЩd2Бjе*jjjXБbYYY‹кyt5ІЇЇ™˜˜РщtЂRЉ8|ј0nЗ;Іh‡нng``€ццfЬf3ѕѕѕLMM‰ессa:;; шt:***„x‡щээЅООžЁЁ!ŒFЃX6==Эјј8ННН\Кt‰ЁЁ!іьйCMM‘Ћ}nЗ;ц>644„нn'‰Аoп>‘F`jjŠІІ&^zщ%КЛЛёћ§bЛ‘‘:::HKK# сp8PЉTLLLд‘H„ССAŽ=Ъ›oО‰гщ$ Ёеj1 „УaЦЦЦшьь9ќqВГГohОЋ[ЩdЂВВ’’’6oоLss3ЕЕЕ455122‚нngllŒІІ&V­ZХЦYГfЭ59яЬfГ?WBЏЦєєДx=S жjЕ|љЫ_цЫ_ў2===Мїо{Мїо{МѓЮ; сёxјтПШж­[…pu5‘xлЖm1лddd’’‚гщфБЧ‹йF“ЗЁТЖmлиЛw/ƒЌЌЌ˜e)))LLL022"„МшуУ‡bЅ’яjPіГŸёЬ3Яpша!vюмyХrŸЯЧПџћП№рƒЦ,SФУ††Z[[)++у?ўу?иО}ћљѓ>ўё/XШ›y^jЕšG}4fйC=ФГЯ>ЫЙsчhkkЃДД”œœž~њiкккЈЉЉ‰Y?%%ˆэя .зу'?љIёўg?ћYъъъјиЧ>6Їˆwьи1yфО§эoЯ*тќђ—Пўр.UаыѕфццвббС[oНХЇ?§щЋі…Т–-[bDСЛ)фI$‰Dr‹ИюДХЪ\ЙЂn%ЗћјЩBqЙ\455qўќy.]КФрр ^Џ—ИИ8rrr(++cѕъе”––ŠмXwš3‘H—ЫENNŽШжййЩјј8‡ЎЎ.l6‰‰‰Ќ\Й’@ Ррр ƒƒƒ„Уaš››YНzЕ­„Пџ‹…M›6a0ШЫЫa†‡ƒццfоџ}мn7mmmPZZJjjъ…&"‘vЛŒŒ ЪЫЫIHH`tt”ЎЎ.ІЇЇ…ƒrЫ–-X,"‘===?~œžžќ~П#ЌV+zНžссac\RзrЯВлэдееqьи1œN'FЃ‘еЋWГrхJВВВƒ466rіьYl6 ЄЅЅё№Уc6›mоМљˆ'==uыжБlй2:;;Йxё"/^ЄЗЗ—ЩЩIЮŸ?Ярр MMMlкД‰ђђrL&г’pчi4JKKinnЦщt.h‡Уќ!gРЯўsьv;§з-ж+((р _ј_јТˆD"8p€§ћїуvЛљџяџёѕЏŸќф'ќєЇ?Нтплш§ЭDqЅЭ mUО—Š@ЏœœЬoМA$сьйГМікkджжR__нnц8?o>~ќуѓЭo~“H$Т‘#Gfђ.]К„ЧурWПњПџ§яХВЦЦ֘ѕЪЪЪDnИйњЁААpAэšєєє+r G№Иxё"ЅЅЅЈT*~ђ“ŸpX~№Сдее188ФіІЊгщШЬЬяoлЖSЇNЭйžwоy‡ќрx<Ž9ТWОђ•+юc~П_ьџрСƒєєєˆe6›Mќн’kG y‰D"‘HЎ‹™EЎцТ›mytxмЬї$’Ѕ‚R‘ѓќљѓдззгее…Ус  oљђх“““ƒЩdZRž‚JЅТjЕВ}ћvЪЫЫёљ|œщfћ|tШШ)œВЈЈˆН{ї’™™IEE]]]˜ЭfbccIKK#--јјxL&гOТQд …‚””ЦŽKrr26› ЋеЪž={D.КЈЈ(ІNЪ Aƒ№x<ДДД••Ecc#иэvAСщtвббACCххх444ˆbnЗ›ііv:::pЛн8‘CЏ?ЄlЉЉЉЈT*bccйЕk—;::АлэИнnкккDИ' ТЂ'OžLxx8 …‡УЫхЂЁЁсЄ„МккZjjjp8bќ•BхЄёзщt AЁГГ“ŠŠ jkk‰=/…oнˆwп}7/Пќ2‡ƒЏПўš[oНЕпe ЩЯЯ№ yTЋефхх‘™™Щ˜1cњ]кДiРџ„ЗG}ДЯаЩЩkv"ЌZЕŠ_ўђ—ЄЇЇsј№a'кБЎU‰žсИ§БqуF9|ј0ЏНіѓцЭ#++ЫЇZЊЗp7gЮFŽyЬm†……‘““#Цo$GмЩазX!UŠ…џЙГВ˜:u*dggћ8эv{ЏmHaз­­­455ѕљ@Ѓ/о~ћmЎПўz\.ПўѕЏyф‘G˜6mšˆj4QЋеtuu1aТ~ѕЋ_wЛ}§†,((ру?ц‘GPл.4d!OFFFFFFцИx<---h4сnёvвŒ˜чvЛБлэ8”JЅШхrОК'ddzвееE]]`лЖmьнЛW$%55•Щ“'3tшаŸLHрёP*•ТхЂVЋQЋе‰cїїї',,ŒшшhQЌAЏз СэvуrЙФУЧC]]лЗogћіэ”——уt:ёїїE\.vЛ]Ќ# |}ЁP(HLL$,,LИјЄb *•JTюъъК]1эээиэv &“‰шшh‚ƒƒХXІеj‰ŽŽТо‰вжж&D:ЧCaa!хххНЮ—ЮЮN1žvttажж6р<|ч’ g2™ˆ%))‰Н{ї’Myy9ЅЅЅ455QUU…еjeќјё˜Эцv§XЯСž˜˜ШТ… yс…XКt)ЗмrKПcФвЅK˜2eŠЈф ˆхџпџћ|їнw§:ФŠŠŠ?~<€Ј*<іŸŽ|ИўѓŸёx<ќњзПіёšššhll<ю~М…Иc!ЙџіЗПБyѓf>ЬwоЩКuыФ92bФ‘уoѓцЭ} yK–,с–[n!99™ЉSЇВiг&bыMFFЦ€кеmmmdgg3jд(1mћіэ@їёІЇЇнŸ}{{;ѓчЯїё<ј\НћnъдЉтРчŸЮМyѓ|іћРpп}ї‘œœь3]ъЛЛяО›/Пќ’uыжqѓЭ7Г{їnё™iЕZ&NœHFF[ЖlщSШ{їнw‰ŠŠ9єЄsв;ѕ@ffІ8V™оœП'ddddddd~4\.6› 6№§їпS\\LWW—OnЉў—жQ(X­V222јъЋЏф|)2?IjjjиИq#}єДЗЗ‹аЫыЎЛŽyѓц1yђdЬfѓ!тAїрчччS‰г{,QЉTјљљЁеjфІђx<тІяшбЃtuuТФ‰™5kW^y%—\r ЁЁЁ§іБїјЅT*быѕ}ЖЯ{М;ж˜з3яо…ŸŸBьhЕгѓЃбHzz:7оx#Пќх/3f ДДДАwя^>њш#жЏ_Oeeх9'fJ!‘’|,ž}іYцЬ™CVV>ј`Џмr+VЌреW_%))‰•+Wњ|ювћŒŒ цЭ›зЇCЋННХ‹“Р 7м0рукв—(.[Яyв:=Ѓ­­ €ВВ21Ээvѓју‹ЯЏДДДЯmСБz/'Нзыѕќч?џAЋеВ~§zž}іYБŒFЃсСКПž…9VЎ\Щ‡~(ђп-XАН^/RHьпПŸѕызнюЗ“сйgŸ}шt:љзПўР§їп/nH}зГ^}ѕUђђђп~‹‹E.ž~њi***ФМ>ј€7њTюы3{§ѕз‰ŒŒ$77—;яМгgžфЂ[Йr%ћіэѓiгюнЛyт‰'>|Ș&=Ф-**лљју}Є=є~~~<їмsЧьЏ …ŸюШ.######sкPЉT мn7}є …‚Щ“'3mк41 _ъшш ЊЊŠЬЬL6mкDQQЃGfܘ1НDСsбA!#3ьv;ЅЅЅ|љх—dggS]]Z­&44”‹/ΘqуЦзgЄ <#оЏОpЙ\TTT7‡йlfіьйLž<“Щ„Ыхе\•JeŸBHЯБцxcЗPчяяO`` 477гииHqq1ёёёDEEЁP(АлэRVVvRfЃб(/ …‚БcЧ2nмИ^с„RŸЙнnКККHLL§єSцЯŸЯЈQЃјўћя)--х…^р‘Gaљђхddd№ћпџžыЎЛŽeЫ–‘——ЧСƒIOOgЮœ9дззГyѓfОљцT*[ЖlaЫ–-"Фїх—_ІААлnЛ7KUUЋWЏІЂЂ‚yѓцё›пќ†ЋЎКŠЇŸ~šХ‹sщЅ—rчw2hа >Ьš5kxџ§ї}ŠvL:ГйLMM 3fЬР`0™™ЩВeЫФ2~ј!NЇ“?ў˜Ч{l@§їSFђdddddddŽ‹BЁ@Ће’ššЪwп}ЧЎ]Л8zє({іьaќјёŒ3†ЄЄЄ^‚žїЭnkk+%%%8p€Н{їВoп> IHH ::šШШШГux22Ї•ццfrssйМy3ййй444 гщHLLdвЄIŒ=šЈЈ(t:,V{б_eяcШ‘№v§HЫkЕZT* aЕZћёNƒС@DD477cГйиН{7‡ƒјјxДZ-uuuьнЛЗ—cЦЛЭЧ5###‰‰‰с№сУtvvŠ\",Y ёЕZ­ДДДрt:{9ŠЈT*ŒF#:‚ƒƒйН{7‡ЂОО^|­­­Œ3FИ~l, C† aШ!Ьž=Лзќc…аjЕМјт‹мwп}ЌZЕŠЏОњŠКК:BBB>|8Лwяa–=INNцЙчžcўќљмqЧЌ[ЗŽЯ>ћŒoОљ‡УAtt4<ђѓцЭыГXC_ДЗЗгввТmЗн&ІЕЕЕ‰œk:Ž?џљЯb^mm-.—‹КК:ІOŸЮєщгХ<Љ"яSO=EBBŸ~њ)$$$№‡?ќЋЎК ЛнNTTЕЕЕ\wнuЄЄЄАeЫЂЂЂјЫ_ў"ЖUUUеЫ}Y__OllЌЯr 8ЊЋЋ{х”мmjЕš+V0oо†юs{§њѕќщObнКu ўёpЯ=їј„HЯ;— 6№юЛя’››‹еjхЊЋЎтж[oE­Vc4йП?SЇNNМАА0vюмЩђхЫљњыЏЩЯЯgј№ськЕ‹”” ;ЌYЃб№Ь3Яј|–‡ŠŠ ЎЛю:Б=ј_б€'Ÿ|’Ÿ§ьgМѓЮ;deeqј№aFŽЩž={| `@З#я›oОсЏ§+%%%DEEёЦoјфю{щЅ—xчwјня~7рўћ)ѓгеeddddddN …ЅRIJJ #GŽфРdggsєшQ:Фў§ћ7nЩЩЩ( œNЇШ#еввТ‘#G8|ј0{іьaяоНфффP]]ŸŸ?ћйЯ5jFЃQ8UdqCц|ЅЙЙ™œœЖnнЪіэлiooЧl6“ššЪФ‰IOOЧbБ\0aД}б_Ёœў„ЌОЦƒžЁА‘‘‘FъъъhkkЙЊќќќАZ­”””аееu\СьXэш)пaZZUUUДЖЖ’ŸŸOSSЁЁЁh4QMV њлoћŽˆˆ 55•ЂЂ"Ž=JYYЛvэЂЁЁдj5ДДДааа€ЭfУ`00vьи:–ѓщaS\\zНƒС€ПП?YYYX­Vіэл'B=ЧG@@Р^cкДiЂ ФЩ’˜˜Шў№‡ZgцЬ™Ьœ9шОVцЮЫмЙsOЉIII§VС=V5вўжnбъілoчілoя5OЇгѕ:юЛюКk@m=жrЧjФœ9s˜3gЮ€і•žžЮ[oНеkњkЏН6 ѕћ"00p@сЄГgЯюS †юœv}ЁгщXИp! .ьsў5з\У5з\гчМ‡~јИm7nу’ЙO IDATЦ;юrcЦŒaХŠ§ЮПёЦЙёЦД­ YШ“‘‘‘‘‘‘9.вЭePPуЧчР=z”––іэлЧ‘#GиО};ЃF"%%Ће*Њ99r„+VˆЄвИнn ƒ bќјё$%%ЁT*ХЌ,фЩœttt——ЧцЭ›йБc­­­˜ЭfЦŒУХ_ЬЈQЃаыѕgЛ™g…BJЅB­VЃRЉ„`/-JЅЅR‰JЅѓћZ_šч-Т(•J†JAAЭЭЭ477sрР бjЕ„„„`БX Усpрt:Eѕmјпј&m_­VћЬїої|Љ JЅ’ЈЈ(&NœHUUљљљиl6jjjЈЎЎFЅRЁзыБX,hЕZQХвћЁEЯўщЙ“ЩDZZš(^Q__Я‘#GШЫЫAЄ" .— Н^ORR.—ы‚OCCCE‘ ЅRIvv6dffтp8 55ѕЌˆy22сt‘љi" y2222222'Ф№сУ™0aлЗoЇ  шЇ8tшЙЙЙшѕz:::p:TTT№љчŸГ~§z‡Oј›Z­fЪ”)Œ9‹Х"џ`•9я),,фыЏПfїюнДЖЖтяяЯдЉSЙќђЫ2dˆШЇt!тяябhЄ­­ FƒŸŸŸˆЅбh Тсp`2™z žZ­V„‘JХ($WЃBЁ ))‰йГgcБXШЮЮІІІ­VKLL щщщФЦЦВqуFьv;њЌЏгщФіеjuЏBRх\)ч^ЯBƒaУ†a2™ФC‹КК: ћШшбЃ цаЁCTUUсёxаh4BАSЉTЂH…ŸŸŸЈ џЋ ХЬ™3IHH`яоНЂЧуСЯЯOфы '%%ƒСpС y№ПЯ#$$Н^ЯŽ;ЈЉЉaџў§tvvrы­З’œœ|мЊЌ22gƒццf ;%IWWзO><^цФ‘Я™"((ˆ#F0yђdŠ‹‹}rNuuuбкк*œu]]]bОЗPЇеj‰ŠŠтвK/%66Vм0_ˆ7œ2ч?‡ƒккZОќђKrrrАлэ„„„0iв$fЭšХ Aƒ|ђ]h(•J&L˜@bb"( тттDЎ(Ь‚ p8hЕZЬfГа—””ФМyѓDhjxx8‹EьCЅR1x№`бяmmm(•JŒF#fГFƒЩdТfГсvЛ y9 уЦ#>>^TєŒ‹‹Х%ЄcИќђЫ?~<‡NGLLŒgнn7*•ŠЈЈ(ЎМђJІM›&ђEљћћcБXШЩЩЁ­­M8’ЭfГШ“hБXИюКы˜9sІ Нл'§еыѕЄЄЄ‰ЭfЃНН]T@•…Z­Н^O`` Я1\hh4ТТҘ3g~~~lлЖЪЪJђђђјњыЏEКˆ Y`—9Зшьь$==]<$­ЉЉ!**Š3fАjеЊГм:™s YШ“‘‘‘‘‘‘9.о!pjЕšФФDІNЪІM›ЈЉЉёI.ээКƒОCCŒFЃpуљTЇєоЇŒЬЙŽЫх•ўЄОрр`ЦŽЫЬ™3‰Чппџ‚>Ÿ ЁЁЁX,!bIn4шЩ:t(nЗ[„­і -5 тС€‚ъНяbRHЉ$nAЗ &­/…БJ„††b6›ћlŸдFЉ(дF)ФКЋWUUQ\\LDDFЃ“Щ„RЉФсpPUUХСƒ)++m•*Ъ* ќќќˆЧэvуёx|кэІЋгщ Сэv‹1W е•B/ф<Œ№ПМyƒ тЂ‹.ТэvГuыVjjjШЬЬ$88NЧрСƒ/шыSцмСЯЯƒžэfШœШBžŒŒŒŒŒŒЬ ТшбЃIOOgгІM" d HnМ™3gVЋЁcrx­ЬљFKK yyyќ№УдеесяяOjj*SЇN%99љ‚vтyЃVЋћ ы)ИѕХёц{oKЃбєйяЧr^ dћЧњ,;;;)))сѓЯ?'**ŠАА0QХЛННВВ2rssihhРd21x№`† &Њ2*•Ъr†) 9мn€hЕZ,*зnнК•њњzіэл‡Хb!44“ЩtЖ›)###3`фб_FFFFFFf@x'†їїї'..ŽYГfqша!кккDEРуa2™6lгІMыі%Л"dЮ'\.ьйГ‡‚‚ ‰‰‰L˜0‘#GЪ"о„лэЦnЗSTTD~~ОOQ—Ы…Ус@ЅRDBBгЇO'))I„ЫœYt:ЩЩЩ"wk~~>ХХХdeeЯЈQЃфя™ѓYШ“‘‘‘‘‘‘9)L&—]v_|ёѕѕѕX­ж­ЧХ_L\\œ|у$s^гммЬсУ‡ЩЬЬФхrЬ„ 3fЬ[іBХппŸшшh&MšDMM ЭЭЭtttрvЛбщt˜L&ЂЂЂHII!--ФФФ>ЋѓЪœ9 )))Ьž=›ІІ&ЊЊЊ(((`їюнЄЄЄрчч'WБ•‘‘9/…<™“B ‘1cЅЅЅ47774жl63rфH&NœˆJЅЫїМ™эoКŒЬЙDqqБ—TЉTЄЇЇћ„KЪ\8шt:† Bpp0mmm8œNЇШwчччG@@€(@!‡Хž3f ФnЗгииШ‘#G8zє(C† ‘ЋиЪШШœШп 2222222'„”ЫNJи>eЪvэкEYYйq]yC† !==ФФФЉЕ22g†ііv ())Суёژ1cˆŽŽ–Cj/@T*ƒN' Vє,BЁRЉzёљqQЋе3fЬЪЫЫЩЭЭЅККš§ћї}СІ‘‘‘9?НУ2222222'RЉ$99™єєєу†Ъ ЦŽۘ1c0ЧtнI7О22ч*ѕѕѕSWW‡NЇ#))‰ЄЄ$ЯvгdЮ"*• FƒVЋХппќќќаjЕr(э9€T eшаЁФЧЧ€ЭfуаЁC455 8зЋŒŒŒЬйDђddddddЮQ<Яы\Тћf4((ˆqуЦ1rфHќ§§ћ]~а AŒ?žЄЄЄ3~3{.і™ЬOЧCEEеееДЗЗc0HKK#88XvуЩШœ„……‘@hh(”––RSSCGGЧйnšЬЦэЗпЮЈQЃˆЧl6ГjеЊГн$™ѓYШ“‘‘‘‘‘‘9e† ЦИqуˆŽŽюsОJЅbЪ”)Œ9‹ХШЎ;™ѓ—ЫEyy9ЭЭЭ( ‚‚‚HMMэWШ–‘‘9ЗаjЕФФФ‰ЫхХ/кллЯvгd.0yф^~љe:;;inn>лЭ‘9O…<™SЦl63jд(&OžŒJЅђ™'н0]zщЅФФФˆ{22ч#—ЫE]]эээшt:‚ƒƒ щuюЫШШœЛŒZ­ІЋЋ‹њњzYШ“љб6lгЇO—sЫœВ'#####sŽ"9жМk=УmЯAL­V“Р”)Sˆˆˆ№ЉШШ”)SHKK#((шGqсŠля\ъW™Г‹8<ОгœN'---tvvЂеj1™L ”JљЇЕŒЬљB@@FЃмn7VЋ•ЮЮNyќ—9+Ш 2'‚ќkCFFFFFц'ФщЁNV$ aܘ1Œ?ž€€ лЭЌYГˆ‰‰AЋеŠŠЗЇ"FЪb›ЬйBђ:::pЙ\Јеjt:~~~ђ˜ŒЬy„FЃAЇгЁеjшьь”‹]ШШШœЈПˆŒŒŒŒŒЬРyј‘GјjуЦc.#Ы/'‚wo D$–?AсdЗсСехЂЅЅ{—…Fƒ[ЉЄЄВ’?П№]Кдk“ БЮЩюы(њј_цlЂРУK/ќ•Ы/Пќl7х”ЮЮЇ”лэЦэvн•›U*еyVыvЛ}Фq…BqRУžлю>:ŸEЮОњFЮёyjєužР{ЎєМvН.‹ŸmUU 6ЌWћ\.ЙЙЙtuu1dШt:н€ЖYVVFcc#IIIт€Ус //•JХаЁCй‡ММ<:::zmчtаддDqq1&“щД„Ÿцххсp8HIIё)NдккJAAFЃ‘„„„cnУщtR^^Žеj%""‚ˆˆˆŸ3]]]фццJXXи)‹Ь…‹,фЩШШШШœVђ‹ŠИљщ% 7Ўпed'еO—.—‹††о{ї]rrrˆˆŒdцх—sйe—эІЩќˆќ{ёšššЮv3ЮоbƒлэІЋЋKИѓЮG8N!bhЕZё(]]]иэvœN'nЗ…BJЅB­VЃеjбh4Ї] 9гЂ‹ЫхЂЃЃ‡УсsL~~~rq“вѓ3ъъъЂЃЃCœ'а-Žj4ќќќNшœ;мn7.— —ЫuЮˆГ<ќ№УX­VЌV+IIIЌZЕŠћюЛїпЛнЮеW_ЭКuыФ:Ы—/gЩ’%ЁVЋ)++ус‡ц‰'žЧsЧwPQQASSVЋ•яОћŽ|5kж`4yщЅ—ИѓЮ;љќѓЯЙћюЛЉЊЊ`фШ‘Ќ^НšЄЄЄ^э§єгOyшЁ‡pЛ턇‡sша!юПџ~ўјЧ?Ђбhp8Œ3†ЮЮNБŽПП?oМё“'OцњыЏ';;[ЬЛцškxёХЈЉЉaсТ…|ійgŒ1‚ЃGУыЏПЮјёуй мuз]477cЕZбщtќїПџхІ›nbзЎ]DGGѓяџ›щгЇѓЪ+Џ№ф“OвввРьйГYЙr%AAA>лэььфЩ'ŸфНїо#** ЅRЩСƒ с™gžaўќљbйўѓŸ|ёХЂ /М№БББмpУ ”——уёxјју™3gNŸЧ0wю\rrr|\ЂjЕš={і`0Žyќ2?}ЮЯ_22222ч4AfЬсс§Ю—…МГЧу71’ЛHrHHгNЇ(КККФ{я—ї:’“ЁЃЃЃ}Pк€К”Jr‹ŠФОU*•pћ( дjЕpExП4xy//Й(ЄїчЛлчЇˆпн ч# …???t:jЕЇгI{{;vЛ€€€3тЬkooЇЊЊŠммм~—QЉTшt:L&сссX,–c "‡ƒккZŽ=Jii)ЕЕЕДЖЖвее…FЃ!00№№p Drr2ССС>ю )ЗXII ‡ІВВ›Э†Ус@ЅRсяяС`Рl6Ibb"III466’ŸŸO}}§IѕIBBБББфффадд„ЫхъГ_ќ§§1™L„††|м0hЧC}}=EEESYYIssГ8&Н^Opp0111ЄЄЄ^ЏїйFkk+eee‹яМјјxbcc єYЖЖЖ–‚‚!~ bcc‰‰‰ЁЙЙ™C‡бжжvТ}ЄP(HMM%<<\Июќpƒ ">>^єEII eeeBЬ %66–ˆˆŸmзееѕк^ll,ёёёНœœ …—ЫEMM EEE”••Q]]-ђLBw˜ЋtžDDDGLLL/!хtтt:Блэ"/ž^ЏGЃбœе\—fГ™[nЙ…O>љ„Э›7ЃзыyњщЇщъътйgŸхwПћŸ~њ)VЋ•   žyц/^Ь“O>ЩџјG ЏНіїо{/эээќљЯркkЏхШ‘#<ўју@ЗА7zєhvэкХоН{yрИћюЛqЙ\<ћьГМєвK <˜Пќх/Ќ]Л–oМ‘={іјєЭЊUЋ˜7oПњеЏxу7P*•Ќ_ПžkЏН–ЂЂ"VЎ\‰VЋ%++‹ћюЛ7п|“сУ‡sрРБ?ў˜ќу,\ИЅK—ђР`ЕZЙєвKЉ­­eзЎ]ЄІІbГйИтŠ+ИќђЫйО};У† ыЗu:7п|3›6mтеW_%44”ыЏПž_ўђ—,[ЖŒЕkзђЇ?§‰ыЏПžХ‹ѓо{яБrхJŒF#<№_}ѕП§эoyџ§ї}Ж{ы­ЗВzѕjŽ9Brr2GŽaЪ”)мuз] >œI“&0qтD‚ƒƒy№СЉЋЋЃВВ’G}”хЫ—sяНї’››Ы‡~иЏЗfЭ~јс.Ојbвввxц™g˜={ЖќA…<™ѓo!NиœN'8Ž^/Їг)оK.iš$оuuuсt:…XзSМѓЅ6H7ЋnЗ[ˆ.—‹ŒŒ іюн аK“м-’ 'НїѓzŠz’KШћ}гќ§§бh4B,єо‡ŒЬЩ T*QЋе˜Эfќ§§iiiСjЕbГйz‰9Ї‹ЖЖ6ђѓѓљьГЯњ]FКN aиАa :”№№pЇ ЧуЁЁЁММ<іьйCqq1ДЕЕ з™JЅBЋеb0&11‘ёуЧ“””„ЩdђСjjjШЬЬdїюн”””аккJggЇдj5~~~јљљM{{ЛђvьиС‘#GNЊO.ПќrЬf3лЗoЇИИиЧѕ#ЁT*бh4Ъ№сУ6lсссНDWЧƒнnЇЄЄ„]ЛvqєшQjjjАйl"'ЂфгыѕF:ФшбЃ6lblБйlр†n`юмЙh4-ZФЛяОЫ‘#G(..&>>^skk+гЇO"РOЧ*uвј"ЙvНХw…BAcc#‡ЧCYY™Шбх=fHлsЛн(•Jt:eeeИ\.ДZ-!!!>ћnooЇЈЈˆoП§–}ћіQ[[‹ЫхNG­V‹ЫхЂ­­††*++ЉЈЈ ООЛнЮФ‰…рp8ЈЎЎ&77WЫ№сУq8Н>пжжVJJJФчлжжFZZšшЛŠŠ ц(!го§д3tYЅRбвв‚ЫхъЕжжVRSS}Цq)™$(BǘРрСƒ}ђ†ЕЖЖRZZ*Жзвввk{nЗ›ЦЦF8РІM›ШЭЭХjЕтёxащtтчч‡RЉ!ЬЭЭЭдддаооNll,щщщgd,іx<дееQWW‡лэЦппŸааа3&ЦŸ(вч˜——ЧГЯ>‹FЃaжЌY455ЁгщP(МўњыИ\.ЎИт ЗЌBЁ`иАaфххБrхJ-Zрs y‡€ЄЅЅ0dШ!тAwЋшшhŠ‹‹ЉЉЉг?јрš››>|ИpЦJЬž=›;wВ|љrцЮ t ‡з^{-ЋWЏfйВeМ№Т bљ+V№—ПќEќoЗлyїнwИњъЋ}Ж=|јpОњъ+ъыы{]У§ѕ#Р‚ |ц1‚ƒrХWјфЊ“ФJ—ЫE}}=‘‘‘@їѕtу7ВiгІ^nРрр`Ÿ>’њ§рСƒм~ћэЌ]Л–ЖЖЖ~ѓ VTT0sцL&NœШ[oН%?|”щ…,фЩШШШШШœeМУR{†Вvvv !ЎНН›ЭцѓjmmЅЕЕ•ЖЖ6кккDˆŸT}ЏgшЌЗP&§ѕvЧy'ИїО)єЮфНlЯџЅmіљzомIЧлгбз—pшvЛ…Уа{йОжёНѕvѕљљљЁзы  ƒС€С` 00РР@ŒF#ƒ€€Qдпп_†ол;Wr)Щœ=”J%бббBаjjj"//Сƒ8Щќ‰аWс‰РР@ТТТащtBkjjЂЙЙ™ццf233Q*•ŠFЃСхr‘ŸŸOFF;wюЄЃЃFCTTƒfа AаввBQQEEEдддааа@FF†pЖ >\ˆD999фххaЗлQ(„‡‡3lи0bccёѓѓУщtR__OUUGИбєz=БББиэvŸёAFЅы]Їгс“JЉTŽŸŸvЛн'М^­Vc2™ˆŠŠТуёажж&њХfГ‘Хb!<<мGpЙ\TUUБ}ћvО§і[кллQЉTOrr2tvvRYYIAAp fggуvЛ1 >bЎд.oБ­ПЯЗчC i}ƒСРрСƒ1™L>уbee%---8N!RЦФФјИv”J%fГYО=їб3-A_эknnІ  €У‡+Ž­чіњJq`Зл9rф7ndЯž=ИнnДZ-СССФЦЦ’ ђКIчoee%UUUgмзййIEE555ЈT*, gфњ=U~ўѓŸ‹їоBcFFEEE<џќѓbКУсyрМѓЯy3x№`ŸџЅэіUфAчМEшнЛwнюбžHaи;wює™~џ§їГzѕjоzы-/^L@@?ќ№6›Э'МtпО}иэv ;МєыЏПѓ$GЉлэ&;;{РљwCCC1>г$­ч1ЂT*qЛнН„ї+VаббСњѕыљс‡ШЬЬ§-§Іщ‹ЉSЇ Бїў{RRRТЂE‹((( 11Qў­!г'В'#####s‘\v’PзддDCCѕѕѕ444`ЕZijjЂЉЉ‰жжV‘HосpјИVМщЋbЄо&‰Qвџ’h%Н$Їšwвёžn8i=Гž—ї Ќwи­wn=ЩU" —оЎ@oз $hJ}хэ>”B€НѓјINžєќAьЖЋеj  ((Гй,ў†„„ŒХbСd2љє‘ќћТDЁPMDDyyyBЬ™4i}ц’;UzVM:t(з\s ёёёТ9ВgЯ6oо,Љ’——Чˆ#ІЉЉ‰Н{їrрРс^‹ŽŽfЮœ9Lš4I„›:N***иВe 7nЄЊЊŠііvВВВ #..“ЩDSS555"ЇšRЉфт‹/fњєщФЦЦ QПГГS$я—ІХФФpгM7љ„Уz<>џќs6mкDUU …‚˜˜цЮЫˆ#|њ# qЌRџFЦЧМyѓpЛн”——“‘‘С–-[АйlИнn*++…3PК†эv;yyylпО]фЃ3›ЭL™2…йГgZ­ЦуёаииHVV}єeee8 иЖmУ‡'88ј”ЧЧƒFЃ!>>žЛюКK’Cћ?џљ{їюЅЁЁ???туу™?ОАЂP(„ыэdsгz<ЊЊЊШЪЪbќјёX,–;фЪЫЫйЛwЏ:bbb˜6mгІM#22­V‹BЁЂIss3GŽЁЂЂЂO‘шtQ__Oaa!ЕЕЕјљљKddф9'фљћћ3jдЈ>чееенŽ]Ћеъ3яж[oшЗЪkaš­8+]ѓ}]Фzщz“B\|ёХŒ5Šььlоџ}~§ы_ѓц›o2ў|ŸsJ:.@фэ” сбGњћуXaЉ'ReЗББ‘?§щOМѕж[Œ;–kЏН–ЋЏОšЗоzKИћcтФ‰кЧЂE‹xшЁ‡XЖl_|ё/ПќВ –‘‘…<™ЛнЮЧЬїпOEE …‚ИИ8~8•‹ IDATўѓŸsХWќЈеоV­ZХІM›DѕІЅK—3iъљHnn.Ы–-УfГбввBss3яПџ~Џ„Х2ЇŸœœŒF#111gЛ)2ч’%…˜566 бNъš››БлэДЗЗ‹мuо—$мyчА’„(N‡^ЏGЏз‹ї:Ўз{)ЌД/‘NцМ‹OєtпѕъЄПЧsuxпDzпt{џя-іIЧй3їŸw_HЂŸЗИ'9ЅПв4я—нnBЈЗHЈT*iiiЁЎЎNєƒЗрЉгщРbБ`БX„ИDPPƒAфф“У`~њX,ШЫЫЃААЂЂ">Œбh$44єŒяпЯЯ   ‚ƒƒёx<ТщaЕZ)//КC4­V+­­­X,JKK)--ЅЙЙYэ˜2e ЃF",,Lќгh4DGG“žžNSS6l ЋЋ‹††JJJЈЌЌФh4 ЁнЛШDЯъЗ …B„-Jm”ђжЦ^nнžCдj5FЃБ—8жs,ђvБљћћ‹хihhраЁCиl6‘д[ШЋ­­Dшљгвв˜8q"qqq>…CЬf3У‡ЇЉЉ‰ЕkзRWW'Š[=zДWМ“E —ЕX,>§$…ћJуŒД\PP‹Хgќ9•b@вz­­­‘™™ЩфЩ“t|NЇ“ќќ| „Ћ)88˜ЉSЇ2uъTЂЃЃ}†H•€CBBHOO'55U|GNЄHћїяЇЄЄ„ŽŽBCC5jFЃёœKЉp,БЪh4RQQСЄI“|BS ЄpSЉи‰7 b™žп…їп?wнuЏМђ 7нtkзЎ%''Чgяѓы№ЩЇw6illdвЄI”””АvэZс{яНwмѕНУwХO<СтХ‹INNfС‚<ўју\|ёХЄЇЇŸtлe~zШBžЬЦ'Ÿ|ТЏ§kмn7ѓчЯgжЌYИнnЖoпЮЭ7пL||М(E~:q:джжэ3]JzќЦoрvЛ™Ущ|E —ЉЎЎцwош3ДЬ‰г3QЏ7R…)ƒС@aaсqѓwШќДТ@;::Айl"ЬЭлYзввBKK‹‡ѕЮc'‰XR^(ЕZ-ТA%QNz/M—„:o‘ЮЛШƒфѓэМ Lє%аKЁЃ=УgН_=E>щнћНwxВдз’Јзжж&œŽ’иSєNЦЎVЋEо=I8•Тs%ŸйlЦd2a6›EЎ0Љџe~:јљљ‘””ФбЃGEЅЯ={ібh<Ѓ‰ЩЅыSђДZ-FЃб'|LК.Є‡eee444рt:EСŽ””ТТТzхивjЕDFF’œœLFF†ЈкZ__OEEC‡уZ­…28€BЁ !!ŒF#fГ™€€ŸjБRћН‘м;=;щкы9&ѕчК•t@w.Йžћ‘„yo‘ЁЖЖ–ъъjё;)00PTЦэљYЊеj, #FŒр‡~ ЙЙYф-**љЦzЖёd\q}ѕS_cДєбŸSјdЦsщ3ыььЄЁЁнЛw“””4 sЛ­­Mф”ОгтууIII!**ЊЯŠЪвУ$Љ‚эЩЖћXHnгЬЬLЊЋЋ…oФˆчœŽ-ўL˜0У‡‹0зžрIIIрЮ;яdУ† |ќёЧмrЫ-ьйГчД=$9џ‘QЪќ(Мљц›м}їнЄЅЅёЭ7пј|)н|ѓЭмwп}\zщЅЬ˜1ƒеЋWћф‚8UvюмЩC=$rH\uеU\uеUМљц›TWWŸЖ§K$&&ђшЃтvЛљћпџ~вa2Одзз3jдЈ~Х_)ЄOКy’љщ"…„:кллimmтфЖkhh ББ›Э†еjЅ­­ЮЮNqH k•nўu:ШсІзы}rЙIгЄQIРыYЄс\sœ Ї**z ‘„?Щ)‰vvЛ]ˆzRўAIh•^R8ЏнnЇББ‘šš!љяМS,є•тt~ŸЙ\.иЕkЙЙЙДЕЕCZZБББ}Š‹g )љXcШ}їнЧћяПЯцЭ›йМy3—\r‰˜зввТэЗпЮOшЋŸ—/_ЮЮ;9zє(ѓчЯgеЊUВу_…<™ŒŒ ~ѓ›п T*YЕjUŸO–RRRxћэЗ™3gЗмr ћіэы•„ѕd9x№р1ч_7Q=“-ЫœЧ;ЇfܘѳэлХЭ‹ЬOщ†C*BaЗлiiiЁООžššq]SSCSSmmmBи•ђдi4єzН(О`0„{Ы;/›фц2 >ŽК aЬ:нxЛ%њЪыуёx|м|REI˜•\•RXД$іIyњьv;6›’’‘днппŸ   BBB #""‚ˆˆBCC…р'UЯѕe–9?0™LЄЄЄP\\LEEьлЗЯ'Їт™ТfГQTT„гщФэvгаа 8оэ С`0рvЛimmХщtˆъЖRuYoЄsPЏМнk‡У'‡мАaУЈЊЊТxWWеееTWW‹k/ €шшhFŽЩјёуIMM=c9&эv;………Ќ_П^ˆ—eee477Ѓгщ}:ЉЉЉlлЖMjййй|ђЩ'Œ7ŽііvіэлGii)а]iеh42mк4дj5ЋV­bЦŒм~ћэЌ^НšааPž~њiЪЫЫy§ѕзE…йžќц7ПсХ_dа A}Кі^|ёEіяпЯž={Ијт‹Йчž{0ќ№У|№С|ђЩ'Ч-ˆВyѓfVЏ^ t?„џяџЫиБcБX,ьоН›;vАiг&ОќђK&OžLaa!лЖmлxяНї˜={6“'OfЮœ9МњъЋ|џ§ї<ђШ#L›6нЛwѓЮ;я№№УѓмsЯёщЇŸrы­З2cЦ .НєR233ЩЫЫргO?%<<œДД4ŸћƒЂЂ"іэлGAAыж­#<<œЉSЇRRRТЄI“XНz5ЋWЏfЮœ9м}їн\}ѕеВЫџGўєeЮ(‡п§юwtuuqѕеW3нW\AZZфБЧуЃ>:-mXЙrхiйŽŒŒФ@ЮЉI“&§-‘љБ‘œX•••SZZJII иl6сŒџ9ZT*•‡ #<<\М$ЧV`` pЭx‡Щ‚Ю‹N(нИ›L&ТУУ}rї9:;;…лЄЖЖVМjjjЈ­­ЅББQфсыььЄЅЅ…ввR‘ЧJЇгaБXˆŒŒdа A$&&2hа BBB|D™sЅRILL “&MтШ‘#“ŸŸС` 88˜)SІœ–ыИЏМ’GŽЁММ\`p8тМ“\ЌƒеV{КžЄёщxтqOG””ЗКCLG-ХћіэЃЉЉIŒ…’8nЕZinnІЂЂ‚ЪЪJ‚‚‚DЁƒгMGGХХХћє—^Џ'))‰ыЏПžДД4‚‚‚|жыщыЋЊЋ7о§чНЉoNєs?WЧћииXТТТ8|ј0%%%ьпПŸддTŸ0i щяЊтоє|хёxЈ­­eэкЕdffіGŽЩ•W^щЊ|ВH9ћОџў{ pЛн$''3vьX’’’NyћЇ‹жжV>ќ№C wп}7п|ѓ fГЙЯi<№уЦуŸџќ'џљЯxїнwIIIс™gžсџўяџФr_|ё•••b›………ДЕЕaБXXГf bо† №їїЇІІ†mлЖё‹_ќBlчƒ>`ќјё RRRШЬЬф/љ ПјХ/hmmeќјёlнКѕ˜Љ’ ФM7нФшбЃћu—™L&ЖlйТЋЏОЪъеЋYДh‘ШБ˜‘‘бooЄпывqmнК•ЖЖ6RRRјьГЯDбшЯbbbјђЫ/)))ыTWWѓЩ'Ÿ!oхЪ•ќы_џbХŠ|љх—Ьœ9“]Лv‰” [Зn%..ŽoМ‘ 6№Э7пpЭ5зˆ6}єбGИ\.fЭš%ІэнЛ—oОљ†Йsчњ,7bФ>ўјc,‹hРз_ЭьйГe!яGўєeЮ(;vьЅЧgЯž}мхgЭšХСƒYГf ЅЅЅ 4ш”іџц›oВeЫЦJл‘‘‘иИq#џўїПЯЉ№ ™3ƒЫхТ]uu5•••”••Q]]M}}=---"їZWW—Ј0Јгщ "44TМТУУ1›ЭŠќv=]vвMЃЬЙ‡w2vIp•Š^ФХХ‰<|RhЎеjЅЎЎЮч%‰Н‡›Э†нnЇЖЖ–#GŽ`0 ",,ŒЈЈ(bbbˆŽŽ&44єŒU@•B@;†™IЇг‘˜˜ШЯўsжЌYCUUyyy|љх—hЕZ†Ž^Џ?Ѕvє^юp8АZ­bК$ i4IKKу’K.!99YRRхjiyi “ шєD CїvUI`Є§ъѕzRSS gђфЩ”——SUU%\y555BиГйlВwя^.ЛьВ3ђ]ъ-˜KзІTиFrO'&&b2™|њДgKiнОrьyїwЊЉа†T™їD\p'Вь)њщѕzЂЃЃ1beeeдззsј№с^8‘XЊЎRЉDеQЩЅю}NЇ“ІІ&ъъъzmЯfГљT,=YœN'ћїячћяПgџў§x<ЂЂЂ˜4iiiiчдo:‹ХТkЏНvBы\tбE"ДЕ?žzъЉ~чkЗнvл1ЗЦвЅKYКtщБйƒїпџИЫјћћѓрƒžtХжc—wВ7ЧoМёЦ~s>іиc<іиcтџџћПџѓSћуXЫ=ћьГЧ]_цТDђdЮ(ызЏя“““Лќ!C€ю—_§5 ,рЭ7пЄДДЋеŠеjх•W^Сh4вииШoМ!ТžZZZx§ѕзбщtTVV2wю\‘Џ  Рgа]О|ЙЈœ&сt:yьБЧxчwАZ­ЄІІВpсТ>ѓ/дееёЧ?ў‘5kжаииШ!CјэoЫ]wн%~\}ћэЗdddˆЇаwмqSЇNреW_ЅЊЊJT’Нчž{„ƒkнКudee‰у]Дhххх<ўјуьлЗOфxњщЇћД”япПŸG}”Э›7ЃбhИцškxщЅ—Žлї}Q^^ЮџјG>џќsIHHрЎЛюbсТ…>‚Cii)‹/цГЯ>Ѓ­­aУ†ёћпџž›nКI,ГyѓfЖlй"Bг,X€бhфс‡fыж­hЕZЎЛю:ўіЗПaБXФzџљЯШЫЫ§ёїПџ-[ЖАdЩ:Ddd$wп}7=іXŸ?Д8Р’%KјюЛяшььdдЈQ<ўју\}ѕеН–-++cЩ’%|ёХX­VёtђРуё0kж,6oо,rпyŸS‹/&00•+WŠbМ§ілНіГgЯ–,YТ–-[№x§wvvŠБOЋЄ‡оЧo0ащtOkkЋpЌцччГcЧщъъТfГQ\\ь#шœNHHH`Ъ”)иl6ђђђDоОІІ&vюм‰Хb! @|&RN<)„S­V+эээ}wpЙ\"ф^:FCHHˆx8#ї’Ш*хщєFЪлщ-b‰<Ї'#ўy<T*•” DHyђЄ*Р}!вщttvvтёxў?{gпFyЎэK’%yецEЖф5о’и‰Г'!Ѕl)k Ѕаr(эšršв’8,хДЅ a'aki9ьP , $@HœиŽу5NМя–,oВdK–є§‘3o%л І’Й~бOŽ43zg4’fюЙŸчЧО>ŸOЌ_dd$ййй гллKccЃи’‹єпEr„VTTА}ћvЪЪЪp:шѕz‘жТК!edddŽ„,фЩS‚ћДŒЮ&"XР‘њѕѕѕQSS#JmџєЇ?ˆ+xфѕз_Ї IЭЦяНї^vьиСнwпM|||ˆ%yЂ+уkзЎeцЬ™lоМ™žžжЌYУO~ђъъъИчž{Фt---,]К•JХG}ФдЉSyюЙчјщOJQQO=ѕ€hНqуF†‡‡YО|ЙђЄП'Ÿ|ЧУyч'„МкккФrВВВxъЉЇXНz5чŸ>6lрќ#vЛ}œHДwя^–-[†ЯчуўћяgцЬ™<џќѓЌ\ЙђKїFЉЎЎfйВeИ\.оxу Ю<ѓL{ь1nОљfИыЎЛЈЌЌdйВeЄІІR\\ŒХbсрђЫ/ЇВВ’ЛяО[l›ЭЦЦ!))‰чŸžЋЎКŠГЮ:‹'Ÿ|’gŸ}–C‡Б}ћv1ŽОО>jkkyщЅ—˜6mЯ=їз_=ƒƒƒЌ_ПžuыжсvЛЧ]ЕкВe \pK–,ЁІІ†ШШHюКы..Кш"{ь1nИс1­Д###Мљц›,]К”‡zˆ5kжрt:Й§ілЙэЖлИќђЫЙюКыPЋе!ћ”ХbСnЗгллЫО}ћјрƒˆŒŒїНѕж[\zщЅ\xс…ДДД RЉјйЯ~ЦgœС /МРЅ—^ ’яЄ+–ЙЙЙ<§єгЌ^Нš .И€ѕызsяНї200Р† B^убGoЙх’’’Од{*!5‹ЄЗЗ—ЮЮNккк„›ЄЛЛ›ўў~мn7pјъАNЇ#&&Н^/ХK^ll,FЃQ8юdСхдB:љ–Ъ с_(RŠБУсРnЗгнн-DНžžp:tuuбвв"™ииX, )))Ђ$;66VˆФriЭБE8сОр<_­V“РiЇ†лэftt”ЎЎ.Š‹‹QЋеŒŽŽ2}њtŒFузD`БXXКt)‰‰‰РП„<ЉЌWЇг…ˆЭJЅЋеŠ^ЏGЉTтѕzщщщЁЁЁФФDТУУCЦцїћq8444!OJК•^SrыЉTЊ)ŒchhˆŒŒ ZZZp:тBии>r_'сссЄЇЇsійg344„ХbAЅRQRR‚лэІКК‹Х‚йlFЇг‰uŽ‹‹#..NЄeJ%ённнb›I\.‡ТfГ‰rцШШHRSS…уZЋеЂбh„ЋL з F*‰юЯ' i_љ&{bbbШЬЬ$??Ÿ:::шээ=ъ{…йlЦ`0азз Jž-‹8цзыѕ,XА€ЄЄ$jjjhnnўZі i?khh`лЖm”””аггƒбhdжЌY,YВ„ДДДЪ'###3YфЃ?™cJprкdЂъƒf6› €џњЏџbppp\Я<ГйЬџќЯџагг#„<‰ЈЈ(VЎ\)REu:+WЎ<ъk‡……ёф“OŠƒІз^{œœ~їЛпqЩ%—0{іl~њгŸвииШ‹/ОШДiгјЩO~ТЋЏОЪгO?ЭђхЫЙтŠ+И№Т Й№Т йЛwoHгT€пўіЗьмЙ“тттчЎКъ*ЎКъ*сі{т‰'иГgcVЎ\Щ‚ xўљчљ§я/ЂЬ?љЩOp:<ёФЌ^Н€eЫ–ёНя}ВВВЃЎ0@€§шGtuuБqуFVЌXРЖmл€У§1юКы.ќ~??ќсБйlМўњыЂњЖлnуЅ—^то{яЭ^W­ZХЊUЋиН{7EEElиАЯ?џœ3f‡ушгггйБc{іьхаџљŸџЩЕз^+„МПџ§я‰ЋшГgЯцЂ‹.т‘GсŽ;юdННН\qХўњзПŠІВјУјЧ?ўСš5kXЕj)))ЎМђJl6›hў;v}з­[ЧЪ•+…Р6nŸ2ќЯџќ|№СуЖkwwЗ(QxђЩ'Х:<іиcМікk\sЭ5,^МЋеЪuз]Чuз]Ч‹/ОˆзыхщЇŸІЈЈˆииX/^ЬŠ+иДiїо{oH#шќрМ§іл,YВDл˜щ Н$ЌtwwгииH}}= ДЗЗ‹”НАА04H'%%ЋеŠХb qIЩ‚ŠЬD(•JбwOЇгaЕZEЏНЁЁ!ьv;эээДЖЖ ЙЇЇЗл-\MDЋе'zъeddœœŒС`…у•JENN‡ббQ>џќs;wю!*шtКЏќ^) ттт˜={іЄzEСс}155•ЄЄ$E:ѓО}ћHHH <<œШШHс  ЖЖ–ђђr!>EGG‹я?8ќ[лккŠJЅ"))‰шшшvjЕZИпЄяHЅRRтћu#}цt:zНЕZ-\€]]]И\.jjjШШШ ##C8HIIС`0`ЗлЁЖЖЋеŠЩdя›пяЧэvгммЬюнЛщщщatt”ШШH˜2e ­V+к)H)—6›ЮЮN1Rвее%ТЄДиБЅПёeKwџО}’+/..Ž pрРZ[[Ч%wŽSDDщщщ$''гккЪшш(эээ”••‰”ˆˆДZ-йййФЦЦ222"ФѓЏ"Vњ|>њћћЉ­­хУ?ЄЄЄ„ЁЁ!єz=yyyœwоydeeMшB•‘‘‘љ6 ŸuШS‚Х…ЩєИ’д 4Q№h'Ш_зЩѓеW_r€“••Eaa!;wюфщЇŸц‘Gaџў§lйВ…АА0Оћня†Ьс…ђюЛяђРpХW|хБKЯ­^Н:ФQ5ў|L&‡ƒњњz!фэиБƒŠŠ T*UHI+Рuз]7Nь<лЗoЇЄЄ„№№p~јУŠЧ%WЅдlwѓцЭ”——R pбEБoп>xрЮ<ѓЬqыuЩ%— 11‘‚‚ŠŠŠЈ­­ щkМжЌYRž$5‹эяяЇЋЋ‹””ž}іYьv;чœsNШіSЉT,XА€џ§пџх/љ ыж­cыж­”••ВэЦЎяd9вћњдSOбппЯЪ•+CЊбббЌ\Й’Зоz‹Ч<ФY†зыхІ›n"h5 nЗ›––– ™•+WвййљЅЦ|*сrЙшшшррСƒTVVRSSƒЭfcxxX”7) ЂЃЃIJJ"--ЬЬL233IJJBЏзг“P™“ЉVxx8БББBќ‘„Н††ъъъЈЏЏЇ­­ўў~\.---ДДДАgЯ iiiфчч3}њtввваыѕђ~yœQЉTL›6MИЗ>ќ№Cмn7ЛvэЂЏЏЇгЩвЅK‰ŽŽўЪ%іСС “ХbБ0mк4ššš8pр~ПŸттbQ&š››KLL }}}”——ГkзЎъŠєєtІM›FBBpјеЛяО‹Эf#''‡œœ,‹иЈЈЈ ЙЙYˆ†ЄЄЄczё#XŠ%++‹ЌЌ,qЙЕЕ•Њю7˜ IDATЊ*ІOŸ.кʘL&rrrШЭЭХnЗpша!ќ~?CCCЬ;Н^Я№№0 ьоН›]Лv‰ѕŠ‹‹cЦŒЄЅЅЁVЋ‰ŽŽЦl6“ .NKѓEGG“––Ц№№0ћіэЃЄЄ‡У DбЩ”|NV˜›H›LПрч###™1cYYYєїї‹ёiL …‚ЌЌ,ђѓѓЉЋЋЃЃЃƒ‘‘ŠŠŠшээЅ­­MИTУТТАйltuu}що‚100@qq1›7ofпО}ј§~t:ГfЭbеЊUфччЫ-.dddОеШBžЬ1%8ЌтHWю‚‘\0cч§&˜("=//;wВwя^рp<9>(SŸ‘‘юOцp8BЪ„П ‰HБББ8†††Фc’ы/55u\лЌYГОдkJы™šš"ЈnкД‰_§ъWт Wš.%%eмQzz:pие6бUрyѓцMИ^КŒeь|DFFŠ~T[Жl—lЛ].ѕѕѕ!Бѓiii!eзЯ<ѓ ПљЭo&епq2ПЮX‚ЗзDŒ]o…BЩdЂГГ3dНeЦpЛниl6ъыыEВЄф€pЛнxН^4 ёёёX,вггЩШШ )) “ЩDttД9œ&2_?~П_И%%ˆZ­žАшЩ„”–&Ъб шыыЃЛЛ›––ijjТfГсrЙшщщecЛvэ"55•ЬЬLrssБZ­Т%ѓЭЃVЋ™2e чœs‘‘‘|ійgиэv<ˆЫхЂ­­ЅK—ŽћЭљ&аh4Ьš5 ЇгЩШШ S^^NKK ƒ­V+њ•ѕѕѕсѕz…(ГtщRІOŸ.JvCCCдззгййЩоН{ХїЅBЁ=іЄўxX­V ŽљчZƒ”J%IIIфххQRRТ№№АуJKK…№ІRЉШШШ`йВeєїїsша!БEEEhЕZQv+ЅS$%%Б`С EIЌZ­&--9sцамм,zf–””амм,’„ЅэуїћХvž>}њЄѕ“М&њЭš(@х‹в‹u:sчЮЅНН=Єoт‘0 Ьž=—ЫХцЭ›БлэИ\.8@GGŸ|ђ‰шћ9<<,ЖУбЦЬиуKŸЯGCCƒ8vohh Ч’%K8эДгШЮЮa$ђoЙŒŒЬЗљOц˜rжYgёєгO‡ЦКЖЦвмм,ў^О|љЄ^уЋібЄЋЫСHnЗоо^р№•g˜ИпŸ$мКЛЛ'%фMfь-GЭ‚vЄЋН5гўВ Ж%7W\\мИз:uЊјџбЖ‡є˜ЫхbppPє‹’˜ьzeВѓЕДДА{їю)8ь]ЙrЅЯŽДО*•*d}П*ві+ДТПж+И}Ђчƒ™Ьі:•‘&­­­444ааа@ss3vЛ]4wWЋе!=ШЄ’Б„„ ‘‘‘h4љЪ§7Ф№№0ЄДД”ЁЁ!bccЩЭЭ­ Nf‚C4ДZ­шСhБXШЬЬФсpаббA[[­­­ДЗЗгббУс```€ЎЎ.ъъъ(//Btjj* пИXtЊ#ѕJKOOG­VIQQ‘c‡††`Юœ9L:Гйќ…ЂыDщ џŽsIЁP˜˜Ш‚ PЋебввТРР€ш ЊP(№ћ§"‰;11‘ддT.\ШьйГХEЗ@ @TT шt:œN'ƒƒƒtuu…ќ>IЉЏƒЬЬL IOOŸА7™$ЌЏзdжQo№Ж Ц`0••EZZ ŒŒŒаннЭў§ћ™={Жш•ІгщШЫЫУчѓБkз.ъъъАлэ8z{{…фїћEШIJJ ГfЭbюмЙ$''‡8втуу™7o”——гннгщФщtЂRЉB–e2™АZ­,]К”ммм ЉGZч`&Г?Я3б>єEЫ cъдЉTUUбййIOOЯ„яA№єVЋ•Х‹Ѓеj)++vvЛЛнт""\rR­ЧЖД­%AДЖЖ–={іPYYIGG~ПŸєєt-ZФќљѓЩЬЬп‡Вˆ'##ѓmFђdŽ)чž{Ў(нЕk—_~љQЇџќѓЯ˜:u* .œдkH t'‹Ыхbџў§"\BJ›Ш&Й%E`Є>&СH§ј‚Їџ"&3іЩ:*Є)M3˜р­Щ ]%—„Ї#qДэ!=&5оЫПы™ь|в ТyчЧЃ>zдi'ЛОGcыж­_(>KлkЂ”7iџ9вЋьЌ™~ПŸссaњњњшььЄООžƒ žгщAБББ˜ЭfRSSЩШШРbБGTTдИ4R™o†‘‘šššјф“Op8ЄЇЇ~JyЁVЋQЋешt:, YYY"QЙЅЅE”ЋIA; 466r№рARRRDIxjj*qqqDGGЫЅЗп …‚ˆˆ233бh4DFFВwя^мnwШ~NLL qqqт"Ци‹ЌСј§~œN'mmmTWWSRRТ$**ŠДД4,XРќљѓБX,rO<™“љЬPц˜УэЗпЮ­ЗоЪK/НФя~їЛ#:š››љшЃИћюЛC0СэЕЗџў#ООtАм{ЏММœ›nК‰={іџОššš(((™ПЕЕ@ˆ~’ЃPj‚|Р&M›тю“Ц>vм}}}455qь_–™3gŠqј|ОРъъъ/Е,Љw]SSvЛ}мAд?ўёЮ>ћl/^ЬњѕыikkЗ i{7S~~>ЅЅЅджжNј|?555,\ИPЌoCCУ„eбoОљ&чœsNH A№>еззЧ…^8Ё@ЬтХ‹љф“OŽКНN;эДЩЏЄŒ 022Трр эээ8p€§ћїsша!њњњФUўИИ8ЩЬЬ$;;›)SІ`БXDƒїSБ=З EˆГFr[?~ДeMф9вМ@@ЄЛJŽ•ЁЁ!бЛ№‹ц?й‘„!ЋеŠеj%??‡УAcc#ЕЕЕ:tˆ––њњњDѓ|)sњєщЬœ9“єєtL&В ї ЁP(HMMЃшшhЪЪЪDШD{{;ЭЭЭ’-J[Чюу‘‘‘dgg‹ўМ’їeї’г.>>ž‚‚КЛЛEЙішш(aaaт‚GBBТ„С …ЃбШЂE‹(((}г‚[H‚ ЩdТl6c4*>JЅЅFД0$$$Q Š‰‰ЁААмм\|>сссувк•J%FЃ‘гO?ФФDFFFhЕкq§ U*111Ь›7мм\zzzАйlєїї‹uŠŒŒыd0ŽxёGњмццц’œœLwwЗ<Ѕ`‡ШШHŒFЃHЄžЬ…$…BСŒ3ˆgxx•J…бh$::њˆлЩl6ГxёbQiEjjjШє(•JP(шt:ЬfsШібh4фччв722’ДДД ПŸЅTчииXfܘAOOvЛССAQК-…ƒFёY9’0)9={{{9tшХХХгжж&’•srr(,,ЄАА˜˜˜SђwCFFцфEђdŽ9Змr }єяОћ.ПљЭoиАaУИiќ~??џљЯёx<\wнu\zщЅ!ЯkЕZДZ-###ДЗЗ‹Д@ Рc=&І+–IWо‚…“Я?џ<Єч™teђЅ—^т‚ .y|Ы–-ЈT*ЎНіZрА(5wю\Š‹‹йВeKHрХ?џљOnКщІ1H%ЅcХ›M›6 1hЂ щdzЂ2‰‰ž;їмs1єііђЯў3d]ž}іYёїdBG.Кш"nОљf†††XП~=їнwŸxnћіэЌ]Л–UЋVqС––FSSЅЅЅ!Ў™#m/Л^С™љўу?ўƒчŸž­[ЗRYY9Ўтš5kDЉа%—\Тš5kpЙ\lиАџўяџгmнК•пўіЗœўљРПі)ЗлMOOБББуіЉ#­Чѕз_ЯŸџќgЖmлЦаашГшёxиВe jЕšoМё+oЏ––юКы. ХО{2#‰x‡bЯž=ьлЗ††\.@€АА0 SІLaюмЙфчч“””’Ђ(sЉ?t‚.іyЉЏ”ф 9RRЏ$zН^‘о)эЋ*•*Єз`№<’+94рpyДлэІЗЗWє3’ЦtЊ Q†ФФDбOЯfГQWWGYYtvv288(DОнЛw3sцLцЯŸO^^žh!ѓЭKaa!iiiЄЅЅ‰‹:RJqUU‹/fС‚dffŽkGEVV™™™!еђ@•J…ЩdТd2 с=x™“YО”ЪЌзыIMM№їjВу”„М/Гž:n\ЧDгkЕZ222D[ i]ДlIШвщtbžЩŽi"ЂЂЂB^_т‹Ц1JЅ’3fŸŸ?щ1IСc+фЅЇЇ‡ь-3!!aТя/Z‡р§Mr—NФ-gdd„ЖЖ6ЖmлFqq1---тТ|BBK—.eётХB–‘‘‘9йЯ`dŽ9*•Š—^z‰џјЧ<єаCєііВnн:!|ѓлпў–-[ЖАfЭxр —sўљчѓъЋЏrэЕзrЧw бhxт‰'BЎFџ§ячЌГЮ"''…BСЬ™3QЉTиэvўјЧ?’––Ця~ї;^~љeрАГntt”я|ч;ќуџр•W^свK/ХчѓqѓЭ7гппЯнwп-D …BСsЯ=ЧвЅKYЛv-‹-"..Ž­[ЗђЦopійgѓГŸ§,dмп§юwyы­ЗјуџH\\™™™lоМ™їо{щгЇSUUХлoПЭŒ3ШШШ <<œКК:Qъ[^^ЮŒ3Чяїгдд$Je+**XВd DGGѓрƒrѕеWs§ѕзЃRЉ(((`гІMдззЃT*ёћ§Мјт‹\vйe"Аb"L&ызЏgѕъемџ§ИнnЮ?џ|jjjИыЎЛxц™gФ ќ_џњWЮ9чnКщ&>јрЂЂЂxёХљьГЯИъЊЋјоїО'–лвв"ЎоVVVтrЙ„CГЃЃCИвЊЋЋ…а5::JiiЉXЦО}ћˆ‹‹CЃб0::Jmm­8xлП?YYYhЕZVЌXС7оШу?ЮЊUЋxф‘G˜7oэээЌ_Пž№Ш#‡{у§щOтЦoфž{юСхrБjе*ЊЊЊИыЎЛјы_џ*Dƒ””тттАлэм}їнЌ\Й’Еkзђ‹_ќ8|p)ЙDGFFЈЌЌ$77—АА0вггйАa7оx#Змr 7nрЮ;яЄЏЏ?џљЯфцц‡зšš!і–••‘žžŽVЋХчѓQ__/Ъ—ЫЫЫ™5k–(ОяОћxц™gxійgЙр‚ &>žˆˆби\&”ЦЦFvэкEeeЅ8QLKKУщtŠt_8\B5uъTfЮœт|ёљ|єєєPTTD[[ННН ‰§8""‚ИИ8вггЩЩЩaЪ”)ЈT*М^/eeelоМ™КК:сФБйl|ќёЧддд‡ƒйГgsц™g~mBпv$q3)) ƒС@NN‹/ІІІ†ъъjъыы…ЃHъљ•Эœ9s˜>}:&“I.%џ†J@Я>ћlRRR(**ЂММœЎЎ.КККјшЃЈ­­eњєщ=ЮIt,ћz}Y1щhЫљІ—ёeІ?š@ѕuчЫ,ыЋ,ћXlЇЩю_u›|йљƒѓ+**(++ЃЅЅ…ўў~ќ~?ёёёL›6Х‹“››K\\œќн&##sвЂ|е|o™IјЧ?ўСУ?ЬЇŸ~JXX~П•JХyчЧ­ЗоzдОx‡ƒnИ7оxƒббQЂЂЂјљЯЮкЕkEџN‡VЋЅДДT”nlиАлoПЁЁ!ЂЃЃљуџШ 7м@QQ_|1еее”––ђГŸ§ ЇгЩ№№0мqЧ\sЭ5уЦRSSУ/~ё >џќsшщщaѕъемuз]уJFwп}7ызЏЇППЅRЩyчЧІM›ИтŠ+иЗozНžАА06mкФлoПЭ'Ÿ|2ю5їюнЫКuыxџ§їЧ=ЗcЧсšyёХЙэЖлDйю™gžЩпџўwђђђDЉLRRŸ~њщОg/Пќ2ыж­урСƒX,ўєЇ?ыuИgЯжЌYCEEБББ ђЫ_ў’_§ъWB,y№Сљлпў6ю5оxу ўљЯђдSO{ю…^ро{яЅЊЊ*фёјјxо{я=VЏ^’H -вa?ў8<№ Рс+тW_}5їнwпИ’Є_|‘uыжQWW@rr2њгŸИьВЫBІ{ѓЭ7ЙікkщщщA­VѓЋ_§ŠЛяО•J5aoff&/НєRШ:џц7ПЁЏЏЅRITTїмsOШvНёЦEљЗDdd$лЗogЭš5ьиБ#ф9ЅRIQQ‘иnW]u3gЮЄЈЈшw]tщЅЌИљ&ђO;rИЭW§щq:455Q]]MeeЅ+|>111X­VВГГЩЮЮ&%%…„„bbbфƒњ/ ЄЄ„їо{;wЂT*E_#ЇгIggЇp9ї:ыЌГˆŒŒ‚\]]Я<ѓ ]]]x<Q’+퇇‡c2™ШЭЭeХŠL™2…@ Рж­[yщЅ—шььФчѓ GˆJЅћАFЃсЬ3Яф?ј‰‰‰Чyk˜‘jлжж&њD644`Злёћ§тw`њєщLŸ>ЌЌ,тууПVqћ‰5ПфћKNчАџ:iiiсЉЇžтЩ'ŸdppЫ.ЛŒ_џњз_kHDZБъ<йSєЕ,O$šššЈЊЊЂЂЂ‚ккZњћћEOjjЊшK—’’‚Щd’E2Ї$RJАдF ЖЖ–ЦЦFl6Н^OFFyyyЬœ9“ддTt:н19іљaJДG‘‘‘9yјЖсШBžЬqadd›ЭFXXfГљK}`†††Айl$&& в1<)’k№hыыѕzioo}\ў:;; уzљ|єііЂгщŽ‹ыьX yRљeOOЕЕЕ”••Q]]M[[###шt:’““ЩЬЬ$77—œœˆˆˆ{уL’={і№Ю;я№щЇŸŠоMR­FЃСыѕтp8!""‚ММ<ЎОњj222аjЕx<<ШSO=E @Џз%D>)ЄСщt’РЪ•+9їмs‰ŽŽІЈЈˆЗоzKєyѓљ|Ђ МЦТ… YЕjезђнvВуёxшээЅЙЙ™ЊЊ*8@ss3‡ЧC||Ÿ—ЫE[[ХХХьоН›ЦЦF†‡‡EYann. ,`њєщ$$$ШюЛЏH `xxГйЬдЉSБZ­ Б{їnкккpЛнДЗЗS__OrrВhаЏзыYА`&“‰јјxt:JЅ’‘‘jkkйКu+ЕЕЕ8JJJXДhбббЄЇЇГtщRіэлЧоН{qЙ\шt:ІM›Цœ9s€УBžеj=bh’L(ГйŒйl&''‡ккZJKK)//ЇЕЕ•оо^ŠŠŠhnn \аыѕGMП”љzPЋе$%%Onn.ћїя!M6›ЎЎ.:::ЈЌЌ$==щгЇ“——‡ХbAЏзЃеj “п'™“‚@ €Яч ЎЊЋЋЃККšъъj€§ЩЬЬdЮœ9фхх‘˜˜(Ћcћ<ЪШШШœŒШBžŒŒŒŒЬ O?ххх|ђЩ'ьнЛЗлM Р`00uъTN;э4fЭšEllЌ\~і5ЁP(0 ,_ОœЅK—’˜˜Ш№№0JЅ’mлЖ 'dWW—ш&œv]]]tvvвааР№№АGGGQ(xН^КЛЛEкsZZбббŒŽŽŠš:ŽМММЄЮр{™ЩЃзы™;w.йййЬ›7O?§”Н{їbГйhkkУnЗSSSУŠ+XИp!)))'œГњdEњм,[ЖŒќќ|ЊЋЋйГgeeeиэvzzzp8TVVђЩ'Ÿ0cЦ ШЭЭ%!!AўЮ“9)№zНєєєPWWGii)еееДЗЗуt:…8'Е˜;w.ГfЭТh4ŽЛh'џ>ШШШœ ШGh22222',>ŸЦЦF>ћь3Š‹‹ijjТэvINNsцЬЁ  Ће*ЇаRSSEHˆ”8+†РaчƒЧуЅвNЇ“††ЖnнJCC}}}ŒŒŒˆч§~?CCCx<”J%^Џ7Єо‘NРфвшЏЅRILLŒ€ІOŸЮоН{ЉЈЈ ЛЛ›ЖЖ6оyчZZZ(,,dцЬ™“vЫ|uT*qqqЬ;—ŒŒ -ZDEEеееДЖЖŠ^•TVV’œœLNNййй$''c4 —… ™o ‡УAss3‡таЁCЂНТаа>ŸШШH™>}:љљљddd/к6ШШШШœŠШg<22222'~ПŸССA<ШЮ;)//ЇЃЃПпOJJ 3gЮЄ  €ЌЌ,Ц…ЬШ|u …h 9~ Fk@ DЄышшрѓЯ?gзЎ]єїїЃбh0™L"ечѓ ї—~М i™2Ч•JETTDEE‹ХbЁЌЌŒƒbГйиЛw/ƒƒƒ8.\HllЌ,’CHЁTQQQ˜L&, SЇNЅЎЎŽњњzZZZp88NzzzhiiЁММЋеJJJ VЋГйŒЩd"""B:dN(ќ~?###єіівййI[[MMMДЕЕбннУс`hh•J…бhФjЕ’‘‘AVViii$$$-ЗЮ‘‘9х‘ЪdddddN(|>‡ƒъъjvьиСў§ћ ""‚ДД4цЮЫœ9sHMM§ЗƒFd&‡Z­'(•Ъ ?>ŸŽŽсюR*•L:•‚‚RSSбh4 Вmл6њћћ ™_№‚—-ЅнЪ|§(•JŒFЃѓЬf3FЃ‘ššzzz(++c``€‘‘цЭ›GbbЂpbЪ{T*•вЅ~`MMMBаыььbHKK ЕЕЕ$$$`БXАX,X­V, FЃН^ODD„мїPц'рѕzЦщtвллKww7­­­477гккJww7CCCРсоеЉЉЉ$&&’––Ц”)SШШШп?ђў+###sYШ“‘‘‘‘9a№ћ§8іэлЧж­[)--щЇR/МE‹#—[ž`ј|>qЂ‡EРмм\–,YBjj*>Ÿ††ЂЂЂŽx2ІP(B„CЧУРР‡…BZ­FЃбШ=СОF4 ЉЉЉФЧЧ“ššЪG}ФО}ћhooЇІІЛнŽлэІААддTй§z.b$''3{іlšššЈЉЉсаЁC477cГйІЁЁ††4 zН^ˆ iiiX,L&ссс"$уHЂМŒЬWСчѓсѓљ№x<И\.њњњшъъЂЙЙ™††ZZZBФ;­V‹NЇУh4’œœЬДiгШЭЭХjЕЂгщd7АŒŒŒЬШпŒ22222' .—‹ЂЂ">ќ№CЊЊЊ№љ| –,YТgœСДiгdчEЉTЂVЋ…ауѓљАлэДЗЗЃбhшяяyG# IDAT‰ЕnЗ{B!VЉT.’8{{{)..ЦяїХb!;;ћ+'FЫŒ'""‚ЉSЇ wоЧLmm-МѓЮ;Инn–/_Nvvіёъ)‹JЅ"&&†ќќ|rrrDВgee%•••466вггƒЫхТхrбййЩоН{‰‰‰!11‘ЬЬLІL™Bzz:‰‰‰!eѓ22_^Џ—ССAьv;MMM:tˆКК:Z[[Рыѕ їЕJЅ‚Г$оedd‹JЅ’Ef™Ѓ y22222Ч)сУ?dћіэ:tЅR‰йlц;пљ .$99Yю‹s0Ж‡Tњ&њyЕДДрѓљ())ЁББ‘˜˜FGGE ‰VЋ!СЫгh4X­VL&}}}Инnš››щщщAЉT’——GTT”,ф# &“‰ЅK—ЂзыйО};ХХХєїїГsчNбз0''чxѕ”G­Vc0ˆŒŒФjЕ2oо<:::hjjЂООžІІ&zzzpЛн"8 ЕЕ•={і`41›ЭX,’’’АX,ФЧЧЃгщ—ћъЩL ŸЯЧШШCCCиl6КККhmmЅЕЕ•ЎЎ.z{{qЙ\ уёxDp…йl&99™ДД4Q6+•љKnQ™Ѓ#SЪШШШШWќ~?}}}”––ђщЇŸR__пя'--гO?ТТB, сссЧ{Ј'=R2mTTJЅ­V;Ю&‚"##…OЉT’””Daa!.—‹ІІ&щяя'””ФЬ™3ЉЉЉatt”ЁЁ!!ьIЏ! y………hЕZкллqЛнЂŸžЧу‘{цcТТТˆ‹‹cіьйh4 иl6JJJPЋеDEEa6›хюуˆT†ADDzНГйLFF3fЬ ГГ“ііvкллщъъЂЇЇ‡ОО>с–jkkЃЖЖ–˜˜L&qqq$$$Gll,FЃNGDDFїNrЄф№#сѓљ№zНŒŒŒаззG__‡ƒююnl6===єіі200@?.— ŸЯ‡FЃћ˜йlЦjЕŠ@–ииX !П22222_Œ|&####s\ЄЖЖ–mлЖq№рAFGGIKKЃАА3Я”J%FИђT*ƒyѓц1cЦ Q>+ѕЮS*•ФЦЦ2ў|ќ~?JЅRЄiJЈT*ІL™Brr2Џз+ž“ЪreŽ=JЅƒСРТ… ёzНŒŽŽRUUE[[[Жl!>>ž™3gb0d'Э †єЙ’њJцччуt:q8ДЖЖвжжFKK єіі244ФШШ6›ŽŽќ~?†ˆˆ!М'$$OBBБББBи“DНАА0T**•Jбј %‚ћ§~FGGёљ|ŒŽŽ сnppPˆvвMю†††ФїrXX†ЈЈ(ЂЃЃ1 $&&’œœLJJŠјM‰ŠŠ’[cШШШШ|ШBžЬ)Kuu5нннМљц›tww1NШЛќђЫyѕеWy№СЙх–[ŽгHOКЛЛЉ­­хрСƒlлЖ ­V+ y2иэvJKKйЕk###ФФФАhб"–.]Jrrђёо)‡Z­>ъЩV ˜TjЌBЁ <<|ТrhI`ј"фtкуBЁ@ЋеВxёb†‡‡qЛнTUUбааРЖmлаыѕDGGЫ'ш'8’гUЇг‘žžŽзыХхrсp8hkkЃЙЙ™ццfZ[[Бйl8N<###єїїгии(RЃ#""ащt˜L&…уЪl6c2™аыѕhЕZЙзй Ьшш(^ЏЗлЭрр ===иl6l6Ђ\VКш:::*\бROSFCtt4qqqЄЄЄˆžwVЋ•ииXб6AvlЪШШШф_X™S–{юЙ8|тњшЃN8ЭBюO$~љЫ_bЕZЙѕж[ПєМЗмr SІLљFХЩ+VАbХ ЊЊЊШЫЫћЦ^WцФХуёАџ~іэлGП .\(;ёNPd—ЭЉIxx8sцЬСщt288Hss3UUUddd`2™HMM7ЯиP™уєљUЋеФФФABBгІMУщt200@oo/]]]ttt`Гй„ ЫхrсёxФхraЗлill$,,Œ№№p"##‰ŠŠBЇг‰]ƒС DNGTTTˆƒO€ R?ЛббQёžѕїї‡мz{{EOЛЁЁ!†††№x<т&Йєр№ў‰С`ЎЬ`—ІКŽFЃюL™c‡,фЩœђэ@ђѕз_чУ?фŠ+ЎјG49ЊЊЊўmБЃВВ’)SІ|Э#šђЛ >ЩokkЃЂЂ‚ІІ&T*iii,ZДˆДД49иBFцBЁPˆRZЩ­гппOyy9VЋ•„„љ3ћ-B ЪPЉThЕZЂЃЃ1!)Єƒƒƒ взз'DЛн.„ ЉЯž”Š ‡R9ОфМ•ТsЄpœшшhbbbD)І44mxx8Z­V”шJїЇКГK*ƒѕћ§ј|>!жINYЗлЭ№№0.—KsƒƒƒтoЇгЩаа.—‹‘‘1”& ˆ§AЏз‹~‹zН“Щ$PЄ”шшшaіTddddОid!OFц(dee‘••uМ‡1‡УСŽ;јЮwОѓЅчЕйl|ійgœўљЧ`d22“УыѕR]]M}}=NЇ“ИИ8цЯŸ?aИ‚ŒŒЬё',, ЋеЪœ9sЈЎЎІББ‘ІІ&8@nn.)))!гЫюЭo’А'ЅŒ&&&ŠОiУУУ8N!шпРхr1<<,nNЇS”dJТЁZ­'ь'`KBŸ$ъiЕZq/9Н‚ћёпKeœ …"ф&1бcп@@м&z,aNКŽŽ†м|>УУУŒŒŒрёxBЖsАPчvЛ…'ѕКsЛнxН^|>ŸHІ•ЩЅˆ’ЃRrN L&FЃН^С` &&†ШШHдjЕьЖ“‘‘‘9…<™o@€ЕkзтrЙОєМ~ПŸЕkз2<<| F'§§§TVVbГйPЋеЄЄЄpкiЇa4х“™”˜˜233™?>vЛОО>ъыыihh'фЩ|ћ vэщѕzQ0::ЪШШУУУBа“вK‡ƒўў~!.  1Щхr188(\`RяЕ`AN к+јIN?ЉŒsЌ‹/ИЌSZоXW_pGАА7Vє›шo`œ 7іЙр[А‹.иI7VДлSКIŽЙр›Ых7)p"Xь“DSi=Ѕ›Tђ*mзШШHсД ОХЦЦŠDY­V+WPШШШШœРШBžЬ Х{яНGGG§§§єѕѕБfЭмn7Знv{їюЅААЧ{L4@їzН<ёФМњъЋДЗЗ“‘‘СOњS~№ƒŒ[v рйgŸхЙчžЃЋЋ‹ММ<юИуŽ ЧБuыVZZZDљШ™gž)R‹ŠŠЈЉЉcМ№Т ЩЮЮцž{юсwо!--Ч<ЄQџoМСSO=ХЁC‡ˆх’K.сІ›nš0}qЧŽ<ќ№УTTTЭ’%KјѕЏйlfЫ–-мqЧькЕ €wп}›Э@FFЋWЏ>тЖ§рƒИѓЮ;йН{7oП§6dffrнuз‰i}>Я>ћ,/М№­­­ЄЇЇsэЕзŽ љ"ЊЊЊИяОћ())AЇгёЃ§ˆГЮ:ыЈѓ|јс‡<їмsджжтt:INNfсТ…ќђ—ПФh4Ž›ояїѓќѓЯѓЗП§ЦЦFЌV+W\qз^{­(ѕЈЉЉЁИИXМgsчЮeЦŒЌ[ЗŽ]ЛvЫuз]ЧUW]РЋЏОЪc=Fkk+3gЮфюЛяfњєщŽїэЗпцЩ'ŸфрСƒФЧЧѓƒќ€nИA ёЯўS”'ХЦЦђгŸў”M›6ё—Пќ…žž ИѓЮ;ј'#MMMдзз388HBBЙЙЙЄЇЇЫс22'0 …Н^ЯќљѓйЛw/NЇ“ююn8РЂE‹PЋеВя@мЂЂЂˆ‚–пяЮ1ЉфЖЇЇGˆ|в­ЏЏOИјFFF№zНт&qЄ§(X“Ц! VjЕZV’РќXpoО`g_А№%Й%Al"‚EК‰u>ŸO”ЌzН^бsN4Ѕ щ&M;ж7‘›/x СлJJє–Ф:N‡бhФ`0`4CФК‰zкm›ЫШШШШœxШBžЬ ХЛяОЫў§ћйО};пћоїИђЪ+Йјт‹yх•WЈЊЊbйВe\yх• pюЙчR^^ЮгO?Эœ9sxэЕзИђЪ+љьГЯxшЁ‡B–}эЕзђЬ3Я0wю\~ѕЋ_бааРŠ+&O>ќ№CЊЋЋyџ§їцЯўГђvэкХ‡~ШЛяО‹Яч#''‡;юИƒ„„<ѓyфЋWЏцЉЇžтўћячс‡fЯž=мxуМѕж[|№С!щјУИэЖл8уŒ3xщЅ—№x<\|ёХМѓЮ;ьнЛЃбШO~ђМ^/ХХ՘L&бы.))щЈлжd2qЭ5зрёx(--%..nТyGFFИшЂ‹иБc7ndЩ’%М§ілќ№‡?dѓцЭlкДiR{Ÿ~њ)gŸ}6 …‚[oН•ффd{ь1о~ћэ#ЮsћэЗѓч?џ™'žx‚;юИЗлЭO<СНїоЫЫ/ПLYYYH&ЏзЫїПџ}о{я=}єQVЌXСG}ФЭ7пЬ|Р+ЏМ‚RЉЄЊЊŠз_Э›7уt:ЙўњыљЯџќO.\ШђхЫyюЙчјџј\.lмИ‘я~їЛЈеj^{э5ЖnнЪО}ћЦ5tџХ/~СC=Ф§їпЯЃ>Jii)W_}5ЏНіяОћ.‘‘‘ №ъЋЏВkз.ZZZXЖlЛwяІЄЄ„хЫ—ГsчN^~љeоџ}JKK[яТoŸЯЧшээХяїc6›ЩЮЮ–E<™oЋеЪ”)SАйl вккŠУс ..NN*=‘Ž T*•pЩХФФˆ I˜ vy<†††DiЎЂ!•ŠJЅКc{ЙIЮ3I“^_КInЛ‰юёџБ/'xОШ‘'§?ј~Ђ›$њщ>ј&wЌЛ0и‘(…‹HїRO;ЉwнXЗbpYrpВмлNFFFцл‰|Д%sBё№Ууѓљаh4ј§~~џћпs§ѕзsйe—ёЛп§€ШШHрpђъЮ;yф‘GИєвKXЛv-eee<ќ№Уœ}ійЌZЕ €W^y…gžy†ŒŒ >љфЂЂЂ(((˜аН'НжљчŸЯ;яМђмЭ7пЬЭ7пЬЂE‹иН{7oНѕQQQlмИ‘ььlБќ7Вiг&~єЃёы_џ@œќмtгMмwп}м{яН|ќёЧмvлm˜Эfо~ћmЂЃЃ9pрŒŽŽђбGqёХ3oо<>њш#Š‹‹YДhз_§ЄЖэќљѓ™?>|№ЅЅЅN8яwоЩћяПЯџћџO„|ќќч?gзЎ]<§єг,\И0ФН7УУУ\yх•И\.^yхОџ§яpљх—3kжЌ чщшшрўћяGЅRБdЩ233xьБЧиМy3ЕЕЕьоН›3Ю8CЬsЯ=ї№ж[oёы_џZŒiЪ”)дееёћпџž7rУ 7pЩ%—pЩ%—pЭ5з№ьГЯђєгOѓЪ+ЏpёХpњщЇsљх—sћэЗ“˜˜Шž={0–/_ЮЧЬњѕыYП~Нxэ^x 6pс…Šї6--лoПЕkзrлmЗёаC‘””ФЫ/ПЬІM›ИўњыљќѓЯIJJЂЈЈ•J…пячœsЮaЫ–-<јрƒуш“‘@ @]].— ­V‹йl–ЫђddО%ЈT*ЂЃЃЩШШ ІІ†ццfьv;]]] YШ;Х‘„!Щ!ЬиrSЏзтJ“n’и\r:Жє4xžбббчлD=ц‚"Ц gСу+ЬIB" JL$ќ ‚ЙЅПƒХ5Щ%(9%NЋе)ў–zлIї’гPЃбGžдЧю‹œ…22222п^фЃ-™щ ЧуёАmл6ўђ—ПЦ–-[Алэ\tбE466ђќѓЯЃVЋљё2џŠ+xс…xшЁ‡„ЗaУЎИт !В\vйeмzы­ДЖЖN8–ЃЅ№IЯНќђЫTTT№ц›oВ{їn.Пќrќ~ПщЎЙцšy—/_Ру?Юwо‰Z­цј@€џјЧDGGрrЙ№љ|( ,Ыф6рW```€‡~@ˆЃпџўїљлпўЦ}їнЧЕз^{TWоыЏПNss3&“‰K.ЙD<Уuз]Чo~ѓ›qѓHM­нn7mmmBШS(dddP__OssØ~pp|˜xћўўїПчЁ‡т†nKяймЙs…ˆpюЙч‡CDюЛя>QТЋP(XЕjќ1 y Iь•DЪрэДvэZž|ђIж­[GBB‚X?ЧУњѕыE8ЅRЩїОї=ЖlйBYYйЗщЩ„”Xыѕz1ФХХa0ŽїАddd&‰JЅТbБ гщ8NКККФїіЩJрџњЙЩќћ( ”*ЈThдjЂўятl0’ы.ИЗ\p9jАшчёx№zGёx=ЂLї№c‡ћЧ }С‚žД\ПпGpШyН^кккАлэшѕzRSSбjЕу\}’`Іќ?mЂр`С.X€='‰r’Ј,Ю—OyП•‘‘‘9љ…<™šГЮ:K\н_Жl™xќ§їпЧчѓ‘’’‚ЯчЃЗЗ8|№'‰=Ÿ~њЉ8ј“њТЭ;wмk,XАрˆBоdШЬЬ$77€ММ<ђђђиЗoŸXЎеjc8tшpX8ЊЈЈ ??ŸmлЖ„8жfЯžMIIЩИЧŸ~њЉб›ж›““юmV]]}д~nќ1sцЬw%xС‚Юc2™(++ЃЛЛ›гN;ссaЪЪЪ(--ЅОО $Єcћіэ ЂVЋ‰л7ааа@uu5нннBL“Лшt:дj5^Џ—‚‚‚чЄyNЇxЌЕЕ•ЪЪJ`ќv’њМy<ЖnнЪх—_ђ|VVжИёLє'3@ЛнЮшш(111 †ЃŠц222' …ЃбHttДИ№жгг# N6T*}н6~”qr •пzЦФO0ЖНмXЧнјiв?~?юсaќ@€AЕš†ШHq\ЃsQsМCOL9nš-cќ42'&fГљxAFFF…<™œ•+WNјИ$дДЗЗ3oоМqЯK}Цщяяgtt`ТА“Щєџй{я№ЖЪЛџџ-ЩжВ5,ЫCо{&qіORF!)…2(Є@[ш•І}њmс)…хщЅ Ѕ#… #2 $ЭvЧv<хЁe[ж–Ефwп=’eЧ„8Ю§КЎsI:ѓ>CGч~ы§љ|ЮjрђЫ/у`#mt:Ђ"UтCТз!рL& 555.wh4њОППB!бHцВJvЅЅЅ0јжЗО…O>љѕѕѕ˜5kVR‘‡пh4:с50<<њ( У)лvЊm“\x“™џ|уtЯƒС`0N&ф1І4ухЭ"љљљ8qтФ„ырКИ’u2œNчWhсЉлœЌt›LР!А рЄKяЫрp8$ЯNХШШx< ;ˆD"qтŠзыЅяIшяxЂЩ„ЉёŽЗпяЧM7н„M›6aнКuxёХЉxxьи1ДДДФЭOŽЏP(DggчЉvёŒТнт`фBœu …bЬДd•Š/DHEОг b|yx<^œ…{JќЬ`Lnˆpja„1Н9“ї/ГЎг]f2B\Ђ Ш§ќUіwМBг…щК_ ƒ1•`BcJ3ž…„yšL&ЄтH{{;JKKЁгщ VЋaЗлуœTцzЖк===I…МЮЮNBЃб@ЋеbhhЧŽ“ŸЮbБ #77Р\b\ЁьБЧƒFЃЁ…Ц#йВПўѕЏ‘•+Wвi6›-Ўš­ХbpRˆJ ?MЄВВ’:вЦнž|ђIlкД з]wќёИiЩФ?r|GGGa6›“Vэ%зР™ІЌЌ JЅ.—‹‚ЧулэpВР#9$”™$#g"РXТс0|>œN'\.Ђб(­^˜žžЅR БXœT D"tр?ТKbu`’ Š$'Йžˆ–;эt! яСЄжCк( “vIВzтВцёx4чTтќd{м§?ЖŒЧЃЧќBюА’"муЫ`Lg+Ы~.ф{ƒС`0О:LШcLIHч*1М“pѕеWC&“Сыѕтяџ;ОћняЦMпЕkжЌYƒЃGB рКыЎУЫ/ПŒM›6ХЭлвв‚У‡Hюж#”d=2mМ6VVVЂООјгŸў4&ќгbБр’K.С_|мм\|ы[пТ /М€W^y?ћйЯтТIјУbётХИџўћќЧеEBaраЁCИћюЛ“Ж…ЫxЫ.^МЅЅЅИјт‹БcЧlнКЗоz+gыж­€я|ч;qC’q§ѕзубGХСƒбззчZќы_џ `ьёўьГЯŒЭ9зггCЯ7‡мвЅK‘ “Щ„W^y?џљЯу–kmmХŠ+pьи1ъŒ›ш|ŽЭ›3ўxЁPˆлnЛ Пџ§яБmл6\~љхtкЖmлœёfЭšuЪѕŸjкtE.—Ущtbtt~П‘H„UЛќџ‰D"p:0™LшыыƒЩd‚нn‡пяG,CJJ d2222““ƒмм\шѕњ8Ї(ЩzєшQКœRЉ„С`@aaaмі‚С њћћбее…`0>Ÿ•J…КК:…BДЗЗc``С`№ДїEЋе"??jЕшььD H:/ŸЯ‡P(„L&Ѓn(Š8сбnЗЃЗЗ—†яЇЄЄ ЌЌ 999qшD"˜L&tttРяї8™ ??†NЏ-! Q__F3І*ч…B,ƒпяЇп]@™LЦФ<ЦyХW fсЃ ƒС8—А^cЪ1<‰{яН?ќсЁT*БrхJD"lкД їп?ўўїПгNХC=„Зоz яМѓў№‡?рЮ;яФрр V­Z…ђђrДЕЕсаЁCАлэ4чY4Ѕ!Џ6›-nћЁPˆ†РZ­жЄћСуё№ќѓЯу’K.СњѕыQ\\Œ{яНbБ{їюХ]wн…x€Кьzш!М§ілшяяЧ5з\ƒ_џњзP*•јуџˆІІ&МўњыtнФёібGсшбЃ8pрšššА|љђS_Вь|€я~їЛиЛw/Z[[iЎПчŸ ,Ру?ŽЋЏОjЕ&“ ызЏG^^оЗ\2fЮœ‰лoПЏОњ*nОљfМёЦаыѕxєбGЉ+2уѓЯ?Чќљѓigќ“O>С?ўёЌYГиГgўћПџххх8vь>јрЃ  uuuxюЙчp§ѕзу‘GAvv6nОљf№љ||ђЩ'ИыЎЛ№ф“OR/‹бѓ˜xЮщ5gГйт\|D№Длэ…BДуўЋ_§ |№^}ѕUмyчЈЌЌ„ЯчУ“O> ™L†_|1nd›‰ысNs8у:LЇ<jЕNЇѓ‚ияSAœ‡8pрš››144DE4юХчѓ‘ššŠььlдззcЮœ9ЈЌЌ„X,ŸЯG$йlЦТЇћь IDATЦщ=ЕААЫ–-#фљ|>477унwп…Ус€H$BYY —ЫБoп>|ійgp:qсf“ЁООЫ—/‡D"ЁлH–>€ыLOOG~~>jjjPYY‰ЌЌ,њ}1›ЭиБcОјт 'џHYЕjдjuмѕ‡qтФ Мѕж[є{_SSƒхЫ—C*•ЂЅЅoП§іiЇ2JЅPЋеЫхДчp8рёx‡!‰ бh˜Ч˜2pяS‰ЁБмqЩ–ћВ‚\ВДm‹С`0Œ/Ыи,ю Ц9ф–[nAMM вггЁRЉpеUWЁЖЖcц§ўїП 6@.—укkЏЅ‰З~јaМёЦИшЂ‹шМЙЙЙјєгOQSSƒћяПiii(..Ц7оˆ+ЎИРIŸNЇУЦёќѓЯЃААMMMPЉTXП~=ЪЪЪАsчNќюwПCaa!L&T*ўїџ•••иАaӘ6.XАлЗoЧŒ3АvэZШхrHЅR\{эЕИџўћёРаyѕz=vюм‰… тЃ>Тœ9sP^^Ž/Ој[Жl‰ыЄоuз]ЈЋЋCKK ъыыБnн:lиАiiiЇ<Цwп}7jjjаммŒКК:ќќч?Ч† ЈрUQQ;wBЁP ІІ—_~9ЊЋЋQSSƒЯ>ћlL1ˆёxс…pяНїт‹/О€С`€L&УћяП—^z‰ЮГdЩzќѕЋ_aсТ…шщщAQQфr9nЛэ6ќіЗПХ;яМƒС€mлЖсс‡ІХ*ЎЙцlоМљљљИуŽ; •J‘ššŠя}я{xъЉЇАjе*Р–-[PTT„;v@ЅRсэЗпFII >ћь3мrЫ-ЈЋЋЃзмЕз^‹%K– ЛЛ•••xт‰' RЉ000€ЂЂ"<ћьГ€ДД4ьмЙ‹/ЦќљѓБbХ ”——УяїcЧŽ˜9s& ЏЏ•••xќёЧЁRЉазз‡ЂЂ"<§єгDUU~іГŸAЅRСхrЁИИ=іиЄŽёљ ЧCNN„B!мn7†‡‡сrЙЮuГЮ9БX ЃЃЃиЕkўѕЏaћіэРшш(RRR —ЫЁP( •JFсёxpтФ |јс‡иИq#ZZZтfсp.— ‡‡nЗ;.g(ПпOчЫхB4ЅлБлэtYпdLіЭщt&oddУУУ0™L8~ќ8>ќ№CМљц›јф“OтўH ‡У№zНp8t]ЃЃЃIѓqƒСИэy<ƒADЃQј§ў1mЏmмСnЗcxxјK9љІбh&“ .—‹цWеыѕЌА٘^pChЙ$+~Х`0 ЦЙ€9ђSŠПќх/Ї5џwОѓ|ћлпFKK ЌV+ Š‹‹“>l‘0WтpЉЌЌ„NЇƒЯчУ/љK(•Ъ87Сš5k’nѓЂ‹.Тƒ>8щ6.XАDww7ŒF#4 ЪЫЫЧфЉ€ђђrьоН]]]0ШЪЪByyљ˜sеj5>ŒУ‡УыѕЂЁЁс”сЎ­V‹ЦЦF:t>Ÿ/щВuuuиЗoNœ8AЌdЮШ‰‰DјУў€‡~ЧGzz:ъъъ‰D`Зл!‹!•JукЕ{їnЦЇзыQQQAЇїєєРуё@ЉTЦmчŠ+ЎРW\'N ППYYY(-- гМђЪ+qх•W&mч’%KЦн‡Ф‰deeснwпE__::: зыЉу‘`0&\ЯёуЧ'мЦt„ЯчЃЄЄЧЧШШ, ŒF#uЇ^ЈxН^466bЧŽшээE(‚D"Aaa!›› ‘HЗлЎЎ.8p6› иМy3фr9ђѓѓЉsюЫц€#їа””TUUЯчгUрЄ‹ЕЏЏКISRRPRR‚ьььИ?ђѓѓ“цЏфёxHOOGmm-MOрrЙ`6›бзз‡H$ЋеŠ#GŽ@Ће"33sLшѕdі-™;†гeЫ–бp§X,†`0ˆcЧŽСnЗS—YVVŠ‹‹!‹ЉR,CЏз_АЁр‘H.— p:HMM…NЇCFFsф1І4ф~‰D‰DРчѓ“~Ч+F1б=‡ЬF ‰Цў˜SС`0_• ѓ)”1­рѓљЈЎЎFuuѕЄцOœO*•Ц Jg‹ТТТ1!mуQTT„ЂЂЂ чсѓљhhhјRmсѓљcrі%ЃЌЌ,ЎhЧ—AЋеbщвЅєГ@  ŽКd”––&-PСчѓЧˆxgК­_ƒС0nѕbЦXј|>ЪЫЫЁеjсrЙ`ЕZбжж†њњzHЅв вѕ‰D044„={і ЏЏ~ПЉЉЉ())Сх—_ŽђђrЈT*”––B.—уѓЯ?Goo/œN'Ž;FEѓєєєЄ•OЗу( Q[[‹ќќќИМ–---‡УqB^MM цЬ™W­Y*•BЅRба`ваh4XЖlн/Џз‹ююn|ђЩ'0ƒ0›ЭhooЧвЅK“V>§!ЧC,ЃЈЈJЅ’юS4…ЯчУрр мn7Тс0Фb1 pйe—!==†Э ‚ к}аггЃбЧƒŒŒ фчч#== yŒ)УD•КУс0кккрrЙ гщ——БX|ЪjД‰Bw^Пп‹Х‚z?”ЩdLЌc0 ЦY y ƒСјкЩЫЫCaa!l6ьv;Nœ8žž”””ФzЙP№ћ§АZ­hiiЯчC,ƒFЃA]],XЙ\NNЙ\NsyšЭf УэvУсp ЕЕхххIEЏгtXљ|>t:t:]мtЧЗ >ŸЬЬL”––& ёOЬEЧуё •JQTTDнv‘HZ­§§§АX,ƒT\ѓћ§д9ќU‹Т*vHБ\.ЇbTJJ T*JJJ бhОв6Ї ЄˆЪсУ‡aГйF‘™™‰ттт ђ{Ы8HЬgБXpша!„Уa444 ЄЄ™™™“.кТуёF1:: ЋеŠііvъш]А`Aвjмe ƒСј*0!С`0_+$ЌВЊЊ ]]]шшш@oo/іяпŒŒ …Т Юйуѓљ`6›iс" UTT$uЂђx<фххЁЈЈpЛнˆFЃ€нnGnnюYэ,& л=нPоX,—лŽ[H‚œџh4ŠP(4aЇјLиюxЦ№љ|0иП?мn7  P\\|Ў›Ц`L ‘H•JГйŒїп;wюФЅ—^ŠЙsчЂДД&Љ0>;22‚оо^ьоН;wюDoo/JKKБjе*ъ№c0 уlР„<ƒС`|э…Bдеесјёу0›ЭСgŸ}†ВВ2HЅвЏь(;п№ћ§АлэE,ƒH$‚Z­†^ЏwБX N•JЃбрЄѓЭуё  %]f* S$L• 122‚žžŠ›’’‚ддTЄЄЄАNё9&‹a``ћіэCww7Тс0ђѓѓQYY9сuЪ`LEЪЫЫ1kж,ькЕ лЗoЧО}ћPSSƒK.Й+VЌРЬ™3СчѓуR=ќЁ­­­иО};>јр477УхrЁКК ,@EEХ›C“С`0_ьW†С`0ч„ŒŒ ܘ1VЋАX,иБcЄR)ЊЊЊтŠ&LwТс0­ю ќЧ5B A$ƒЧуA"‘ау‹Х …Цф„šjDЃQиэvlпОiiiрёxp:шююFSS­ ›––†ММ<(•ЪгЮ8•їџ|Фd2срСƒ8tш"‘4 ъыыQZZšдA;•DcƒмˆsX&“ЁКК‹/ЦёуЧсѓљадд“Щ„={і`іьйЈЊЊ‚ЩdЂХ1\.>ўјcFьлЗmmmЂЁџ555XИp!„B!нЛ1 уlР„<ƒС`œD"***`Гй`ЕZ100€ЃGBЅRA$ЁММќ‚s5p…МЩv“UV/ЬuЊt*Ѓб(†‡‡БcЧZ4btt”цњ‹ХbHOOGyy9ъыыY˜к9fxxћїяЧў§ћ144‘H„™3gЂЖЖчКy FRЦЛgћk^^.\ˆmлЖЁЇЇ>ŸCCC0јїПџ Гй Чƒp8Œ––8 Тl6Уэvгћ,Љ.žЌXƒС`0gš Ћ‡Ф`0Œ)…NЇCmm-ЌV+œN'ьv;<‰D‰D‚‚‚‚ "_ž@ €H$Ђ•I&Пп?ю2ФGмkФХ' ЧuЏMж%uЖEГX,†ббQєїїгmёљ|Јеj(•J”””`іьй(--оЦ]ЯxыgŽАЏN$зыХсУ‡Бwя^tuuA    ѓчЯG~~ўИЮY&М2І"\g^zz:jjjАhб" cxxбh^Џ]]]шээšЃгh4ЂЇЇбh4юў"‘HP__™3gBЅRХ§!У`0 Цй€ y ƒС8g…BbётХАX,hmmE?іьйƒ””Шd2Јеj…Тiн)‹ХP*•‹ХˆD"pЛнFaaaв­P(„‘‘Инn:NЉTB*•вœrммrбh4iб2žлљLЬ uІсёxHMM…С` &ŸЯGjj*T*ђѓѓQUU…ММ<ШхrКœ@ ˆkW,C$SЈ‚ьSb1ГЙOг r ЖЖЖbлЖmhkkC(Bnn..Кш"дее%­PЬ`œ/…BфффрђЫ/ЧО}ћрvЛi~NрdЪ.‰Ÿ ййй˜;w.ЪЫЫСчѓFЇѕяƒС`0Ю=LШc0 Ц9E&“ЁЂЂз\s оxу tuuСh4" cХŠаыѕгк™'“Щ зыЁP(‡‡aГйаее…™3g&нwЛнŽоо^ 8)ŽщѕzЈеjH$…BHЅR*^…B!ј§~D"‘ИѕС†ˆ^)))H$g­3*`0pчwBЇгбj@БXLХШD„B!D"э,Чb1ј§~ъJ$ƒAј§ўИŽЗH$‚H$:+ћ3ёxѓцЭC}}= 3g"ƒС`0Ю6ь ŒС`0чœддTTUUсЊЋЎBuu5$ ёЩ'Ÿ`ѓцЭhkkУшшшЙnцYC*•";;•••TlВйl8x№ 8ЇгI…ЖP(„ССA|ійghmm…ЧуЧƒT*EEE4 RSSЁзыЉ цvЛa4100@Ћкњ§~˜ЭfДЗЗS1L*•BЃб@*•žЕ) VЋеаh4аjЕаjЕPЋеЫхуцFT(HOO‡D"ЁЧЂЗЗ}}}tŸЂб(њћћбззЏз 4d—9Ш&‡ЩdТŽ;Аiг&tuu! //K–,С%—\ТD<ЦyЙЗ‘{УВeЫŸŸZЅЄЄ 33Ы–-Ѓi ˆ{š‰y ƒС8›0GcJc4ёўћяУnЗ#''з]w”JхЙnƒС8У( Ьš5 ‘H"‘MMMАйlјт‹/рїћ1gЮTVVB­VŸыцžqRRR еjБ`СX,Fј|>tvvbѓцЭшююFff&D"М^/њњњpј№a˜L&„УaШхrддд ЊЊ щщщЫхЈЈЈ@kk+ќ~?<:::№ўћяЃЄЄЉЉЉp:hkkCOO‚С x<4 ŠŠŠ ‘HЮКX“’’ЁP8щЂ&iiiШЭЭ…^ЏGWWЂб(::: •Jсt:‘––Џз‹уЧЃЕЕ•ю“Z­†С`€FЃ9х6Hˆё…–c/‹! бŠœћїя#тЭŸ?999гкЫИА *Ь;{іьAww7l6лЄ–U(˜3gfܘЕZMsœ2 ƒqЖaBcЪђќѓЯуG?њЎИт \zщЅXЗn~ё‹_ррСƒащtчКyŒSаггƒ%K–@­VcїюнqyЎŒd№xŸк^’[oбЂEp88qт\.<ккктц‰DP(ШЫЫУХ_ŒЂЂЂq+Ќr—KII‰kуt&‹! bhh'NœРЎ]ЛpєшQx<H$ ,]К‹/FFF„BсЙn2ƒqVЩdhhhРбЃGщw`" ЪЫЫqёХCЉT2С`0_+LШcLIў№‡? тж[oЅaK—.EGGцЭ›wЎ›Чажж†ЮЮЮqЇ_yх•јЭo~NЧD<Цi“žžŽ††deeaЫ–-иЗo, клл100€'NрЂ‹.BMMЭД Ехёx0 ИъЊЋPSSƒcЧŽЁ­­ 6› ^Џ—†+ фццЂЊЊ •••ШЭЭу”тёx‹ХXДhєz=Ž;†––˜ЭfК.ЁPЅR‰ььlTWWЃЖЖйййЇt] …BШхrЄЇЇ8й –H$уvfy<$ ”J%Ђб(„B! Х—aIqFF:„жжV Рщt" "%%…юSii)fЭšƒСpJЧуб}"ыHMMжєP(„ЎЎ.ьоН{іьбhD,ЃЧј’K.СЂE‹&<З Цљ їК.))Сœ9sА{їn9rdТхrssБxёb”––N:5ƒС`0g іЫӘ’ДЗЗrrrœЌ Жuыжsй$F|№С„гSRR№гŸўєkj c:"‹‘““ƒЋЏОYYYјїПџжжVxН^rЙjЕњKu‚…B!233БtщRܘ1@‘H„™LЅR Й\~Ja’ЯчC*•тškЎлэF8†P(ЄХ7ІС`‹ФсУ‡бй鉑‘'ŠЙsчbюмЙ(++ƒX,ž6п+Цљ7м§L^—БX 2™ еееXМx1š››iD jjjАxёb&т1 уœР~}S’h˜фzbL-Ьf3ž}ійsн Ц4‡8ЪrssЉЈ’™™‰ЦЦF ЁЋЋ .— fГд™іe^S :›šš ЕZH$‚X,Fs0‘АжЩ„~ђx<К.•J…H$Bѓ?‘ъŠЇF*—Ы‘ššŠмм\К’š ЁP­V‹єєtк_:Я!qj‹D"(•JКO‰ЧgВзiAAAмzHˆэt„iwvvЂЙЙmmm4%ЩЉ8{іlдддР`0@.—_0y.фчѓљ0 XА`ЖnнJ‹%RXXˆйГgЃДД”И`0 Ц9aњ<2ІљЫ_рїћсp8џњзП№яџХХХИєвKщ|}}}xўљчбииˆддT\yх•Их–[h‡+ЃББ###p8‡УXНz5њњњ№јуУh4тЖлnУЗОѕ­IЕkѓцЭиИq#L& qћэЗcўќљtКйlFww7н^CC №ќѓЯcћіэИъЊЋpћэЗ'э,GЃQlмИяНї†††PPP€;юИsцЬ455ahh‡NЇЋWЏF(ТO<#GŽрЂ‹.Тš5k№зПўuЬК‰›щеW_ћwЙЎЎ:ДнW\qZ[[ёт‹/bxxЕЕЕxр••E—{т‰'№Т /```BЁызЏЇгОёo ==­­­p8p8pЛнИ§ілЧДЫчѓсЅ—^Тіэл‰D0ў||џћп‡JЅЂѓtttРd2Ссp`ddW_}5‚С žyц466BЅRсж[oХђхЫ'uч')))ШЮЮ†BЁ@FFДZ-Ž;†ОО>иl6 Уh4ЂЇЇuuu(**‚NЇƒ\.#фœЩШOGњКж5бz’c"” QьLэЇБX @###шщщСёуЧqќјqtwwг\xyyy(//GCC­ =LЦєсlмПЩ:Iё ккZ,ZДУУУŽ›W"‘`ЦŒ˜9s&T*ёЮFЛЮцК ƒq~УžвS ЃбЧƒH$шяяG0Œ mzџ§їqу7bщвЅx№Сa6›ёуџ/Пќ2Жlй‚єєtŒŒŒрюЛяІ§ММ<ЬŸ?Ы–-УвЅKБeЫ|єбGXДhQœH•H0Ф-Зм‚Зп~<ђnОљfМѕж[XИp!žxт Ќ]Л№о{ясЙчžCSSbБ~їЛпсoћbБєz=Жmл†M›6сѓЯ?ЧЋЏОЗ ЧƒkЎЙŸ|ђ жЎ]‹лoПoП§6цЭ›‡ 6рІ›nТкЕkбжж†žžРВeЫp§ѕзЃЖЖлЖmУ–-[P\\Œссa<њшЃ№zНШЬЬФO~ђКПпз^{ ћіэУŠ+P]]чŸяМѓ eўџяџсѕз_ЧM7н„ДД4<§єгјѓŸџŒ;vајрдззžyц|јс‡шшшќѓŸџФ<€ЊЊ*DЃQМљц›xѓЭ7ёЧ?ўїмsЯф/4ЦyЧƒRЉDUUђђђPTTDCmm6њњњЈ3ЏІІuuuДJЉD"aЂФзыtN "‘BЁ­ь{ьи19rэээp: …HOOGAA0gЮфччEйљdLW’ eBЁйййИтŠ+Аoп>Иню8W^vv6цЮ‹ŠŠ цЦc0 Ц9ƒcП@Œ)ˆFЃнnЧ‘#GЈЈЈЏЏGZZ:;;iшэ?ўёЌZЕ з_=6nмHчџєгOqщЅ—"//uuuИяОћрp8Аzѕj№xrrrpУ 7 ЌЌ №ж[oскkЏХГЯ>‹ќрШЮЮ†бhŒ0~ћлптЅ—^BSSMќFЁRЉрrЙ еjбииˆььlРњѕыqїнwЃЖЖ‡ІМііv”••A"‘Ряї'=vMMMЈЋЋCJJJœ0 ЁЁЁMMM8zє(jkk(((@nn.šššЈx‡!—ЫП§эoXВd рХ_Ф=їмЕZ Гй<-н4ч#змp.§С§ЈYДpмyОъOO$еjХбЃGБgЯ466Тыѕ"‹A$AЃб ККsчЮEyy9222иѕСИ p:шъъТ‘#GАџ~єїїУяї#‹бѕE‹ЁЁЁљљљg<р <ˆo-^‚nИсŒЎ—K__^~љeМјт‹pЛнИёЦБnн:TTTœЕm2І‰Bљ‡144„Ÿќф'јфуaБZœ ННqѕ*мwя͘7wsф1 Ц4у|ЙчN>!ƒ1xт‰'рѕzq§ѕзЧхЯ[Йr%фr9ўѕЏс№сУt<щ˜X­Vј|>ЌXБз\s }єQМёЦŠxVЋЯ<ѓ ј|>жЌY7эъЋqВGv IDATЏF,УSO=7žlЏВВ’Šx0kж,&Лwя^:ОГГЏПў:x<xр:ОЕЕтЊ,r;YяНї~ќуЃДДызЏЧя~ї;\}ѕе€я}я{ШЬЬ„ЩdТІM›ткЗeЫ<№Рqы%Iорлпў6ёрЖлnƒFЃASSЖlй2юБJЦxТўѓŸhjjBmm-ё€“…M.ОјbєєєрЅ—^ЂуSRRшЙ^ЕjёрŽ;ю€H$‚нnG[[лiЕq~#‘‘yѓцaѕъеИэЖлА`Сшt:Фb1 bпО}xѓЭ7ёч?џяМѓсt:Љу—С˜NФb1ј§~єѕѕсу?ЦыЏПŽз^{ }єŒF#|>MцџЭo~wоy'–/_ŽЂЂЂq‹”0Єѓ& VЋqщЅ—Ђ  ўЩ\™™™™XvЩ2фххƒЯчг4Їлщ#љN'гžѓЅCЩ`0ŒЏkФ8ЏиМy3а0O‚D"AII Ž9‚wп}3gЮŒ›№Эo~РIqьўчNЙ­?ќ@љљљащtqгˆА}ћvZE’ЫВeЫЦЌdnЗ;nбhzН………tќ‹/ОˆЫ/ПпјЦ7’ЖmйВeTŒЛыЎЛтІ‰ХbЌYГ?ќ0ž}іYšАЕЕ‡ТЛяО;ю>_|ёХqŸE"jkkБcЧlнК+WЎwйЩђо{я{ ККќ1о}їн8a“x\…B!222000w\$4P&“AЃб ''эээhooGOOЌV+z{{aЗлa4бммŒЂЂ"!''2™ьМ/ŒСИА!љяL&z{{бее…оо^X­V*\+ ”••ЁДДeee(**‚^Џ‡D"9­"' ЦЙцLV­MЖ<ЯD"цЭ›‡ян‹ž#‚Ё цЯŸ††h5šЏДэЩ,Ымx ƒС˜&ф1ЮЬf3€“ЁЗ‰hЕZ@wwwвхWЌXqZл;qт€“yњдj5‰DрrЙ.— ‡#n:€1Тж‡щ8вжФ<}zН~Œ ЫЉіeЭš5xќёЧБkз.9r3fЬРњѕыБzѕj(•Ъq—гыѕcЦeddz{{'мцd1’ŸCВ­ёЮaffц˜qBЁ@ќqe\8—NЇƒZ­†С`@II кллqтФ ˜L& Сh4ЂППэээШЫЫCAAђѓѓ‘““­V ЅR ‰DТD=Ц”'" ТыѕТnЗSСКЛЛНННД ­H$‚JЅ‚^ЏGAAЪЫЫQ\\ Н^™LvЎwƒСјRМtф5‹бJг‰C4Ѕ­#‘}ЯO–MЖŽ@ ЕZ Z Їл…ТТBј§~єрс?ЂЉ”ЭчѓуоsЋ‹“Ђ<`ЬrЩо“}e0 #LШcœ7ЄЄЄ€ЯчгNL"@@|8*ЧуMF› ’з­ЈЈˆŠz“…і;NзMvЊ}бщtИщІ›№Ъ+ЏрйgŸХsЯ=‡з^{ [ЗnpЙdb˜ЧуЄІІžVЧƒšЇ{г?ЎŒ ‹””шѕzшt:TVVЂППMMMhnnFoo/FFF0<< ЋеŠІІ&шt:ЂДДХХХШЬЬЄ‚žP(Є*у\C„‡@ Џз‹ЁЁ!єііЂЕЕ]]]0™Lє^-‰ VЋЁзыQVV†ккZTTT@ЅRБЂ/ŒЏ•/у*KеХ8юk8F8F0D(B8Ž{ …Bƒƒє=™Ц?‰ Sq/8™%=)žLYђ6D"1x@œ@GЊrЇЄЄ@ @(B$A$A(B,C"‘@,C(вe„B!ШМфy7™Ш ЙЧ–Йќ уТ‚=б1ЮЊЋЋбдд›Э6f:7cЦŒ1гвввЦ‡ЦЃЈЈРЩ\y‘H$ЉSЧхrMшp›ь6HђDБЬfГ%uї%sЮ%ђЃ§ЏОњ*о|ѓMджжЂЈЈ .“ЬuзппqљьH(7Ф% A&“!LјXWW‡;wžі9d0& ŸЯ‡BЁ@EEŠ‹‹Б`Сœ8qGEss3, FGGблл‹ўў~ьнЛ())Ayy9JKK‘——ЅRЩ„Ц9'‰РяїchhhmmEGGњћћсt:Љр! ЁRЉP\\ŒњњzTVVТ`0@ЁPА\[Œ)O,ЃТл<œN'\.}uЙ\pЛн№zН№x<№x<№zН№zН№љ|tTЄKцЦ#BaЂР16nм˜T@уКщИnМD1Ž}DдKMM…L&ƒT*…\.‡\.‡L&ƒBЁ ƒ\.‡RЉ„JЅ‚RЉ„\.‡T*Ѕ‚ H$bNrƒСИa=Ц”„ŒŽŽ"а! Qqn<З^Ђ@Чm/ Э%п ЎаMЦqП7м§H\ЧЃю@2ž‰Ы'†с&Š}\зqѕ‰ХbˆD"ЄІІB,C*•BЉT"-- JЅщщщqяЩ––™LF]ФхwЊѓ8оЙd0 Цд‚ѕHSŽH$‚ббQ€Яч‹›vп}їс7оР‡~ˆ`іьй€ЇŸ~бh?ў8ЭГЦ]ояїгЗЩb0Аnн:ќњзПЦНїо‹ММюНї^ќўїПЧƒ>ˆŒŒ Ќ\Й]]]Их–[pЯ=ї@ЅRYgВѕ'уG?њЖmлЉTŠoћлЇœзЎ]xэЕзpы­З"`Эš5ˆХbИѓЮ;QQQAчгщtJЅ№љ|иМy3ЎЛю:<ђШ#Дr.ЗбhЃЃЃ4,vіьйИчž{№Т /р…^Р}їнxџ§їбжж†ыЎЛ.ЎШG8І!З‰ћ‹ХшИЩЦ…ЩЁ'‰ —ЫЁеj‘““ƒŠŠ ˜L&єѕѕбМbvЛƒƒƒ‚ЩdBgg'4 222 зы‘™™‰ЬЬLšS/55•цhd0О,бh@.— ###‚Хbйl†еjХ№№06BЁD"ввв‘‘œœšыQЏзCЃб@ЁP0‡#)\ёщtТ,ЧьИяIhj(‚пя‡лэ†Ус€Ус яЙ‚Ых‚ЧуЁЏ~ПŸ vЃЃЃE0Œ w@o\—›P(ЄB O%т7\5Y,yх†­rнu‰ћЪuщ‘6qEEn˜.ї= чх†єrУ}IјЏпяЇ‚$з%HкEі‰„щJ$:HЅR( (•J*іЅЅЅA­VCЅRбЯ …iiiH$єјLtЯ`!Й ƒ1ѕр՘…1…XЗnўіЗПбO•J…ЊЊ*<ѕдS˜?>`pp7п|3іэл‡ыЎЛ&“ ЛvэТo~ѓќр?pВcДtщR477Усp QPP€O?§tвэ‰ХbxьБЧ№иcСяїЃЄЄС`O=ѕnЛэ6РыЏПŽЧ---N:жfܘ 6раЁCxф‘Gpьи1'‹3ܘ1ЏМђ jjj‡ёрƒтЙчžC4ЅJЗнv^~љe№љ|мqЧјшЃ`2™œ,њPVV†?§щO(--А§•••ИќђЫёєгO;_VV, ^}ѕUќєЇ?…\.ЧШШьv;V­Z…з^{mLhђЏ~ѕ+<єаCN>мЭ›7›7o†FЃСВeЫадд„ЁЁ!@NN.Кш"МёЦN>єЎ]ЛЯ=їVЎ\ БXŒЗоz ЋWЏЦџјG*њ­]ЛџјЧ?шѕ VЋiн_ўђ—иАa-Œ‘––†ъъjьмЙ“ЙІЮ1змp.§С§ЈYДpмyЮѕO WДлэ Ž'‹ХчzŠFЃ‰DP(аjЕШЬЬDvv6233ЁVЋЁVЋi87їƒ‘ nЎ;ПпO…ŒЁЁ!иl6X,X­Vиl6ŒŒŒа?($ э|gff"''ƒƒ™™™Ых4џшTс…ФЗ/С 7мpжЖбзз‡—_~/Ој"мn7nМёFЌ[З.ю'Ц˜Œ—ьOOюМD˜"Ђ k%;‡УЛнЛнŽЁЁ!  ѕzНTќў“oŽˆq"‘bБ8ю3 G%Т7я\jj*uЁ’ёBЁŠUDМуцЇKtР%†Ч& IO,І1^QH$Bƒм|}‰тншш(ќ~?Ш8ю4ђ9йђ\Б3‹б}‰DTи#aЙ*•Šўni4*№ЅЇЇCЉTB&“бP_БXчтc"ƒСИP8_юwLШcL)<-2СE.—qО466тШ‘#ЫхXЖluЎFFF’n#qОЩрp8№љчŸУfГ!77 .Œ o%Z‰(•Jњяt" …"NpъыыУюнЛ‰D0cЦ TWWгi.—‹>ь&Ў"бРчѓЁЄЄЛvэBIIЩИѓ!oпО}(//Чж­[сѓљааазŽD<ˆЃGBЏзуВЫ.Ѓч(йБcђ  `зЎ]ˆD"XИp!ЭHяzPЉT№zНI f|™ѓЫ8ГœB^"~ПƒƒƒшээEWWzzz`ЕZсp8шЕFBЇФb1ввв гщььldeeAЋе"==†3‘Ž#щ2.,И|ЎSЩуё`hhVЋ0›Э0™LTИ#9Y‰ЫHЉTBЇгЁЈЈљљљШЯЯЇтнT™wў‘(є‘ы—+Dy<ъЎГZ­єт"%"4y. ‡УдA—шˆKIIЁттˆЈDBDU*ЭЧˆшФ§%1<•tчЊSЦLЩёхцщуэ ї RаЦчѓбќD№'сЦDЕлэT%!Ш$ьž8Й9“ЯbD$еh4ащtШЪЪѓ{Ібh T*ЁP(тФTюяйљвйe0Œгс|ЙЗ1л cJ1™мo„њњzдзз;§L :щщщИъЊЋЦNB“!&Umе`0`ѕъеIЇMЖ ЦЧŒh4ŠхЫ—ўяџўK–,™PФKЖ-n>М‰hhhHZ@cВЧ>''gТп‰ЎђЯ`œ RSS‘——‡мм\Ь™3fГFЃД2(qъ‘МzMMMдљ бh““7hЕZШхrЄІІNiб…qf!yю|>FFF`БX000€ўў~єїїcppNЇ“К’Ш2)))ЩdPЉTШЯЯGII Š‹‹a0 еj™у“qVсv^Тс0|>†‡‡ЉkЙЇЇ]]]шюю†ЩdЂaБС`0iС@@Ÿ Ž233ЁзыЁеjЁбhш@r;ry"‘hмЪЌу9цІ2мY Й#2ё=ЗqCWžЯчƒгщФааWщ`ЕZЉЫœ!т нnGGG=ŽфЗ,==zНyyy(,,DQQŠŠŠ——‡єєtШхrљР`0чvf0І ћіэУ§зЧуЁППfГЯ<ѓ >|ЪeIG21A3ƒqЁСчѓiH‘T*…С`РŒ3hюВўў~ъЂВZ­pЛн4љКзы…ХbСБcЧhЧ5-- Z­:jЕPЋеHKKЃ9іX‡шќ%ЦUзС№№0 )$ю$n8!щ„“МWФqGТЖsrr•••J…BAsЅЄЄœ7џ3ІІ‡У№ћ§Щd‚бhЄщњћћaБXрp8Јы‹фЏ#ЯbБ2™ JЅШШШ€NЇ‹{OвHЅRОIюф5бСLТ\У€'Ъй6•О#_ІˆDВ„$м™8Хbёw_bю=ть#•}Щ}ЩfГбм›6› ƒƒƒємƒAšгаbБ ЅЅ‰2™ щщщдНWPPƒСW ŠќžM–Э`0Œ3ы=0гђ‹Х№Т /рх—_Ц+ЏМƒС0ю28pрЭ#ИqуFD"Ьš5kR.BcКТu’Юi^^JJJhЈЁЁ! RБ†$qwЛнŸЯЇе‰+$'Љ.ЈP( “Щ —Ыin'’У‰u€Ю-м|WФC:ШЄТ&Зт&q)‘yˆыŽTQ&IшIž*NNGI …‚І“ yКŒг%QИуŠB@nЗУУУАZ­0™LєO “ЩГйw?ѓћ§ˆD" …ЫхШЬЬЄљжИз0ЩЙFrВсŽмзѓвMІYЂ6еwЇ"™А5‘и•Xi—{.“ЙsЙѓs pŒŽŽЦ…ы’п)n>CттГлэДš№ШШl6x<$ фr9 yЮШШ@VVrrr››‹œœdgg###rЙbБ˜нП у,С„<cš0sцLМљц›иДiFFFАuыVдддLИЬЖmлpфШм~ћэNцт{эЕзPXXˆЌЌЌЏЃй Ц”…лq"Ё^JЅ9994п)T@ммNЧуЁГйLн+$/”\.Їе‰ИCТ–Ш •J‘ššJЗOвNЌЌШ8=ИЩъ‰ЛŽЖ ЉpчvЛсvЛiЎ*nђ~—ЫПпчД …JЅPЉTЩd4щМVЋ…VЋЅюLFCѓ*ВsЩ8S?іbБBЁ|>яњћћЉѓŽˆwУУУ47-7Ь2//VJ&aБФEЊVЋЁеjщuNЊ NV„žШ)˜lмљ$  7кщ,Ы=–ФйHr'І*сК‰I RЙИіИaКФЉчrЙаггƒііv№љ|zЫЪЪBnn.ЭуIђэ‘мБ$d:™€yКћЩ`0 &ф1гŠUЋVaеЊU“žЭš5gБ5 ЦљЭx ЎА—––ƒС€h4Š`0ЏзKsЂY,иl6fI’“PмССAX,Z­š„˜I$ъд#Џ$љ;I>N:Ьd ЙгHч;pѓK]%Ў#…[]’;ЇJbHвQхКыœN'FFFрt:i>АP(DЯЗ& …•ЫхДТlfff\Ј!qgВjЦWeмn7l6јˆыaxx8.wЩk4<< р?тЉ4HBu uёqМ’аL’‡ŠфžJЌъ8н ЁdмJ$1<ЩE\u\w uЙ\ЅЂ^8ІyC“ЮsЋmЇъєz=єz=4 ЄR) )МP„TЦЙ%ТыѕТl6ушбЃ8zє(бкк ‹ХBCНЙзВFЃA^^ЪЪЪP^^Žттb”––BЇгб|žфOѓщ>ŸПs‰P(Єiєz=ъъъ‰DрrЙ`Гйаее…ЖЖ6ДЖЖтФ‰шээ…УсРшш(Э#Лoп>Шd2hЕZЁООsчЮEuu5rss!—Ыу\Шч{и4ƒС`|0!С`0Œ3 qУ ъxащt(++C €пяЇЩCФЭЕцrЙрvЛi˜Љ щїћin+ЎŒ ЄЪ#qзˆХbЄІІвнддT*@qч!"IŽ;psѕq;ђ‰n?юkт{`l5ЦdЮЙDхBЁPм@\qDx#"(Љ(LŽЏпяЇТqп‘e‰++ў‘э‡ЄX,Іaа\g$ЩF“ЄŠ6з%™˜ИŸСHфЋ†^’х"‘ьv;КЛЛбвв‚ІІ&?~§§§p8№x<№ћ§…BH$ШЮЮ†С` IЫЪЪhnГєєtzп Nпdпя3)КœЏ"лщ†Of]gђX|™Афё*“?”ˆk3??ѓцЭƒЫхЂ•ЛЛЛбйй‰ЮЮNєєє`xx~П§§§Bss3>њш#*WUUЁЊЊ EEEPЉT‹Хglп cКУ„<ƒС`0ЮЄѓCu2™ РЩŽ7ЩQ4:: ПпO_‰{Œ›”мэvга\юМDШ"4юv‰HBv+D’iмщмъ‘‰ѓ$:њ’…№ž*/WЈ#Ў nЈ+ї=й'ЎаЦ­ЬHмv‰.М`0'ў‘urЋr“c# уФM‰DBЋjrsr]Ž2™,n~"кMG—#cjLф ƒДЪlww7Ž=ŠііvF˜Эf СчѓA(BЅRЁААЙЙЙ(((@aa! ВВВ бhЈ{”\ЫЩТЩk2QяыfВлžl!3Й/гЕJ+ѓHоНддTЄЇЇCЏз# ЁВВ’VwЗX,шыыƒбhDOOz{{a6›aЗлi˜їёуЧБgЯфццR'hii)ђѓѓЁбhтђщ1g%ƒС`Œ… y ƒС`|Э1ŒDрB„)"ђqЋЄ’Њƒф3qк{ФqЦН|>Лˆ€Фѕ'Ъ‘Жr†мзёDМd!xЩw\!/Y;2w~Ў›Рн>qЅЄЄа\td‰D4š8I2ъH‘"к‘b#DЌc;Ц™bPVV†ЬЬLШхrZ—[И#Б- ƒqЁРžX ƒС8р†ъ@ZZ€БˆРuч‘ИїCtЙљфBЁuї‘+ rsЬqнuЄШ‡Эfƒпя‡H$‚RЉ„Z­яју†ъrCxI˜/7пЩуGђж‘Wn˜ЋX,#ю‘\uхѓc0Іфњ ƒшыыУО}ћ№щЇŸbїџЧо{ЧGUхџџЯ™L2Щ$“о ! Bяmбu]QБ ВВЋ~ж~u?lљИыюЧŽЎЌт** иш!!д@BHBzя™ЩLf~фwяЮL& Jё<ћШф–sЯ=чЖѓКя’žNII :“Щ„RЉDЋе2tшPFŒСЈQЃ6lсссИККvKДrЋК~оhTVVВeЫvэк…VЋ%11‘йГgуыы{ЫЕ}Oй‡Ѕџ $ €јјxцЭ›GII ЇOŸц№сУ8p€ќќ|ъыы)--ЅЌЌŒаЏ_?†Ю„ ˜8q"ссснФh@ јЙ"„<@ nь TR<#РЎ•ЅkЋ­ЛЋ­лЋх:–“TЖєл`0PSSУњѕыЙxё"ооо$%%1eЪЋКJжx–Тžєл2ŸЅU^Oыіфо+•/мL˜L&ШЫЫcџў§>|˜ГgЯR^^Nss3ƒOOO"""6l#FŒ`шаЁухх%'^Б=їэЙЄ_)7КhYП+ЉЃd=|Йэ.gХ'-—ю[вЧЫ{•eYЖI€nz:мнн8p ССС$%%1ў|Юœ9УБcЧШЩЩсмЙs455QXXHuu5GeгІM$''3vьX†ŠŸŸŸlх}ЃŸ“@№c „<@ є)~ооќщюХїb IDATзЛ‚ [Ћ ;Ы;M&š››1T+•ьоКћЛнтК НФ`ь–сWгg\я*маи ƒЊЊ*rssЩЮЮцШ‘#фццRZZJss3*•Šрр`† B\\111 8ааPМННqvvFЉTZЙ‘ў]u:•••фццb6›бjЕ„„„рыыKyy9•••В;ВПП?ЁЁЁ8;;џqС5›Э444PWWG}}=­­­шѕzЬf3*• 777|||РееUnл––rss9tшеееFjjjHMM%77…B››ƒЦЫЫЫЎKџЭиWНЩZn6›Q*•ВЕ——ўўўDDD0|јp 8}њ4ЇNтмЙs”””PPP@EE………;vŒ#F˜˜Hll,ОООrмСŸуЙ.~О!O }Ъъў“еџќч%зЙ•,lљЙ&t:,[ЖŒ#GŽ0`РюПџ~žyц™ы]ЕKbяœМкў"‚žАwžuttааа@~~>GхаЁCdggsсТŒF#Z­–ЈЈ("##‰‰‰aФˆDGG"‹H=Й7іѕ9x#гіЎ3…BAKK 'Nœ`Эš5˜Эf‚‚‚ˆ‹‹#$$„ЌЌ,ŠŠŠащtИККвП’““ILLФУУCBM&‡&;;›ттbбыѕ˜L&ё№№ 44”шшhFŽI`` jЕšКК:ЖnнJFF/^Фl6Ыюбыж­“ћ+$$„ћяП­VkћэfЃ7Я;{ё -ћNŠ_ЬаЁCIJJтьйГффф““УйГg)))!??ŸттbN:ХёуЧ3f #FŒ 22дjѕ%ї)ЗBШ ЙUЗК@йS№іkA &–и^CR6щђђrŽ=Ъж­[9x№ %%%tvvЂбh %66–ффdЦŒУаЁCqwwЗr+МZwв[•ііvђѓѓљц›o $''WWWВВВhmmХh4ЂT*ёѕѕхиБc<ѓЬ3ФХХЁеjха;wюdлЖm”••ЩБ7M&“'T­VСУ?ЬŒ3 ЃЙЙ™ЬЬL233ijjК,ђjkkIMMКњi№рСЬœ9“!C†\ЏfњIшщ^jOxV*•ИЙЙсццFDDcЧŽ%//ƒ’––Ц‰'ЈЌЌфТ… \ИpєєtЦЧєщгIJJ"<<777R ќ,Bž@ @№S__OVV[Жlaыж­rZ•J…ПП?ЃFтПјЃG&,, 9Цк­.Ќ_ ЖБюЊЊЊЈЉЉAЅRЁбh№№№ГyWUUБcЧFމПП?Z­шj_ƒС€——!!!DFFтээбhЄАА'NŸŸOvv6kзЎ% ???ёёёСЫЫKN"ЄP(prrТУУCvЃ•\ЁEпYcy^{xx˜˜HLL ѓцЭ#==;w’žžЮ… (++cуЦіюнЫž={ШЫЫЃЃЃƒSЇNQSSCDDаeЖ`СІOŸ.[‰Iyеее|џ§ї|љх—”””——G~~>‰‰‰Г|љr’’’јју9zє(... <˜eЫ–ˆRЉФее•СƒЫБљ,ыzЅЧx=Й\§ЎeЙeжлрр`fЮœILL “&MbпО}ЄЇЇS\\Lyy9;vь ??ŸДД4цЯŸOll,^^^"vž@ ИeBž@ ‚Ыb; КТB№sХR”Жклл)--хрСƒьмЙ“ЌЌ,Š‹‹12|јpRRR9r$ФЯЯOЖр‚ФеуццЦ№сУYДhIIIВ…\yy9љљљ˜L&*++iiiўcбчссAuu5yyy466вжж†бhDЏз“——G{{; джжвккJpp0111ДЕЕсээBЁ@ЅRсххХЈQЃ0`€œaлRœ§йEO!T*>>>hЕZќ§§8p #GŽdџў§dggSZZЪБcЧЈЈЈ ДД”Щ“'“œœЬ AƒPЋеVЩ6D[ ‚[!ф @ шіY}1(ъi№&\‚›[1ЛООžГgЯ’––ЦіэлЩЩЩЁ­­  ФшбЃ™0aёёёЪ ,зУесххELL ЃGЦзз€ˆˆ‚‚‚dДННЃб(ЛдVTTžžNFFyyyдееббб!—ЉзыeсЏЃЃN‡бhФСС\\\ЌВб:88 бhpuuЕы BЌћїЫ8NNNсччGtt4QQQЄЅЅ‘‘‘СщгЇ)**ЂІІ†ввRЪЪژ:u*qqqИЙЙYЕћЯБmС­…ђ@ \i0% ‚ь+яэрШV”ВDђ`K ИБcЬf3 deeБiг&ЖnнЪ… pqq!$$„ЄЄ$fЭšХдЉSёїї—Х!6єnnnјјјрсс!ЗЋЃЃЃ•Xj)577Гџ~>ќ№CЮ;‡йl–cхIqэъъъ0 tttиЕ@ЖМ_ZЮГФ^џŠ>яŽНчdЁ7uъTЂЃЃ6l[Зn%55•ЊЊ*9kpQQїмsУ† Улллъњ’Ъ‚›!ф @ И,&“ NG{{;nnnЈеъ>+лh4Ъ1"ћІр–AЇгБcЧжЎ]KFF(•J†ЪwоЩьйГœИИ8T*EEETWWSWWзcYЈT*”J%FЃ‘ккZђђђprrТее'''мммD?лpЅЩ1Єg‰““aaa,\Иў§ћѓэЗпВgЯŠŠŠ8uъяМѓЬ™3‡шшhсf+nz„'рВ(•Jдj5JЅ’ДД4іьйC||<#GŽ$** ___йJO\й@wvvвииHQQ999>|˜ђђr;vьO}XAŸ`щЊзббСйГgйО};_~љ%gЯžХl6ЭфЩ“™;w.qqqxyyсшш(МŸоДЏZ­&00PvУЌЊЊ"33FCgg'чЮ#33“жжжnлJ}ЉбhаjЕЈеjєz=ХХХ|№СтччGll,ЗнvJЅRєљ%ш­ ЌBЁћmмИqИЙЙРŽ;8~ќ8ЇNТl6гккЪ‚ ˆЧССAо‡ш@pГ!„<@ —EЉTтььЬ!CиЙs' ''‡уЧ“””ФАaУˆˆˆРЭЭ јыš4@ъььЄЁЁ‹/rњєiŽ9ТЁC‡ШЫЫ#**Š€€+З'1АмŒ ђђђиЖm6l ;;FC\\3gЮdюмЙФЧЧЃRЉЌ\iэяBрЛ:zŠYgћПхЧЫхZ­–ффdВВВшшш ММœmлЖ‘ŸŸ/[кЕДД бhhhhА*OТлл›ˆˆ‚ƒƒ)(( ЖЖ–элЗушшHpp0ЭЭЭ,XА@ФэlЏ#///FЇЇ'ЈT*Юœ9УЩ“'1 ˜L&\\\0`ЮЮЮ€ѓСЭ‡ђ@ є …BAtt4‰‰‰œ>}šcЧŽ‘››Kzz:ЃG&%%…aУ†ЁP(0@—€звв"[рэлЗ››Kss3†„„бjЕзљ‚+У6™$њH"ž““111,^̘9sцiw[Aп!eŽ•2дzyyЩ‚х:ЎЎЎјњњЂT*ё№№“_xxx0eЪ аh4вввBNNОООܘ1дj5ƒшJЈ!Yxјјј0fЬЪЪЪ0›Э477ЫbŸƒƒCЗLнBDВOoлХ6У­‹‹ qqqјњњтххХš5k8}њ4gЮœЁННЕZЭтХ‹ ЎэрІDy@ zЋЋ+IIIœ8q‚гЇOЃзы)**ЂДД”§ћї3dШbccЉЎЎЦh4вддDVVхххЄЅЅqётEклл1™L( """HJJbрРзћа‚ЋFŠљИiг&ОќђKŽ;†““ƒ тЩ'ŸdвЄI]яjў,puu%..ŽGyшŠqg%Юx{{3~ќxYМ Ѕ_П~rFлрр`–-[Ц„ ШЭЭЅІІFeуттhjj",,Œ1cЦœœŒЗЗЗUVе‰'ЦЄI“(,,”­Смнн‰ŽŽ–-Щ„hєу T* тž{юA­Vѓс‡rша! љзПў…sчЮ%,,ьzWU Ў!ф @ И,–ж ƒ bдЈQ:tHŽ=d0ЈЊЊЂЙЙ™гЇOгаа€С` ККšЬЬLT*MMMшѕzy№ЊVЋ™0aC‡жx‚Kз={–tЄЇЇГqуFђђђpvv&66–G}”‰'тчч' 6Wje$ш[зdГйŒ››qqqВ@ЃRЉфФвњоооŒ7ŽјјxœœœpwwЗъ#///:t(ƒЅR‰FЃСХХ???ќ§§щшшКмq5Uн\\\8p СССшt:йZLЅRстт"ту§XЖЇ”­иХХ…3f`4qvvfяоНTTT№щЇŸтъъЪЬ™3 шf]k[ž@ мH!O СeБаxzzKRRчЮУh4ЪbžС` ЉЉI^WЏзЃзыЛ•чффDП~§HII!44a"Иaщ)†BЁ ­­3gЮ№љчŸsъд):::6l .dкДiјћћЫ‰?>hЕZЛ$Цбб///МММьЎ# nюююИЛЛл-УVИГ\ШТŸНѕ? …???&OžŒ^ЏЇЕЕ•ŒŒ Nœ8СЖmл№ііfкДirВ&i!ь ‚aU AЏ‘И `ьиБ_•Hсююޘ1c6lžžž"^˜рІС6ОYII ћіэу‡~ ЁЁАА0&OžЬœ9sК]Bш[,ъићџrыїХ>э-“&л$=eѓќИ( љКœ?>§њѕCЏз“™™Ijj*………нњT\ЋрFFy@ z…хдзз—#F0jд(\]]ЏЈ)еЌYГ ’уT‰“рfArлkkkујёуьиБƒЪЪJ\\\HIIaіьй 2Єл6‚ŸОћЎGй‚юXЖЕƒƒЬž=›щгЇуххEii) ==]N\нбˆ~7BШ@pХ899ЪмЙsёѕѕЕЪиx9МММˆ‹‹cќјёW, 7EEEdff’BЁ &&†YГf‘ ўС „dMЮ§їпЯ!Cpvv&??Ÿ]ЛvQVVf%ц СŒђ@ \Z­–ффdьЦšВ‡RЉ$22’‰'тяяE @pН‘\#Ѕ˜йййdggгооŽVЋeжЌYФФФ\6~šрЧЧВЏЎWљТ’ыњcл†ЁC‡2}њtТТТhllфєщгЄЅЅбккzk*НGy@ z…э€ШЩЩ‰&L˜@XXXЏD9† FRRŽŽŽb+ИЉА<_ЋЋЋ9qт8991dШ9nЄЈЏW*м]‰и'тлнмHзЎRЉФнн””й*ЏВВ’Н{їRSSCggЇx. ‚!ф @ И"ЄAŽBЁРХХ…ффd†Ї‡ЧeЗ4h‰‰‰ 0рЇЈЊ@ачHI ŠŠŠШЫЫЃІІ­VЫшбЃ8p ЎЎЎB№ЙАL:qЉu.‡$р]*‚шя› ЅRItt4БББаввBvv6ЅЅЅшtКы]=@ И,BШрgJ_X˜( Lbb"ссс—k4FŒABB‚Ul<с~&И™0›Э˜L&ђђђ(--EЏзуээЭиБcёєєDЉьzНюtГbiЩжг=Фv{ыѕЕ•леДwOf{Z~ZыМлEјч„eџy{{MП~§шшш ИȘТТBš››Џs-рђ!я:c4ЉЏЏПцrъыыщьььƒ]šццfєz§ОŸNGKKЫѕЎ†@ \7,ЫЎЎЎ$%%‘€““SыGDDШVKСЭLgg'љљљ444рььLpp01118;;п’Т@pЋЁT*щпП?ссс466RTT$ояСMъzW ЗдееqїнwїИ|хЪ•$''А`СкллэЎїТ /0iвЄЃŠНцƒ>рХ_ЄЉЉ‰ЖЖ64ЭWеыѕDEEбииHcc#чЯŸ'""ЂЯы{з]wёУ?ааа€Щdbѕъе<ќ№У}ОŸ7оxƒПќх/466ЂзыЙћюЛYЗnнѕЎ–@ \7$+€Aƒ1jд(:ФЉSЇК­ЇVЋIII!::77ЗыQ] O]TVVвккŠFЃ! +k|˜ВВ2† Т!Cz\WЇгqъд)JJJ№іі&""‚K–_VVFvv6jЕšјјxќќќЎКЎЖ :DUUQQQФФФX-okkcЭš5ќуџИІ§˜L&:DEE‘‘‘НvnmmхРtttœœŒЗЗї5е#//SЇNHRRRЏЎЋццf8@@@ н–;vŒТТBљšЛQ-nуттјілo™?>_|ёХuOВs=ˆрХѕ_к]&ОvпZXZpHI>ќ№CNœ8App0ГfЭbњєщВхŠєЌƒЅ[Ÿ{ТТЏwњЅR‰Z­ЦллЕZNЇЃЎЎŽІІ&йBЋ/Q(TWWГџ~>њшЃзsttDЋетяяOTTЃG&""­VлmнЖЖ6ŠŠŠјс‡ШШШ ААКК:t:&“ ЅR‰‹‹ ОООDFF2vьX&OžLHHjЕкъоддФ‘#GиО};™™™ддд гщшьь”­з\\\аjЕ 4ˆЉSЇrп}ї‘ŸŸЯчŸЮБcЧЎј™ T*Й§іл™>}:fГ™їпŸмммnЩю$QЬее???ШиБc‰ˆˆшіО+еСh4R__Яž={HOOчЬ™3TVVввв"‹[NNNxxxТиБc™8q"C† БjыŠŠ ЖoпЮцЭ›хЖXА`3fЬ џўVћ>qт6lрєщг˜ЭfBCC™3gгІM#//UЋVQ^^ne™w9ЗYЩŠюЁ‡"99™ттbжЏ_ЯЩ“' aжЌY,XА•ЊkHИgЯvюмIAA\Ntt43fЬ`ђфЩVфЩ“'йИq#Ч ((ˆйГgѓ‹_ќТъP(шt:JKKйГg‡&//ššZ[[хcrpp@­VЃеj  11‘ЉSЇ2fܘ>НІ,­[ZZЈЏЏЇЕЕ…BЎЎЎтй$nx~жB^zz:O<ё:Ž˜˜***ШШШ <<œ?ў˜””yнE‹qђфIhhh   €'žx‚ЏОњJ^'99™oП§Ж›№c4yъЉЇxџ§ї­ОLўѕЏэБnЏПў:+WЎdьиБ455qіьYІM›ЦКuыфи Жшѕzzш!жЌY#?ЄbbbиМysЗ†ццfќqvяоM||<ŽŽŽЄЅЅЁгщxійgYЙrхebїо{/{іьЁЂЂBžчыыЫЉSЇ№її ГГ“_|‘з_qуЦЁP(иЗo<ђЏНіšќтаџћПџЫчŸ.ЗћћяПЯЊUЋ8~ќ8&“‰ццf-ZФG}„‹‹‹еЖЏОњ*ЏПў:§ћї'00cЧŽQPPРьйГYЛvm7‘Jj“uыж‘’’‚Z­fџў§ќз§џяџ§Пыјц›oђЮ;яpюм9yžFЃaэкЕм~ћэђМ/Пќ’хЫ—уччGDDћіэ#>>žЯ>ћLŽCИ`СŽ=*ПдŒ=Z~yyљх—{ы155•‡~•JE||<{їю%22’?ўXšЫќ„ IDATNXВcЧžўyЙ]{ь1FЭ’%KЈЏЏРХХ…Зп~ЛWqоvяоЭГЯ>+—їаCa0јч?џ‰VЋЅККšaУ†ёеW_ЩuјћпџЮ'Ÿ|BCCќэo#!!;яМ“ЖЖ6jkkyяНїxєбGЎЦx€ŠŠ ЦЧ‘#Gpttфу?fдЈQr_<§єгђљяттТєщгљшЃ?~<ЙЙɘL&T*јУшзЏO<ёЭЭЭђњЩЩЩьоН›ДД4/^LйџoIтччЧоН{Џ(aNRRыж­уюЛяfѓцЭr=‚ыфеййiх%Хћ’мŒF#ђ_ЫЩd2a2™Ќ~[–#эGЏзc0pppРh4RUUХў§ћ­<ЩmJš,]№ьM*•Ъj’\є,ЗЕ,W Ф? …•JEhh(Z­–њњzЪЫЫ)++УЫЫK~ЗщKw[NGqq1ћіэыqœœœpssУзз—ььlцЭ›ЧшбЃёѓѓ“EЈ––ВГГйВe ЛvэттХ‹rІNщК’ю………фххqцЬJJJ˜;w.111ђ;—бhфШ‘#lиА;vPVVFGG‡•{ЄtЯ0›Э444 t}ф=~ќ8ћіэЛb!OЁPЧИqу0›Э?~œУ‡[YПйЖ‹єў}тФ nЛэ6’’’фwAiџzНžЂЂ"ЖlйТŽ;8{іЌlЅ(н{L&“ьš——ЧљѓчЙpсГgЯ&%% K,ЭЯЯgяоНђ§1&&†жжжnuЌ­­%;;›ƒb6›‰ŠŠ">>ЃбH]]™™™^q;ЉT*fЮœ‰^ЏЇЖЖ–cЧŽqрР Ы{ 66жЊЬввRŽ9Т‰'фy.\@Ѓб0dШњѕы'Џ_WWGNNiiiDDD+Ч”ЈЏЏчфЩ“|ћэЗђq444ШЯ•Jee!кй鉋‹ ЕЕЕ2jдЈЭ*ЏВВ’ђђrЙƒ‚‚ЌЌYрFхІђjjjј§япуђC‡ѕИЌ  €™3g2lи0Ž;&Яџт‹/XМx1‹-ЂЌЌLО‘ПќђЫ8p€GyшЪ`ЯХ‹ЉЎЎцс‡&##ƒ+VАvэZЋ}­XБ‚їо{™3gђљчŸущщЩ{яНЧ<`ЗnЇNтХ_фјёуDDD]"Цќљѓ/йЫ—/Їџўœ?žЖЖ6žxт іюнЫвЅKљўћя­ж]ДhлЗoчмЙs 4шjЯ„„ўєЇ?1nм8fЭšuЩ§}ійgdee1jд(ЦЧпўіЗn–†?ў8ЋWЏц§їпgщвЅVmмййЩЊUЋ.Й{яН—1cЦpлmЗбммЬѓЯ?ЯвЅKйГg<№Р|ўљч8::ZЕћлoПЭsЯ=ЧkЏНЦгO? t‰ŠїмsызЏчх—_ц­Зо’з7Ь›7}ћіёџїЌXБГйܘ1cxщЅ—;v,SЇNэБн}єQњїяƒƒЏОњ*wмqNNNђ:_|ёїмs‹-тГЯ>CЉTrсТ†ЮЬ™3ЩЪЪB­VГkз. ЫѕЂЕЕ•ƒ^вта–ŒŒ fЭšХ˜1cиЙs'NNNTWW“РФ‰9zє(ўўўŒ9’UЋVёєгOsсТ8Рwп}Ч† :t(Ÿ~њ)Я>ћ,=іуЧ'**ъ’ћ>|8ЋV­тwПћ.\`У† 6ŒЪЪJмннYЕjO>љ$3gЮ$''WWW-ZDrr2<№455ёы_џš7ВtщRjkkйО};>њ(………Lš4 oooN:…‡‡эээŒ?ž)SІ‘‘All,Ы—/gмИqL›6††ІL™ТЗп~ t]W&L ЂЂ‚mлЖЩ‚т”)S6luuuМєвKђ=%%%…ввRFŽ)ї­Xм&OžЬ'Ÿ|ТќљѓйО}Л]+CрjАуЬfГUм!щЏe<")~•єПэ|лeвіЖ‚ž=!Я6Ž—dнS[[+ эХe’Ф8iВя­„;irrrТЩЩIў--—цKЫ,?Ыээ €С• RЉˆŒŒФлл›ѓчЯSQQСЉSЇˆŒŒьц‚xЕX ’рn)yxxряя/gмlkkЃООž‹/RXXHqq1fГ777Ц‡JЅЂГГ“ГgЯВuыV6nмШљѓчqpp 00ў§ћ‚FЃЁЙЙ™‹/Ъю•••466Ъ.Ÿббб( 9pрЉЉЉВWpp0QQQуффDGG TWWуьь,[в;;;$ПыJTWWSWW'Лlj4КYњјјршшˆNЇЃНН––Z[[qttФУУƒ   ЬfГluU\\Lqq1%%%ИЛЛ€———U{———ГgЯжЎ]ЫйГgбыѕxzz2hа """d—рŠŠ .\И@II 'OžЄООžŽŽмнн7nђG KЋ3Н^/џЖа:;;хc€.‰ŽŽ ЮЮЮ„……Yy ˜ЭfЪЪЪhjjТ`0 T*бh4ВХЄ„ƒƒžžžrпЗЗЗЫчP[[Vmj0dїZ‰ .pфШFEHHˆ\{хY&ђS(ДЗЗsњєiОњъ+6lи@ee%а•@.44”ааPмннQЉTђyRYYIUUMMM444єЙП$ .\И@qq1а•y=<<мЎЋ@ мhмдBžС`А2§ЖEВВБЧСƒeЁЄЎЎNў"wчwЂRЉЈЈЈ ВВ’РР@ ы Z@@€,фѕызW_}€ааPоxу RRRиИq#kжЌ‘MЯsssyчwP*•|№Сђ Уу?ЮЎ]ЛЌ,њ$ввваh4„‡џЧ%66–5kжє(&Aз бъеЋхџWЏ^MTTЛwяІККкЪR№‡~`ыж­В•—ЏЏЏlН”““sY!ЏИȘ{юЙ‡G}”wоyЇлзВН{їВzѕjЬУ?,ЯПћюЛyщЅ—xяНїxъЉЇ.iсNxx8ЁЁЁœ>}///ўћПџшz9yяНїјц›oјєгOyъЉЇ=z4аe!&Ÿ$ф988Аhб"жЏ_ONNŽе~>њш#іэлGtt4+VЌрєщгВœ““гcлwttpяНїЦцЭ›ekD‰–––-[Р+ЏМ"П 0€_§ъWМ§ілЌ^Нš'Ÿ|ВЧvш fГ™Ч{ Н^ЯŠ+d!бЯЯ%K–№ч?џ™^xеЋWуууƒ#FŒррСƒdffrцЬ Ря~ї;6oоLjj*7nфљчŸПфОННН3f ‰‰‰8p€ввR233eЗ•eЫ–Бnн:вввxѓЭ7yўљчщзЏ§њѕ#::šќќ|VЏ^Эc=ЦЈQЃ˜6mEEErЂˆпўіЗджжђќѓЯЫ_К]\\xъЉЇXВd O>љ$ЉЉЉ$&&ВqуFfЮœЩ–-[XГf K–,с‹/ОрьйГdddX BBBxюЙчј§яЯ_|aѕq ЃЃƒ‚‚Ољц›Ћё$fܘьUЋ˜3g{іьa№рСW]–рчƒЅ(fk '`зыѕV"\KK ---ђ@Ќ­­ЖЖ6y +Mr\ ƒСаM˜“&iџ—Ъ8hOГœЇзыillД;ГgћOжv–‚ŸZ­–3†:;;утт"џ•b;IнммpssУХХХJє“‚љKŸє[:–е…_p}Ю )>š““uuuddd’’‚ЛЛЛOЮ6VлЕьгіџˆˆfܘAhh(&“‰ŠŠ ВГГЩЪЪЂІІ†ЊЊ*вввˆŒŒ$>>OOOš››йЛw/лЗoчќљѓ@зћп”)S˜5kУ† УннКК:ВВВиЖmЉЉЉдее‘››Ыж­[ $<<FCUUgЮœстХ‹@з5›œœЬwоЩ№сУqqqAЇгQQQA~~>ЕЕЕrx•   цЮK||<№§нЛw“‘‘AUUЬž=[%Єc*//Зrйwuu%66–… b2™(**таЁC9rNGUUGeфШ‘ФЧЧЫзw{{;'Nœр›oО‘?ђ{zz2bФцЯŸЯјёуёђђBЇг‘››ЫюнЛљњыЏЉЊЊЂЄЄ„ддT|}}‰ХУУУnb‹оžвzŽŽŽ„……qяНїЪё%ЫъЏПўšуЧS__““СССм}їнјњњЪЧ$Y.JqыzsџЖEЏз“››ЫО}ћ7nv-ф,W*ЗЌЌŒддTОўњkJKKQ(‘””Фєщг>|8ООО8::вооNUUљљљ>|˜ЦЦF+ЁЕЏЉЏЏ'77—ттbдj5ссс 0РnŒ?@ ИбИЉ…М   Оќв~ќ%€ЅK—ђЏ§ЫюВ)SІ0aТќ§§eaКФщЦRШы‡н§їпoUžƒLЇгбмм, ƒызЏЧl6п-6лmЗнfWШSЋеTWW3kж,–.]ЪŒ3№єєdвЄIќёьёxmы4hа œбщtдддX y+VЌ`чЮL˜0СjOOOљ‹YOœ?žЉSЇ2cЦ о}ї]Л/|№ГfЭъЖ|рРœ;wŽѕызѓвK/]r_№ŸЖ_Дh‘е|www&L˜РŽ;јќѓЯe!яСфќљѓVЎ­€ќB НJ|ќёЧ,\ИаЊŽ .ЄЊЊŠЛюКЫnНt:wмq%%%ЄЅЅй/јеW_QWWЧаЁCЛЙ88шrЛНV!яшбЃrœ’)SІX-›:u*ўѓŸљєгOyы­ЗdkЉ]'L˜ ‹xБББЄІІvkЋK!•7iв$Ќ–Э›7ДД4>ћь3+aPкцќљѓмwп}@—лэпџўw ЫuуЛяОыёИ K4ЮЯЯ—лsЪ”)ќѕЏхwПћЫ–-Уh4ђћпџžЭ›7wћђ№Ш#№Ч?ў‘cЧŽ‘––&ЛећэЗ„„„tЛNЎ†… вддФЬ™3йЛwЏ•P/и"ЙnI]ss3444P__OSS“l­аддDss3ЭЭЭrfEKk:лЬ’ЖиЮ“ЎI)žЃЃc71ЭrАfkбv) 7KQаžŸЅuŸ=ГЗ{-]x%7HKk>мннхЩУУwwwМММ№№№џЗќ~Ь€ы‚›“0hа >Lee%ћїяgсТ…јњњў(ё†-‘„ФE‹YНƒюлЗ>ј€ЏПўшRђѓѓЉЎЎЦгг“ѓчЯ“‘‘A^^аuO›6‡zˆЄЄ$йš+44”Aƒ@GG›7oКЌл3333f ббб466R__/ЧІspp`ܘ1$%%YНѓDFF’œœLGG‡/.((ˆyѓцYн KPЫЭЭЅЊЊJ^oўќљL:еЎ(Vf“LEЋеЯc=tЙ­Jж`љљљ@зЛE]]е=ЅММœЌЌ,>,ЯKHHрОћюcсТ…rb шъћb4йАaЕЕЕ”––Вџ~цЯŸO||ќ5[’™ЭfT*!!!ђ‡MiОбh$//‚‚YШ х—Пќ% шvOОVЪЫЫЩШШрјёуŒ5Jn {юу–Svv6ћїя—…^fЭšХ}їнGrrВќ|‘ˆŠŠbьиБЬ›7’’’5йХщгЇ9~ќ8хххxzz2rфHBCCхТR[ мШмдBоЕРоН{8rфп}ї‡цшбЃrŒАK=€%С@Тв л2аЎ$ЌиДлцЬ™ƒЛvэbзЎ](•Jbbb˜>}Кl]ж›:Iѕ’,1,yх•Wxх•WЈЌЌф§їпgпО}dgg[Хyы‰ГgЯђ‡?ќввRВВВфьfЖdffmeхдммLzz:€pЗЗиŠM€,Jm 0ў|цЯŸO{{;п}ї;vьршбЃrЬлО=zє(aaaђ<ЕZЭЦ{ЌKkk+ѓцЭcїюнИЙЙQ^^nїХ§рСƒ@зq[Жƒбh”_Œ-c‘\-йййr@iK$Q­НН3gЮ0|јpЋх=;€œЩыJА,9&ЮщгЇ1нт#J1|lЩЩЩ‘уBкZ;Ш.GЕ:ŽпўіЗdeeёљчŸѓШ#№СœœlЗО^^^<№РМѓЮ;Мѕж[ВїЯўSŽбз<№Р4551cЦ іэлзMьќМ\{єz=mmm477ЫТœЅhзии([еI“$вйЦГdK:ЅR‰JЅВrSUЋен&IЈ’ВpкКАZЦЅГŒUgiС&M№ёL:Fiž­hgЏЯж…зв%X4%`Kw`Н^o5I–†–Бў$—DЩMMrч­ЌЌьOjggg4 Z­OOOy’„?///\]]х6Л\МWС­ƒхћƒЛЛ; deeqётEŠ‹‹йЕkAAAФФФX%#ИQ З™\ЅѓOЃбаЏ_?Ћp:ŽЖЖ6єz=fГ™гЇOSRR"g_ѕѕѕeђфЩDFFЪяrRН‰ŽŽfтФ‰ЄЅЅбммLkk+EEEфчч3tшPй‚UЉTЪзяоН{ё№№`дЈQЂеjqvv–яЖmbyЯш)ДЅEЎ%іВдJH#<==х$в5oЙ]qq1љљљ455]яAЃFbј№сh4ЋЖqtt$88˜Йsч’™™IKK TVVrєшQ|й>ЗНO^ъИmБš,яЏікщjEEgggшььЄИИ˜Э›73`Рљƒ№ЅЪmjj"77WŽэЇP(ˆŽŽfвЄIФХХЩž#–э ЯоооrЌ:ЅRйуЇ+A*ЃГГ“ццfОџў{YаfЪ”)xxxtsaО–} СХЯњЭsѓцЭМ№Т джжђы_џšчž{Ž„„"##ЉЋЋЛфЖН§в*ХАgІmCЭ’€€8РЪ•+йКu+ѕѕѕœ8q‚'N№с‡’™™iз5яJОў–””№мsЯёѕз_sћэЗsлmЗБrхJоzы-^§ѕKnћкkЏёъЋЏђїПџььlž{ю9оxуnыI‚ЈЏЏo7бRrЃАЮzƒНИв ЌKК\"џђ—П№ц›o2tшPюНї^–.]JEEГgЯЖкОГГSюЇ+‰kГyѓf~§ы_3oо<6oоЬтХ‹ЩЬЬь&jJэръък­~ћлп}ѓrажж`здržН ЫіЮkЉ“Н~’ОЈJƒjлЏ­И(a)Bл›4€–bКиђъЋЏВ~§zŒF#[ЖlЙdтŽхЫ—ѓюЛяђѕз_SRRB{{;™™™lиАЁчН –/_NMM 3fЬ 55ѕGuмXZзЕДДШжs’p'Хˆlnn–c|8#FŒ@ЃбСN мќl…Мџћп,YВ„ффd8`ѕ•Ў7HННЩKFі„СђђrЛлЌYГ†СƒГvэZ:;;9qтЛvэтƒ> 77—5kж№Ъ+Џ\u***5jѕѕѕьнЛWvGk1Ќ'^~љeVЌXA\\3gЮф­ЗоbъдЉ,XАРj=///jjjжжж]–ђ‰‰‰фххqфШZ[[ЉЈЈ ККšььlДZ-ОООrŒФФDFŽЩ AƒфkсJ?XЖ‰Нmлккф№-fГ™’’ўјcN:…ЩdВL$їR[іьйУ–-[;v,$$$Р“O>IlllЗX WЪ{яНGEEsчЮЕё +3pЩ‡ГЄxкДiЌXБ‚ќу<јрƒ;vLvŸ?~ЪэЗпЮІM›њ,ЫЁрЇУRИ“,СZ[[iiiЁІІFЮМ'§ЎЋЋГВА“D4ЩнLВт’DI$’,О$aHŽ4•kЇTЮЯ‰Ћ9^ЉЯ$ї]KзfiВuonjj’Х>Љџt:­­­”••a2™d -FƒЛЛ;~~~ряяПП?ОООrZК1 aяцЦее•ИИ8ІOŸNNNеееьлЗ???BBBˆŽŽўQ’Ѕ˜ЭfЮŸ?ЯњѕыёѓѓУd2QYYЩЙsчф8pŽŽŽDFF2dШ|||ф – $СПЇ:J–ПNNNђy*џаeб?iв$š››1 фххЩnюRFгђђrNœ8AZZ™™™ЬŸ?Ÿ|???љ}Ї/ill$##ƒ“'Ob6›х …‚рр`9о^xxИе;Ždй+!Y7лЦq“P(ВДЅзфЦмНqЉНZњђ^"нг† FXXййй”––’ššJBB‚ыА'$KtЃб(—Їеj­\jЭf3555lпОSЇNuk“!C†0uъдK&Цы лВŒF#EEEьоН›­[ЗвииHXXЩЩЩЄЄЄи ‘ \kСЪM)фIйЫ™­KыY>”%ЄЏ>–VqVТOII‰е€п2n‡­аегВХ‹ѓт‹/R\\ЬЦхЄ eeer‚Н^пЭ‚ъЋЏОbѓцЭЬ›7Ož'YbФЦЦкнЗ=ёЭо2)›oyyЙ•иВcЧОџў{љи{*ЫђXџќч?Г{їnŽ;Ц]wнХюнЛх8"O?§4kзЎeџў§lкД‰љѓчЫл•””№рƒђяџЛл~.ХКuыјЏџњ/"##иАaЅЅЅV€ЅОэььЄЊЊJŽЁW^^Ю?ўёJKK­„ехЫ—Гiг&8Р'Ÿ|ТЏ~ѕ+ ыepйВerт…žкaжЌY<ѕдSМљц›,YВ„єєt† t%9ˆŒŒфќљѓМќђЫV{ƒ%K–`uœžžž444˜€'ц IDATpўќyFŽIFFƒСJ(ЕХЫЫ‹хЫ—ѓЪ+Џ№щЇŸђЇ?§I^іХ_№?џѓ?VлXfЅДхRЫ.G~~>ыж­уž{ю ААяОћЅR)g–АtД‡RЉфЅ—^тс‡цгO?Е:ж­[Ряџ{++П_|‘яПџžуЧушшШ}їнЧЮ;љф“OXМx1щщщv…У)SІONNёёён„юОDЁP№юЛяђЫ_ў’Х‹ГaУgы&Тl6ЫЎВ”––RRRТХ‹)++ЃЁЁжжV C7W'i№,%\№ѓѓУззљЗЗЗЗWЪr}5nЌk$UЄPЖI8,у№ЕДДааа@mm-555дееQ]]Muu5uuur CЩŠЏООžЂЂ"y , Гўўў„……Jhh(x{{уттђГao%BCC™6mЇNт›oОстХ‹lлЖ FУгO?ЇЇЇчЋЏЎ]ГйLAA………VТєAЊзЌYГ?~<FŽ‹'НћHё)-нЪmБti—>@H 4ˆћяПŸ#FššJNNчЯŸЇВВRŽ]жPйййшt: ФЬ™3Џйън^НM&“l]k‰ЛЛ;L›6v …b™­џKНйЖŸeЬB { :zs\WrО\Ъ-љZ0™LСˆ#())сјёу>|??ПKжO г`y~JYв-Љ­­eыж­lпОН[§ЇOŸNttєU y–( *++љўћяљєгOЉЎЎF­V“’’ТєщгЏ8д@ \onšQccc#Я=їѕѕѕьиБ€ЂЂ"цЬ™CXXЫ–-#>>žŽŽžzъ)šššфDuuuܘ1ƒАtщRFŽЩ=їмУџЧGUо§џЏЩЬdЬd’I&ыd_ !! KиeGA+PЕ›(JћИеZЏVЋЯзЕњДЖЈEЋˆ[UjЕVE‚ ГBBVВяыd™ь™љ§СямO& eёМЎ‹ы"gНяћмsfЮћ|>ŸїГЯ>Ыƒ>HGG:ŽЗп~›рр`~њгŸђЦopЧwАeЫо}ї]rssйЛwЏhЯУ?ЬЂE‹XНz5Ÿ|ђ‰0Юxт‰'XЖlW_}5Z­–7оxƒЕkзђѓŸџ\„ЃK№ўѓŸс†nрЊЋЎ’FЃaуЦlкД‰•+WтттТK/НDOOpскЛw/щщщтKяЉЇžbщвЅЌ_Пžєєt:„йlрЏ§+ЋWЏцњыЏgнКu<ѓЬ3dggsнuзБ`СВВВјќѓЯyц™gИэЖлј№УEКь’%KиЗoyyyМёЦ8;;ГvэZŽ=ŠЩd"77—ŒŒ fЮœЩІM›Их–[˜6m/НєЗмr з^{-7нtёёёTUUБcЧюЛя>цЮ{NѓрЊЋЎbсТ…м~ћэєєє№єгOуттТыЏП.Ф™3g сlеЊUlкД‰ІІ&vьиСў№zш!š››IKK#((ˆ;wВdЩ|№A}єQnМёFўѕЏa4йЕk+VЌ`еЊUДЖЖђс‡ ЇсУ‡Гmл6ЎИт њћћEНііvвввИ§ілљљЯNxx8яНї+VЌрйgŸЅЄЄ„UЋVбннЭлoПMDDїпП]?W­ZХЖmлјѕЏЭЇŸ~ЪЧЬC=tжЗњ?ќ0………<љф“2gЮоyчvэкХџї пЊЊ*>§єS1Ї?ўјc"##…У№'Ÿ|"в?џќs^|ёE–-[6Ё‰ХDЌYГ†;юИƒмм\|||иЖmнннlйВ…ффdр”щХчŸNff&oОљ&...$''kwМ›oО™ММ<ž}іYЂЃЃYЗnрљчŸчЇ?§)їмsфщЇŸцƒ> 44”]ЛvёЃ§ˆ'NЁЏЄЄ„ЙsчrлmЗБyѓцqЕ*яОћnnМёЦгІрžO”J%ЏПў:з\s 7nфеW_§N"7dО=R”Egg' 444P__OCCmmmТBŠD‘ьT*•ˆЌгыѕBА“Ф:­V‹››ЎЎЎ"ђctНКбЮА2п-Ѓ яBьsssCЇгa4…‰†T—SŠРьшш ­­ЭNшышш"FWW‹…ііv***pqqСЭЭ Н^бhѕК|}}Eљгеб•ЙИ>ч&“‰Ÿџќч466’‘‘AUUќ1юююlиА€€T*еИьŒoƒ*™6ЈT*ммм№іі&<<œ 0{іl!R888иЅб‹Й:44d—ю(! гfГY0ЎЎЎvйвqSRRˆŒŒQШЕЕЕ”””™™Inn.]]] гжжЦбЃG™?ў9 y GcльццFpp0ЩЩЩДЕЕQTTDmm-‹…œœ^§uT*3gЮб№ …­VkWъB*‡алл‹ЃЃуИѓŒŒŒаееEGG‡(MЃVЋёђђзфtЎЎg[6‘aХ7›oƒд.ЕZMdd$ .ф№сУtwwѓѕз_учч7N,ЋЋ+:WWWБйlдззггг#DJщѓ#}GіѕѕйeЃLTѓя›ЄджжжђЯў“їо{OˆпѓчЯgѕъеФХХ}kc™я›KFШS*•Т(`ЦŒужЎ_!m76Ъ ўЯtтЯў3ьоН›нЛwЦ<РUW]Egg'СССДЗЗsнuзФ'Ÿ|‚ППП]m:)šЏББ з,[ЖŒььlž~њi222(**тЩ'ŸdіьйtvvтшшˆЛЛЛ=OMMх'?љ гЇOч/љ >њ(VЋ•ддTВВВ„`ддд„FЃБ;Џ”vлдд„JЅтёЧыЄк&ГgЯцР<їмsTTT№яџ›ЅK—ђзПўU8є}ўљч$&&rы­ЗrфШњњњјэo+ŽеииШрр ЕЕЕЬ™3‡9sцˆuRкР/~ё fЮœЩ /М@VVЧ'&&†>њˆддд Џѕ™јщOЪ5з\У‹/ОHWWз_=їмsн›:777вггљŸџљВВВиЙs'ЩЩЩьлЗшшhfЭšХ‹/ОˆС`рWПњ•ия‘GaўќљlпОВВ2yшЁ‡ИёЦEПš››ЙікkЙікkDБz‹Х2юZРџKL›6‚‚^xсіяпЯ›oОIPP<№ыж­‰ёЇ?§ ­VKzz:•••<ѓЬ3ќјЧ?>ыј8::ђўћяѓж[oёж[oБ}ћv"""иП? ,лIžЗмr‹Xжжж†ХbAЁPаккj—Ц+=N–ЈЈ(~јažxт іэлGbb"Я=їœбHGG‹Х.BЏББёДF3Я<ѓ ЋV­bћіэмtгMђж[o‰kЇЎЧьйГEšm]]xh ГЛ>НННОeOKKУгг“Ÿќф'“юяЗA­VѓЯў“•+WrЧw№ЗП§э{9ЏЬ™‘вБ:;;ikkЃЅЅ…ццf‘.лоо.R0АZ­(•JœёёёБЋ•цщщ)D;щAбееWWW!мЩщ•’Л-œњ 2VXmК!Ѕйііівее%Rs%qOr–О/ЄШјКК:ЪЫЫ…ЎС`ЉИFЃƒС Œ4фˆн‹…BFЃ!!!ѕыз344ФбЃG)--eчЮЈеj–.]:aиЗ9gLL ‹/™RŠО^ЏЧппŸааPЛњmJЅ’рр`al188H}}=ххх„„„Œ+ё P(Dv@KK УУУЂnZPP …BМДP*•"эпЯЯШШHКЛЛINN&11‘gžy†‚‚, 444qч|пћ4 ёёёlоМ™ЎЎ.Ојт іьйCNNfГ™єєt"""№ѕѕцq …___ŒFЃuкккЈЈЈ ЙЙyœрЈP(шяяЇЄЄ„ккZQ–Чее•ШШH‘n+ЅаK"Ј”ž/NegHНRЪюdЧfь‹ˆѓT 199™У‡S\\LCCУ„FcјћћЃзы1›ЭТ5ЙВВ’ˆˆмннQ(јјјpэЕзI~~>яПџўiн‹ЯЦXohhˆЦЦFо{я=>јрђѓѓQ*•$%%Б~§z’““Яh:&/ЫШШ\Ќ\2П 5 ПћняЮКZ­žєvwоy'wоyчИu:Ю.-А<Ц" =gbЪ”)Ђюжh&ZvћэЗ‹џOdj!q&ЁaУ† glOZZiiiЎЛс†Ис†ФпsчЮ=mфм™\@%bbbЮъ„{.Ќ[ЗŽuыжq›€€€гž311‘чŸ~ТuK–,aЩ’%Ў <умZМxёлЄзыЙяОћИяОћЮИœrg}т‰'ЮКнD(Šqзp,БББуЂоF3™Яай˜>}КHщˆ3ЭСгБbХ VЌXqкѕЋWЏfѕъеу–/_ОœхЫ—OъO=ѕЗоzЋˆ№ќ>pqqс?џљW\qјУxьБЧОЗsЫќCCCєѕѕбннMgg'ЭЭЭдззS__Occ#­­­˜ЭfњћћБйlЂž^ЏЗ3:Ф///QлNэdСюђAJУsttФееUёŒvд•ФЛііvZ[[…моо.ЂєzzzЈ­­ЅККЕZЛЛ;žžžјјјряяПП?FЃ///1—х(Э ФиЈIєqpp@ЋеВtщRКЛЛ$++‹ММ<”J%§§§,[ЖŒ˜˜ЛкЬп…BAhh(kзЎeкДiЂ ’KэhQnt”iLL бллKkk+‡"00PМ`nЛКК((( ##CDфiЕZ‚ƒƒE‰“ЖЖ6P*•јњњтюю.цБVЋbєЮ;)--/8ПЫћ ЃЃ#ОООЬš5 ЋеŠЗЗ7НННTVVвккJmm-‡&22’рр`БDXX:N_ффф0uъTМННбщtЂнвёіэлG]]8;;уыыKBB‚(ŸрссЛЛЛяššš„ˆ)Ншшш ЁЁAИьЂ6ъХ№}aГйpqq!,,ŒeЫ–QRRBCCэээgLхеjЕDGGBUUVЋ•ттb>ŒЏЏ/qqqИЙЙсщщЩ’%Kˆ‰‰AЋеђŸџќчДюЛgŠšЛНХbЁЂЂ‚§ћїГsчN ˆ‹‹c§њѕ\qХˆ{щйЦZŽи“‘‘Й˜Иd„<™6чУ~^цЛчRЛNяОћ.7оx#7nфйgŸхШ‘#|ќёЧтЧої‰VЋeїюн,\И­V{^ФT™3#е’’ŠВЗЗЗгаа@UU•јзккŠХbСjЕ YN'в"№ѕѕХпп??? ƒ0Ё…–&’Рчфф„FЃ! @д†ъяяЧl6‹‡љ††ъъъhiiЁГГ“ОО>КККhkkЃИИ''']BXX 4 ŽŽŽv5Яd. Ѓгђќ§§ЙђЪ+Бйlєѕѕ‘——'м\ЛЛЛљб~DLLŒ]]ФбQi“  …ИMQ4Q5…BATTгІMЃААВВ2њћћйГg8FHHŽŽŽ P\\ЬюнЛIOO=!!!$$$‚ЭfЃККš?ќўў~RRRˆˆˆРУУChєііRVV†йlйŽŽŽјљљйh|Ю&ъHiЬ111Ьž=›ЃGвккŠеjхјёу=z”ддT‘ЩуяяЯДiгˆŽŽ&33“‘‘ВВВаыѕИЛЛ‡““###дееqша!оџ}‘IрээMBB‚иNЋеŠя†––JKKЩЬЬ$<<oooFFF8vьЙЙЙ455Їю!R Э‹E4R(xzzrХWАgЯкллщьь<у>jЕšјјx9~ќИx™ёЩ'Ÿ P( $$Ц™L–‰R•{{{)**т“O>с7о ЊЊ тттXГf ?љЩO№єєŸС‹eœeddd&‹,фЩ\єX­V‘жy.щ2п?’бˆ”6vБѓбGaБX((( ;;› 6АmлЖo]|ћ›b0иЗo ,@ЋекЅ~Ыœ†††hooЇВВ’ТТBŠ‹‹Љ­­ѕЂЄˆ•J%"KТТТ #((???єzНx —M(dN‡$КHЅ4БZ­ У”šš*++ЉЌЌЄККZЄm766вииHnn.???сDбhQT2›ЭFpp0з\s †Пќх/”––RTTDgg'•••lмИ‘YГf Ѓ•osЎЩИЃŽЦлл›%K–PSSC]]‹…“'OђПџћП|љх—ФЦЦЂзыiiiсиБc ЁJЋеВhб",X „?‹ХТW_}ХW_}…——ЁЁЁ„‡‡c0PЉTДЗЗ“——ЧёуЧБX,(•J<<ŽNUЮЬЬdчЮ|№С466’’Тѕз_Я† №ёёm”‘‘‘Й‘…<™‹š-[Ж№ќѓЯ‹к?џљЯyьБЧиБc‡ЃАЬ…хгO?хЎЛюЂИИ8•2žžžЮнwпЭцЭ›/pыNЯцЭ›йН{7ћїячškЎaыж­Ќ]Лі‚ЖЩh4ВgЯцЯŸ““гЄвзe&Ярр яNž ЌЌŒююnŠ‹‹ЉЋЋѕюЄК˜6› ƒСРтХ‹ЙцškHIIš …‚ˆˆЎКъ*ЊЊЊШЩЩЉєfГ™/Пќ’‘‘1>*• OOOж­[ЧмЙsЧ‰McырN?•"Я4VЇ3к˜, …'''.\Hvv6ЕЕЕv/n':–““‰‰‰м|ѓЭh4вггihh ГГ“ТТBЊЊЊDdц№№А]§bFƒ^Џ?m*њшЈSЉцcssГ0‰ЫЬЬЄ­­ GGGвввИюКыXМx1ƒСЎOчв™‹YШ“ЙЈyрxр.t3dЮТђхЫ)**КаЭ8gfЯžM}}=mmmx{{_4?вL&{іьaбЂEhЕкГж„”93R­ВЦЦFЊЋЋЉЌЌЄІІ†ІІ&сH(9JюЁRm2___QOЃбAыRDJѕЋЉЉсфЩ“ДЖЖвзз'ЛШШHІL™‚йlЉ€ŽŽŽ$''‹тэ}}}ЄЇЇгииˆеjХЧЧ‡ рююŽRЉƒƒƒЂиЛlд01в\rqqСХХN‡ЗЗЗЈеe6›iiiЁББQдkljjТl6гннMkk+uuu”””@pp0ЁЁЁЂРМ”о(ѓн3:НтзТ… QЋеx{{s№рAjjjШЪЪЂППŸЊЊ*.\ШєщгEЅtœБiБ8;;ЃгщФпЎЎЎпHDзщtܘ1WWWL&ЙЙЙTWWгжжFOOЈеj|||0 „††’””Фќљѓ‰ŠŠТЭЭMД/ €eЫ–ЁбhЈЏЏЇЃЃƒююnњњњЕƒƒƒ &55•E‹счч‡JЅš0§зййwwwQ“NЃбLx‘ФDсЎRЉpwwб~в˜jЕZbbb˜7oћіэЃЋЋ‹‘‘***ШЫЫcоМyЈT*\\\ˆˆˆ`§њѕF233)--ЅЉЉ‰ЎЎ.њњњьњфяяЯєщгIKK#!!OOOЛyрссAjj*›7oцР"­ЋЋЫюЛ'88Xˆљ+VЌ ::њŒЦ( …WWWaЂфююŽFЃ9у|PЋеbœl6юююу NœœœФиЂцсh1**ŠYГfQSScїлOЋеŽkГ”’›ššŠFЃ!::šММЕьууCTTООО„……1{іl‚ƒƒэŽ9z|Ѕ9аккJAA ==ТТBzzz0Ьš5‹Еkз2{іlс-###sЉ#пЩddd~а(•Jёжћb"**Š]ЛvБ|љr4ЭM>dЦcЕZ ННЦЦFЊЊЊ(//ЇВВ’††zzzP(ИЙЙ(ŒL&AAAFQчщr‰6 ЖЖ–Н{їRXXH[[CCC":lxx???ЊЋЋйП?эээИИИ`0uГ233)**bxx˜ЈЈ(’““E˜ХbЁЖЖ–ђђrБЏŸŸп…ьњ%Уш\ЉОорр ===BДЋЌЌЄЖЖVбДЖЖR^^Naa!&“‰ааPBBBР`0ЁUцЛel;•J…С`рŠ+ЎРнн///!цdggгммLuu5555Ьš5 “Щ„ЛЛЛИF †˜˜жЏ_/Ю•””„‡‡ЧЄъъ ƒддTBBBHIIЁММœњњz:;;ТббD*ЗЗЗ7jЕкюИFЃ‘UЋV+ЂGлллБX, ‰Ј]ЃбHDDSІL!$$''Ї #И$7о+Vадд„BЁ <<\ЄЋN$ќщt:цЯŸO`` шѕzІOŸnw=ЄhЛЕkзЂзыE$™——зИqsss ”––R]]M{{;ƒƒƒ(•Jмннёёё!44”)SІряя?aф˜Z­ЦппŸUЋVJQQ‘8жРРИЙЙсууCXXБББ˜L&ЛњEW* Q(т^"œ`'ТЯЯE‹ˆЭfУh4eЗ}DDK—.%&&…BЩdТпппn,=<<„ оh!ЯЧЧ‡шшhьЖW*•xzz2{іlL&“н|3›Э  WЇгсууC`` J%сq"КККЈЊЊ";;›p№рAъыыqrr"::š9sцАfЭ’““ё№№_lШШШ\6ШBžŒŒŒЬEJBBяПџ>W_}5яОћ.ѓцЭЛаMКш‘ЂСКЛЛЉЏЏЇ  €'NPQQA[[VЋUд)ѓђђТd2EDDxxx'СЫ )=ьГЯ>УbБ VЋбыѕшѕzT*т!]ЁPLXїO*"огг#RяF‹эээ9r„>њ85‡—-[& yп)•ЭЩЩ ///"##щююІЉЉ‰ŠŠ JKK)//ЇЉЉ‰ююnъъъЈЎЎ&''‡   bbbˆ%<<\дs”ЃQО{Ц )юююBh сwоЁЈЈˆКК:aАTXXШВeۘ:u*>>>"šRњ|щѕzцЭ›gWVФййљœpЧ ЮЮޘL&L&§§§єїї‹њ ’#Г4џ$Ц *ЮЮЮDFF)RNбО*• '''ёbdДH9vЌ iiiܘ1УЮУЭЭэД•7оx#ƒƒƒB8šШpШУУƒeЫ–1gЮQРССЕZmС' eFЃЃбHjj*§§§ иѕIrІ;6cя™RпЬ™3IJJc4222n|Є6>жD"–ƒƒЋWЏfЩ’%"ђQЊчzКqŠŒŒ/рд‹ЬБQГfЭ"!!A˜NЈT*4Э8gзщгЇ%мxOwМбэWЉTc2™˜?>}}} ‰q=чFGŽэПdRеннЭёуЧйГgћїяЇ  €ССAaLВ|љrжЌYCllь8ёWFFFцRGў5'###s3{іlо|ѓMж­[ЧюнЛIJJКаMКЈщъъЂЌЌŒььlrrrЈЏЏѕоЄ‡Љbcc™:u*сссxxx T*/ћ7ѕ‹…ЦЦFzzzАйl˜L&-ZDZZjЕZд§ГZ­ЌXБ‹Х‚““ІxI‘|Ѓ‘ъыIEа%Сo"ЦFжШœt:Z­–АА0„*ЕD IDATвввhllЄ  €ќќ|ЪЪЪЈЏЏЧbБPTTDyy9DFF2sцLbccёѕѕ‚­| О$гœШШHŒF#гЇOgЧŽьлЗъъj 9yђ$щщщЌ^Нš•+W2}њt;ёJЉTтццvNТнdк%1VА+FMц8RКЏ”z;њXчтjЏбhаh4у„Бгэ+Н”8н9G/svv—Nz:БLZІVЋQЋеИЛЛOКMg;–Дь\Цyl›ЕZэYћ<щЎ+7іМЎЎЎИККžUHTЋешt:‘‚+m{І~ŒM=н9vџ‰Ўœњ.+--eяоН|јс‡a6›Q*• VЏ^ЭкЕkIMMНЈЪІШШШШœOd!OFFFц"gЩ’%ќ§ячЪ+ЏdпО}L™2хB7щЂbxx˜ЮЮNŠŠŠШЫЫЃЄЄ„њњz!"i4ќ§§‰ˆˆ &&†   цaд uЯЫЫЃДДT<ѕїїSWWGnn.ЮЮЮL›6 '''!еЖ›(bь Ї QZZJ^^bykk+йййТQЅRN@@€ˆ|ьыыЃЅЅ…––Ьf3УУУ8::b0№ёёСЫЫЫ.ŠLŠ<ЋЌЌNЅЦ еjEjпрр ООО„‡‡OЪѓRCŠтquu%((OOOтттhhh ЌЌŒЂЂ"ЊЊЊDНžžЊЊЊˆŒŒ$>>ž)SІ4юAZцл1VT‹BЁРннјјxnП§vйЛw/дззSRR‚йl&;;›™3g2oо<тттаыѕvзъl"Ый˜Hp™Ќи1бv Тg;ощЦч\ўЛьLлOцкŒўџЗqMЛlВЧšLди7ЃГћ\Цu2sfЂуŸN”;ЃЗkkkЃ  €У‡ѓХ_ˆјјј””ФЪ•+IKK#88wwwЛЈжs9ЏŒŒŒЬХŽ,фЩШШШ\\}ѕеtwwГ|љrдее‰х---dggSZZ œJ‘[Нz5^^^b}nn.'OžЄЉЉ ‹ХТШШJЅL&SЇN%..WWWшъътФ‰|ўљч„……ŽЃЃ#999ДЕЕaГй˜1c~~~—Ѕ'срр Ђlt:FЃ“ЩDtt4•••”——SUUECCuuutuu С(&&†шшh|}}quu§С|ОoЦŠfRMʘt:СССФЦЦrј№aNœ8!ЬLЊЊЊШЭЭ%%%…щгЇŸŸŸнЕњ&"оDmћЖлNG§ЖчњЎјM„ЦбLІ.сdѕ]я>9m9н1&гZZZ(--%33“ььlNœ8AUUннн ’’’˜9s&iiiLŸ>Ѓб(^Щ"žŒŒЬхŠ,фЩШШШ\"ќьg?ЃЋЋ‹ЅK—r№рСlн1ЋеJggЇpЬ;~ќ8eeetttШЯЯЈЈ(QXн`0рттђƒќ!oЕZikkЃЁЁAЄМєіі CFCoo/###tttPRRB[[ЎЎЎЬš5KдЊšЬ9КККФђОО>iiiNегъььЄППГйЬЁC‡„јgЕZqssУйй‹ХBeeЅHЕйlФЧЧЃбh ЉЉ‰ТТBрTšUss3УУУ”––ŠћЇMыНQ*•"%бЯЯˆˆjkk)++ЃААъъjZ[[)--ЅІІ†ђђrjjjˆ%44//Џq)‡2чЦd„Ќб)–&“ ƒС Ѓ<(ФѕђђrNž<Щ‰'ШЮЮ&))‰јјxaќ Н˜шиъ>7Z Лаm™ˆ й–ЫEP:з~L=*Э“БЧ’–ŒŒаггCKK •••фччsєшQђђђЈ­­eppP”HJJ"--ффdТУУquuw^™ЫYШћбииШЮ;ЙњъЋ1™LК9у8rф<ђ999888ЫŸўє'туу/tгЮoОљ&Я=ї]]]twwушшHYYй…n–Ь%ФmЗн†йlfљђхьпП_D6§Айl аййIAAGŽЁ  €ІІ&Q›) €˜˜ІOŸЮдЉSбщt—}ъьйP*•FSщIpЪ™бггН^FЃСЭЭMИ Jc6жьb2чАйlтЎЎЎxyy‰ьNNNxzzbБX(..fзЎ]ДДДрттBxx8бббxyyбииШёуЧЉЎЎ&33“‘‘МНН1™LукдммLWWŽŽŽ"УfГЁзы/ћК‡ЇC­VуээС` **Š„„ВГГ9~ќ8UUUtttїЬввR’““™>}:AAA—•SѓХˆ$VHBƒЋЋ+ссс„„„””ФсУ‡IOO'++‹КК:ЊЊЊЈЌЌф№сУDGG“’’ТмЙs‰ŽŽЦЧЧWWW;‡гsх| L?4Сф‡жп3ёmчBЁРjЕ244Doo/”––’••EFFЙЙЙдзз 3ааPтууYДh ,Рd2‰к‘В€'##ѓCAђ.#ЊЊЊhooЗs4ЭmЗнЦ{яНЧ|РО}ћОчж™єєt–-[ЦтХ‹ЩЯЯ';;›ЅK—Вnн:Š‹‹/tѓЮsцЬСh4’žžЮ–-[0 КI2— јУшююfеЊUьнЛwwї нЄя…ОО>***8x№ GЕа$б"%%…ддT"""„…ЬЉчK–,! €№йgŸЪтХ‹IIIAЁP зыЖ&‹ЃЃ#‹/чјєгOэЮ‘œœ ќ_Zayy9999466ЧВeЫHMME­VгззЧюнЛйЛw/хххфхх‘ššŠЇЇчИs `4™9s&sцЬСЭЭююn\\\ЮЋ1РЅˆBЁРЭЭШШHL&3fЬ ''‡ŒŒ ŠŠŠшээ%//ъъj XМx1 Вў3QЭ1ЅR)Ўг‚ ШЪЪтгO?хаЁCдддаммLkk+GŽсУ?$55•yѓц‰{ž‹‹ЫИz`223Ѓ?Rvvv6щщщdffRSSCOOVЋ›Э†ŸŸiii,]К”yѓц"ъИЪѓ^FFц‡†,ф]FМљц›444№ьГЯNИ>66–їо{ииияЙegЦfГёЫ_ў’ссa^~љe<==E”ZKKЫeхЊJhh(žžžlйВхB7Gцц‰'žрПўыПXЛv-ЛvэКЌSтЌVЋ0e8rф%%%tuuсрр@PPqqqܘ1ƒАА0<==ч‚ƒƒН^/вŽр”јІгщ№ііN VЋѕC*тясс1юZ­Ѓб(– c6›ЉЋЋУfГЁT*щяяЇММ\˜bиl6ъъъТjЕвллKuu5SЇNwnOOOІOŸЮW\A@@JЅ’‘‘ …lц№џ#ECšL&ДZ-?~œььl*++1›Э?~œццfNž<ЩЬ™3 ћС Ё'''ащtФЧЧГzѕjŽ=*"[[[Х‹лЬЬL‚ƒƒIHH 11‘˜˜бщtv1пEb].)Єч›Ыe,&cш1sссaКЛЛЉЏЏЇ  €мм\ђѓѓ)//ЇЅЅ…ююnFFF№№№ 44”ФФDцЬ™C\\xxxˆшыгЕKFFFцrFђ.#rssэ–ЦђШ#pлmЗq› AEEEEE„††тяяР/~ё њћћINNО,Пœ/Ч>Щ|П( ЖmлЦЭ7пЬкЕkљЯўƒ““г…nжyХjЕ200@YY_§5ЧŽЃВВ’žž<==‰‰‰!>>žЉSЇˆFЃ‘Мг T*Q*•vї”JхyyрW(тxЃгYЅ4нбчЁЏЏююnрдuЎЉЉщБ===˜ЭfБйlf```œ8'™b^ж‚іЗEѓМННбjЕТФ$//ТТBъыыЉЌЌЄППŸŽŽfܘA\\>>>Кщ—5 `ŽŽŽxzzтссбh$""‚ЄЄ$Ž;Fnn.eee444P^^N]]ЅЅЅ9r„ааP"##‰ˆˆ 44T‚ЮЮЮувЬЯЗ"GD]zœЯ9p6!зfГ188HWW—p/--ЅИȘђђrjkkimmХbБ VЋ "22’ииXттт„уМ^ЏџVЉф2222— Вw™аммЬ‡~ШІM›ЮИнХ&т444 еjХ2~§ы__Ј&ЩШ\( ^zщ%ЎЛю:nИсvюмyйY###tvvRZZЪсУ‡ЩЫЫЃЅЅЅRIpp0ёёёЄЄЄ…ЇЇчeгяя“ятСћ›sddDSŒ6№ііЦЧЧєz§„vnnnИЛЛЫ"о$qppРХХE-F|}}ЩЭЭЅММœ††!Ђvww“œœŒЗЗЗШ*sў9]К­^ЏЧУУƒАА0™9s&yyyфччSQQAcc#ЭЭЭддд““ƒ!!!DDD-=oooєz=NNNЈTЊѓ’†;Q›eхђdЂы;бВбЦУУУєіівйй)Ь*++)..ІДД”ŠŠ ъъъшыыУббQ/2..ŽiгІ‰(гб%DЄђ“­с*###s9rЩ yCCC”••ЁRЉ 9mњL?'OžФЩЩ‰№№№Iп№;::ЈЎЎ&00№œŠЩзеебоо>Љ”‹ХBEE…(ђ}&ЄўЊеjQBЂ­­ 6апп?щvžŽЎЎ.*++ёђђ" `вћI?$CCCЯЙ^—T}ВQ!’3ЁПП?:nмњІІ&FЏзOъ˜”––тщщ)Ђ%ZZZЈЏЏ'<<F3ЉуХbБpђфЩsзССAjkkщыы#((ШNш<---дее‰э“ЁЏЏВВ2ŒFуИШ‹ЦЦFšššˆŒŒДK—›ˆŽŽЊЊЊ№ѓѓ;'СИІІГйlч6&3y”J%oОљ&kзЎeгІMlпО§’џa;22B{{;………|њщЇфччгпп››&“‰9sц0sцL|}}/Л(ФK™‰ЊFFFfxxXЌW(8;;‹ЯЛƒƒaaaФФФŒћОЕйlX­VЌV+AAAшt:Ѕ'!EЪœ;ЎЎЎФХХсчч‡Щd"==ќќ|Ьf3999477гггУœ9s№ѓѓ“ХвѓРЙЄžŽожЭЭˆˆ"""˜7oeee;vŒœœa c6›Љ­­ЅЂЂ‚єєtМММQMSІLСh4тщщ‰››NNNЈеj­7Ж=ч"Ю]ъп;2пщ^=44Фрр ДЕЕQ[[KII 'Nœ ААВВ2Z[[DЅRсььŒŸŸФЦЦ’ššЪŒ3 AЋеŠg9e[FFFЦžKNШсќ#O?§4WWWZ[[yьБЧИѕж[эЖ{єбGйКu+&“ ГйŒЃЃ#[ЗneеЊUbЛЭ›7 !СbБpфШюОћn^~љe†††P*•мxуќэoŒ мuз]ttt`6›‰хБЧуПј…0‘pwwgЫ–-мyчуњаггУ}їнЧŽ;ˆˆˆ ЖЖƒСРЖmлXДhбИў>іиcќѕЏEЋетттB[[?ў8›6mтНїоуЧ?ў1УУУМікkькЕ ???:ФЖmлиГg]]]tvvВjе*}єQЛѓtvvrЯ=ї№Ю;яCUU<џќѓ$$$Ї„šЭ›7c6›1›Э„„„№мsЯБqуFqN777ў№‡?pп}їѕZюпПŸM›6‰šHљљљBамБc$##ГйLgg'/Нє###\§ѕ466тььЬО}ћDѕ'NpлmЗ‘——GDD………\}ѕеlнКUHџшЃиО}Л8цњѕы‰‰‰aѓцЭ477АrхJоzы-”J%Зоz+яМѓVЋWWWЖlйТнwп}жОIиl6ЖlйТSO=EOOЫ–-;у1ZZZј§яЯЛяОKHHˆуттxюЙчXА`СИ}JJJИуŽ;ШШШ ""‚ЂЂ".\ШпџўwсTљілoѓЮ;яˆОпzы­ИЙЙ‰ЙЌP(ИікkyѕеWщяяgуЦ|јс‡иl6мннљЫ_ўТЭ7п<юмMMMмuз]|ќёЧL™2…ВВ2fܘуЯ?ODDpЪˆхо{яŸ™ЄЄ$юПџ~~іГŸёХ_ гщxђЩ'йМyѓИ1МъЊЋјќѓЯy§ѕзЙікk'=ў?љзПўХђхЫљѕЏЭж­[/t“ОfГ™ЃGВgЯNœ8еjХУУƒЄЄ$/^Lbb"ŽŽŽ?XGвѓЩљˆЪ›(]WЂЋЋKМprrџєz=~~~”””`ЕZqsscъдЉ$&&к=ИI.ХсююŽйlїP'?и};<==III!$$„Я>ћŒУ‡SSSCuu5яНїннн,^̘АААяЅіšЬxF‹j:ŽФФDтттXГf uuu9r„ЃG’““Cyy9fГ™ІІ&š››љњыЏqssУлл›ЈЈ(э4eЪQ–@ŽИ”9WЦжМыььЉо'NœрјёуSWWGwwЗћ$гЃРР@˜5k‰‰‰„‡‡c0ьЪ@Ш)л2222sЩ§Лѕж[йО};Змr /М№,[ЖŒ_ўђ—DGG ‘cуЦМўњыьмЙ“ѕызcЕZЙщІ›XГf oП§6ыж­`ѕъеЄЇЇѓєгOушшШ/~ё œйП?555ќц7Псх—_ЦЯЯOˆ_nnnЌ_ПžW^y…ЬЬL +WЎфКыЎcЫ–-|ёХ<№Рмuз]L™2…ЅK—Šі Бjе*Ž9ТЇŸ~ЪТ… ркkЏeхЪ•ьлЗДД4Б§M7нФkЏНЦцЭ›йЖm,^̘[oН•шшhVЏ^Mss3?ќ0[ЗneУ† <ѕдSт!799OOOўќч?“MjjЊн˜іїїГdЩŠŠŠ8|ј0гІMЃЇЇ‡ЅK—2ў|ћŒўў~VЎ\Щ•W^Щƒ>ШбЃGљ§яЯ§їпOtt4?њбЮx-чЮKff&ЛvэтЇ?§)111ьпПFƒЭfУзз—лoП]BшЁ‡xћэЗЙђЪ+iooчнwп%99™ТТBцЮKpp0хххxxxP\\ЬЬ™39vь_~љЅpю[П~=?ў8љљљhЕZ^}ѕU^xсєz=їнwЛwяцŽ;ю ­­ ___8 „Впќц7L™2…+VLjО>№Р<ўјуЬš5‹элЗc4yшЁ‡ИёЦ'м~hhˆ%K–ааа@mm­ˆnќрƒИцškИђЪ+ЉЎЎЖ‹4,--%-- Н^OII FЃ‘ЪЪJцЭ›ЧТ… ЩЮЮFЋеЫњѕыy№С)//чнwпЅЅЅ…W_}~ѓ›п№юЛяb4ЩЭЭeЦŒ|ёХdggsЯ=їpЫ-ЗЧЬ™3ХЙЭf3ѓчЯЇЃЃƒММ<ТТТhkkcюмЙЄЅЅ‘‘‘Ahh(Z­–uыжёвK/‘™™‰ЃЃ#+WЎdуЦ<ѕдS|ўљчќПџїџјеЏ~Ell,sчЮчшъъbзЎ]иl6ў§яЫBоipuuхЃ>bётХ<њшЃ<јрƒКIпˆ––вгг9tш'OžФfГa2™HKK#%%…№№pœœœdсцЦqєƒ–““Z­ЕZЭ№№0 |ійgфццтшшH||МˆюJHH ААііv  ИИƒС€ЭfЃЇЇ‡ііvZZZАX,ќф'?AЃбШТнw€BЁРббЃбШВeЫ№ђђтЫ/ПЄ  €ююnвггbўќљL:U6љŽ™h~4D:ЂЋЋ+ОООЬ;WD@хххQ\\Luu5­­­tuuбллKss3999шѕzŒF#„‡‡‹”Ц€€aŒ3ЖЎцhѓБЫЩˆь‡Ш™Ђ-O—2+1<јр^§u’’’XП~=pъЯЃ>ЪkЏНЦ­ЗоЪвЅKбщtЌYГ†)SІ№єгO388ˆГГ3ЏОњЊнyЏПўzЖoп.„<­VЫњѕыщъъbїюн|§ѕзМќђЫмtгMЬš5‹ŠŠ žўy^yх;!ящЇŸц‹/О`уЦ,\И8ѕрѓф“OЧэЗпNNNp*zьЕз^Уh4ђьГЯтрр@UUРfГёХ_0oо<œœœDК‹ГГѓИtвддTRSS9vь™™™уЦѕќ#™™™lкД‰iгІЇ„ДћяПŸ5kжpѓЭ7“™™‰‹‹‹Eпџ}Ž?Ю_ўђQЫnжЌYдееёдSOёЪ+ЏœUШSЋешѕz‘‚,}ЩKЬŸ?ŸљѓчѓдSOQRRТŸџќg|№AfЯžMhh(]]]Ь›78%№vttАmл6<<<ˆŽŽцЦodыж­<ђШ#<љф“DGGЭ—_~I~~>‡ІЈЈˆАА0^xсІOŸЮыЏПЮŠ+xљх—˜7o™™™М№Т МњъЋ“ђJKKyђЩ'Q*•М§іл№Ь3Я••ESSгИ} 8vь˜и?)) €ЕkзIII љљљЂпRп[[[йЖm›Hi сЎЛюто{ях‰'žр‰'ž >>žјјx>ўјcЪЫЫЩШШ ММ\ЄгnнК•Х‹ѓЗП§nИADuЅЅЅqша!vюмЩЋЏОj'фнwп}”””pџ§ї‹1єђђтЗП§-›6mтЖлncзЎ]шѕz6lи@ss3{їюхЫ/Пфџјз_=pjю”––ВcЧ^yх;!OŠдлП?ПћняЮ:ю?dt:Ÿ|ђ ,РХХ…пўіЗКI“FЊ‰їХ_pј№aЪЫЫБйlDDDА`С’’’ ’гЏЯ3=$IQcџ?њoЉFбXЇBFƒЩd"$$„ккZњћћЉЏЏЇЉЉ ЅR‰VЋ%11ЃбH||ы>>>уюћ’д’%K@ЅR&в™]\\˜={6бббиl6єzНнї€JЅТзз—•+WCkk+}}}тс> @|жœœ ХззWдђъшшбjЕДZ-žžžx{{ЃVЋqwwgъдЉЂn­С`gR$ѓЭ§эщщIbb"ЎЎЎX­VNœ8A]]_~љ%Z­–E‹сээ-6ПGN'rŒb’>oЮЮЮ8;;c4‰‹‹c``ГйLMM 'OžЄДД”ТТBЊЋЋiiiЁЛЛ›ўў~a˜aГй„@#Eћў€С`@ЇгсююŽ‹‹ jЕ•Je'юIm?_"ЭљŠќЛNЛg;ч™њ6Q$чhAюL§MmЕZfhhˆЁЁ!њћћщююЦbБгДъъjъъъЈЋЋП#{zzшяяGЉTЂRЉpttDЋетююŽЇЇ'ССС„‡‡ITTСССxzzтьь<ю7Ÿьr,###ѓэИЄ„Мііv€ГКЂvuuLш0*элйй9nJЅ:Ѓ+щщR!ЦŠGЇC2S€SQ]’p'!Ѕ JKGG‡]›П ЄБ‚гWKKЫ„у5‘cЌФw‘ц4kжЌ —Oцzуœ3:№}лщ|]П3ЛВВ’Gy„ўѓŸ,XА€UЋVБaУюМѓNОўњkЛmGЯЉђђrЛu111ФФФџP:“лчdњ>zюŒэЃRЉФее•žžž чЮd?32пœˆˆvяоЭВeЫаh4чСћ}1<ћьЯёёс…зддфёЉž юwMp|ЄЄЄАrхJцЯŸЯG}дЏуёщІЂЂ‚ььlіяпгщ$44”ЉSЇ2aТ!т 2 ^§‰gG:ПыїїxОчЧ#Ц сюдЂбh5j­­­twwГџ~јц›o№ѓѓ#55ѕˆХ'Ÿcљ>єnЃRЉаыѕВaF\\“'OІ­­ЦЦFЊЋЋхШЌђђrЊЊЊЈЎЎЦl6cЕZ1›ЭДЗЗгииHII ^^^шt:9ŠVŠЄ5™L„„„`2™ єxInЙF~ШwћLЏЭw4s‰#Ms:8КЛЛeŠЖЖ6Ьf3ЭЭЭ455ЩЕэъъъdQVjcБXшъъЂГГ“ЎЎ.КЛЛq:ђY???ЙvbTTбббФХХJPPlЖ"EckŠѕ™ј9 С/‰3JШЫЬЬф‹/Ор›oОщ3я‡~`ѓцЭм~ћэœўљ,_Оœттт>эЄЈ%wŠSERR477“нЏїс‡2nм8’““ЩЬЬфЫ/Пьw{ѓђђиЖm›\ЃNЊ§fГйф6ыж­ЃВВђˆB^HHЉЉЉ|џ§їЩа#zšЭf”J%ГfЭ:С­<мыЙЙ3}њtдj5vЛВВ2ztR­­„„„>щ'›ЬЬLV­ZХЁC‡њЬ“вn{ѓ—Пќ…ЦЦFzш!ЯхrЩ)аНћ€žшИC‡ѕIуuЙ\,^̘ЛяО{аoДFExx8еееyЄЅKп3NчaЬ!8ѕdffђСpх•WВfЭвггOїdl6yyy8p€––єz=щщщŒ7Žˆˆ‘ВwŠ7T‚Ѓa0HII‘ХЂЂ"~јсттт>хзWСр P(ф4Xoooq:twwЫ‘[---455баа@mm­ќЊЏЏ—…ЂццfкллiiiСсpxDэIІ)>>>x{{c0№ѓѓУпп_ќЄєL???ЙћKŠшSЋеВсŠRЉ”_'z;чОЃ t.—Ы#Юсpрp8dѓ›Э†еj•плллimm=тЫjЕbБXф—ЭfУnЗуrЙP*•шt:|}}х(JЩќ$$$D6< &009ъNњLz‹vюЕїŽДн@ 8qЮ(!oС‚|ёХlйВ…/Ој‚љѓч=ЉYwп}7W^y%їнwџљЯXЙr%/ОјЂ,rэоН›ввRFЭ%—\"ЏW wЏ=ж{^ѓe9їy*•Š;яМ“ЇŸ~š%K–pгM7yЄ$юлЗћюЛOv­]А`_~љ%п~ћ-_~љ%]tаџџўпџуКыЎ“—•"ГJKKхi_}ѕW]u•ќ)•Зїx|№AЎЙц>љфйyргO?ХхrqеUWyдL;оэ>G[Fї@б\§ѕМ§іл|ќёЧмwп}л=юЊ§­ГП>šwЄeњуњыЏчЩ'ŸdпО}f!ЭЭЭВ3rggЇЧ2’бCящяОћ.€ЇйЦфЩ“IKK#;;›ЇžzЊуђвЅKYЗn‡{щ@лqМЧКRЉфќ#їмsќБl6№Щ'ŸpЧwxЄ]шБsЯ=їАiг&–-[&„С`цЬ™Мѕж[ЬŸ?Ÿ 6єЉy:pЙ\TVV’››KYY™œв9qтDbcc˜њ-N=СССЄІІRWWGuu5­­­фххMXXzНўtQpŒєчъžЦ.еж“ЎпNЇ“ЎЎ.ЌV+---444ШЏššjkkihh ЅЅГйL[[›,6Y,šššd3@6­‘вs ƒA6аўп[мгыѕшѕz9њOzЙзх“jѓIяю/IьэЮкћНїпб[Аъя]умE9‡УнnЧnЗ{ќ-9ФvttШяЂ][[mmmВ…$фЙOяьь”#є$F#GLЪЂЊПП?Lhh(!!!В[q@@€GэУ#‰v§эGс(.'‡3JШЛшЂ‹ИыЎЛxѕеWЙтŠ+И§іл‰ŒŒdеЊUxyyЩN›))),[ЖŒ;яМ“[oН•Х‹SWWЧwмAHH~јЁщ‘••Х—_~ є‚џњзПШЬЬdєшбьйГ‡ЏПўZюџwоaњєщ$''“••ХкЕkШЯЯgеЊUЄЅЅЬЮ;YЕjаSяьГЯ>#--˜˜}єQvьиСІM›˜Зп~;oМё—]vwмq|ўљч nИсylR$нз_Э}їнG]]љљљ\sЭ5466Вџ~Оћю; Чhc§њѕЄІІЦеW_Э–-[xѕеWyійgЙыЎЛјўћяyєбGIMMхх—_zLvюмЩъеЋ(..–З-22’элЗѓйgŸ=.Пќ1iii>ЉяююіиWЅЅЅ|њщЇ 6ŒsЮ9‡ЂЂ"іьй#GЂ}њщЇшt:FŒAPPЧК^|ёE8Ру?NJJ “&Mтƒ>рПџ§/7оxЃ,P655БgЯй cЫ–-lмИ‘ДД4ЊЊЊиЕk—,Ђ}јс‡Ь›7БcЧВkз.Ојт  'кьѓЯ?'==ЈЈЈзшшh^|ёEюКы..ЙфyфТТТxц™g˜1cяПџ>mmm<єаCЬ™3‡3fpбEБ}ћv^{э5bbbHLLdЭš5ќяџу†n`љђхМђЪ+ьйГ‡лnЛiгІёяџ›ѓЮ;wп}—ЖЖ6ЎЛю:œN'ЋWЏfѓцЭlкД €њњzВГГeЁјыЏПfЪ”)ЄЅЅQTT$ауt;kж,†ЮюнЛeуŒмм\жЌYУјёу чїПџ=лЖmcХŠLž<™ЋЏОš­[ЗђТ /pюЙчЪnЙVЋ•ЌЌ,жЏ_пg=deeБfЭ ЧxхЪ•ЄЇЇIKK /НєџјЧ?„w‚ЬŸ?ŸeЫ–1gЮ6mк4 сЪЉЂЛЛ›~јТТBклл ‘MNf]P@pbЈT*ЂЂЂШЬЬ$//ЂЂ"JJJШЯЯgфШ‘ug&™+єїЄ‡ЛNЇSЎЛf6›ill”#іъъъЈ­­ЅККZ6JАZ­ВРчp8шььФjЕR]]-‹]юЕ6%CЕZ-GїЙ ~ю‘~^^^шѕzY№“Цы.њiЕZДZ­‡Јче'НЛПњCк/юцв{яHКююnКККфєеЮЮN9ВЎП;)zЎНН‹ХвЏ8зннУсї•Д-в>“і—$мљњњтччGPP,д…††JXX!!!Fy  4бюXŽ)@   зіЈФхrБbХ ^§u>L`` —\r ?ќ0~~~m7oоЬsЯ=Чž={ащtЬ;—G}дЃVк§їпO[[›ЧrУ† урЯў3 ѓ"##ЙэЖлxќёЧћŒmюмЙLŸ>НOєєDФHбqнннМљц›ќћпџІ  ___222јуџШјёућlяђхЫyѓЭ79tшAAA\zщЅќљЯюsГћќƒ%K–аааРФ‰YЖlБББьиБƒ§ы_}Цtљх—sСШџџ§їyх•WШЯЯЧd2ё›пќ†x@6>hnnцСьГžщгЇsщЅ—rЯ=їє™7iв$nМёЦ>гЁ'tбЂE}І ўіЗПёЯў“]Лvѕ™гM7ѕk|aГйXМx1|№555$%%Б`СЎПўzљ‡DVVoНѕVŸe,XРЦ9|јАЧtoooўєЇ?ёШ#єYfіьй\qХ§n›;_~љ%/М№ЙЙЙqз]w1gЮюОћnt:оооL˜0ћюЛ‡УСѓЯ?ЯћяПOUUQQQ\zщЅм{яНЈT*юПџ~ŠŠŠ˜={6їо{ЏЅXWWЧ /МРКuыЈЊЊ"""‚ЙsчВhб"9%љ›oОс§їпя3ОћюЛ>ј@Ž”0™LмvлmВчЮЏ~ѕ+9BдщtђЯў“7п|“ЂЂ""##ЙцškXИpЁUUVVЦSO=еg=ѓчЯ'##ƒG}ДЯМ .И€Ы/Пш‰ьлИq#oОљ&3gЮ<ъ> Ь;яМУу?ЮцЭ›Oъwuu5чЯ›ЧВЌО.л.—‹њњzо|ѓMВГГщъъ"%%…лnЛШШHQ] јS__ЯњѕыYЙr%ЭЭЭŒ3†K.ЙdРsѓебБдєКО хххМѕж[МўњыДЕЕqх•WђРШFO‚#sДдЧcqXuюsЙ›+X,х:mЕЕЕ466ваа@}}= rzЎ$zuuuaЗлћєДhК"ѓ$СNЅRyDёIяJЅв#ŠOjпп6Л‹vН#ьЄ—$МЙЇЩJxR{щ]{їсўИR„VЋ•гb§§§х”X“ЩDppАќ!з$”ЂЅmv-2:жуE ЮЮ”ѓл'ф рчБdЩ^}ѕU6oо< ‰ЬЯхHBžгщdЧŽ,_ОœввRТУУ™9s&W\q^^^gЬT Šиl6ŠŠŠxу7((( €ЉSЇr§ѕзЃгщњˆBШ;;8VGїм/IАrNГлэrš{š”žk6›х”Qiž{TŸ{”ZядUЉ_їБКПї}ч>яHбfН7щНїKчŽ$ШЙзљsЅ”c)ТаззWŽD4 F9-Vњ[j/НKб‡jЕNч!hЭ0h їh@p6pІœчЮЈдZ@ ќ|ў№‡?аааР\Рз_-;,Ÿ*œN'‡ЂЙЙ—ЫEHHIIIBФЮДZ-ФЧЧS[[K[[455*\ЩЯRŽЗfœЛ`&‰Iюэ …,МIбjннниl6ЙF\uтмџяўЗ{[ЩUrauЏAчч-' ю"œУс#].zНž   й]з=%з]“3їш@щ%ЙѓКзјгщtrjАћЛє’ CЄvRкЌєЗUшоїЯЙ–ŠыА@ ќђBž@  AўњзПbГйИјт‹YП~Нl˜s*pЙ\aЕZбщt„††%n‚3•J…ЏЏ/ёёё|ИЯwйjБєы~>иэvš››БX,h4š“в‡рјЌєЫ“‘ЦyДuіŽ|xŸд^рXщOœ‚@ ~‰!O јљљБvэZfܘС`р8i}љјј`ЗлщшшРjЕbЗлOЉлх/™ююnъыы)((ррСƒгииˆеjХщtЂVЋёѕѕ%<<œФФDFŒA||€€y.— ‡У!Ї@ЉPЛдNЅRyДгыѕ iнннrjДДN‡FЃёЈyшэээaB ЅcBO•{JАнnЇЋЋ ЋеJww7лЖmЃГГЅRщ!>:NyG38po+_ЉTЂгщ№іііp;•\*ЅToЉюšNЇ“ЗIЉTтуу3фьv;ххх˜ЭfT*ƒАА0}ѕŠ“ЙшnLа{њ@ѓ‚уЁЗ0,„b@ ќRBоІННПџ§яlиА‹ХBBB‹-"##уД)??ŸЇžzŠжжVљѕпџў—јјјг6&`(Уњѕы™9s&ƒ+ЎИbаж­P(HJJ"77—ЦЦFjjj(++#..nШо$INYYYьнЛ—ъъj&“‰ёуЧ“’’BHHˆ‡ЗcЧ>Lkk+ЅЅЅlоМ™ЈЈ(FŽ)GАѕоŸЧКЅvZ­–ДД4L&“,z) ЪЫЫЩЫЫЃИИшдЦORRzН^RТТТˆŽŽюГ~ЅRIHHгІM“мЖЖ6***8pрmmmдзз“ŸŸOxx8ЩЩЩЧБ)ППэеыѕ$''sщЅ—bГйP(И\.:::јц›oЈЎЎ–#D‡ Цјёу=вEЕZ-‘‘‘ђ>j8Z[[),,ЄЕЕН^Opp0СССЇ4еxЈž+@ „7D1›ЭL:•ššо}ї]’““>|8ыж­ЃЄЄ„РРРг2.ƒСРЙчžKcc#=є]]]Їe,СP'99™Пќх/<іиcƒ*ф)•J’’’0™L˜Эfъъъ8tшуЦУззwHКиJuёvэкE]]]]]јћћ“œœЬœ9s6l˜œ6kЗлIJJBЋевббСЁC‡АйlrMНАА0BBBŽЙя#ЅŠЉT*FŽIbbЂGЛН{ївии( yjЕš‘#GЪ)йjЕFCkkЋЧz•J%L›6T*эээ>|‹ХТСƒщшшћАZ­ƒ&œщt:bcc —ЗЩщtвжжFnn.ѕѕѕtuuЁгщˆ‰‰aцЬ™ђ5Q†ВбEGGХХХ”••aБX %..џ!ЛOg>§Eq-•Жї>žКК:š››љс‡(++“ыИСаК)ВйlTWWSPP@gg' …‚Цט1c<ЕZM`` &L ЄЄ„ššБйl:tˆддTL&г ь?ЅR‰Z­юS ЎwЪ,ќф k0ŽК^…Ђ'нRrбеh4јћћЃеj)**ЂИȘŽŽ:;;immЅЃЃуˆiСЧ‹VЋѕЅ„НSƒ5 ОООЧДMCЇгIKK {іьЁЖЖ‡УAHH‰‰‰CЖ^ рЬBчКЛЛQ(ЈеъzxдпљHJхЗлэшt:‘Š+‚“†ђ†(Ÿ|ђ чwаSќ‰'ž@ЅRѕ)„~КŠQ9С/‰Зоz ???.ЛьВA]ЏBЁРЯЯ””ŠŠŠhllЄММœ­[ЗŒVЋrпџііvjkkikkУщtЂRЉ&>>~Р(Ї€€bbb0™LВiCmm-ЭЭЭЧЩ|Ђ7šНodOF!јŸЛОc]ОПБ‹›№ОX,JJJиО};‹???тууILL<нCŽ›ЭFUU …‚№№p|||њ§ЎЫїпНЭfЃООž––ЙЬ€@ '!ф AœN'еееrQtЅRЩ#кккфКLЧŠгщ”‡ŽŽйљ№xhmm=ЎЯДНН//ЏЃn{яБЉTЊ~їѕёєЂŸйёnЃ@№syђЩ'Й№Т IKK;)ыW(“’’BMMьвКuыV ЃG–*ЩAєlЦсpШ"є<\бh4G­ Їеjхѓ‰ЫхЂЋЋKvЈЌHЛ“Ус ЖЖ–5kжШF‹E6>щююFЉTLRRООО}"OХ8=8NЪЫЫЩЮЮцћяПЇЛЛ›АА0ЦŽKBBТ5ўœYHч ЕZM@@fГ™-[ЖАwя^2227nЩЩЩ„††ЂбhŒвS(twwгддDaa!YYYьйГ‡ЪЪJЂЂЂˆŽŽFЋеžѕз-@ œ>†DюRuu5з_=ООО$$$Щ’%KpЙ\Ќ\Й’—^z €‚‚ўјЧ?rћэЗsх•WђзПўU^ЧЪ•+Йїо{Йх–[јЭo~УГЯ>лЇ‡УС’%K6lјјјpСpрРЙMaaЁGO<ё„цЬ™Уїпд§аооЮьйГ=вф.ОјbfЯžЭЛяО+OыъътЏ§+ФЧЧуяяЯuз]GUU•мІИИиc;ўєЇ?сrЙxђЩ'ёїїЧЧЧ‡G}єЈcиБc“&MBЏзуээЭмЙs)))9т2Ы—/'33"""№ѕѕeЪ”)Ќ]ЛЖпі]]]<§єгDGG—^z)………r›ќќ|-Z$oгУ?LII ГfЭBЏзуууУЏ§k9…эЕз^#<<ЃбˆЩd’ЃоИ\.оxу ’““‰ŠŠТппŸ‹/Θмм\v>њ(wнuз\s П§эoq8<ёФb4 aётХтцUpв)..цэЗпі8ž ДZ-У‡'55•№№pКККШЩЩ!++‹ттb9=t(м )•J”JЅМ­.—KЎЗt$œNЇ\пMZЯ™ъrЙhnnfѓцЭ|ѕеW|ѕеW|ѓЭ7ффф`ЕZбщtDGG“ššЪшбЃ=„Ђ_њЖmИ\.йГgйййдееЁзы;v,ЃG&88јtQ 8.”J%ёёёФХХбжжЦ_|СђхЫYО|9Ÿў9;wюЄВВВпкœTUUБ{їnV­ZХлoПЭ;яМУъеЋЉ­­%!!A6#Пз@pВ8ы#ђЊЋЋ™}є‘œRЊVЋ тЋЏОъ#ŒщѕzBBBXП~=ЙЙЙr1vwnМёFў§яѓЦopы­ЗвааРe—]ЦЙчžЫwп}Gjj**•Š   жЏ_Яў§ћ=.ђRџћпџШЩЩщї їM7нФ{яНЧыЏПЮmЗнFCC—_~9SЇNeѓцЭGЌoЇзыyійgijjbЮœ9@OдVЋ%<<ш /НєR6nмШЪ•+™;w.eeeœўљLœ8‘-[Ж#oЧ–-[иО};sцЬaётХьмЙ“п§юw<§єг<ѓЬ3<ђШ#GŒ>лО};ГfЭBЅRёілo“––ЦћяПЯyч'G іцБЧу‰'žр‹/О`юмЙЈеj6nмШЏ~ѕ+цЯŸЯЮ;=Ђˆ—_~9_}ѕ|№ПўѕЏЉЌЌфт‹/fђфЩьиБƒјјxдj5&“‰ЏПўšььlІL™ТЧЬ•W^ЩЭ7пЬЋЏОЪЇŸ~J{{;\p+VЌр‰'ž ННG}”{юЙ‡   ўяџўЯcМ .dщвЅМњъЋ,XАГйЬЅ—^ЪЄI“иАa™™™јћћ“““УgŸ}F`` , ММœeЫ–QPPР3Я<У§їпбhфж[opŸ ?—E‹qяНїЪч…“IHHcЧŽЅООž††š››йЕk:ƒС@ttєpТTЋешѕz”JЅQзббХbpЇг‰Хb‘гP ^^^шt:9ŠКw4u7–в4wзЦS!–) SЅRЁзыёђђТd21vьX222HHHpн(TЏOˆ€Ч‡УсРfГБwя^ЖmлFaa!Z­–˜˜Ю=ї\bccE4žрŒAЁPШч“ЩФ9чœCzz:љљљфффpј№aЖmлFzz:ГfЭ"::šжжVљIGGддд№нwпБ}ћvŠŠŠАлэшѕz’““™:u*ОООBФСIхЌђ~џћпSRRТ+ЏМТЈQЃ1b/Нє—\r ёёёФХХёР P(њysцЬaЮœ9иэі~kЩНћюЛМїо{ЬŸ?_YL&K—.eќјёмyчlнКUюCЅRБџ~uЬž=›йГgуp8xјс‡ћєБbХ VЌXСМyѓИэЖлф>^~љeЮ9ч,XРіэлм*•ŠДД4ъъъфiуЦѓ%—.]ЪкЕkЙюКы˜;w.111<іиc\wнuмqЧЌ]Л–˜˜xрBCCйО};ЭЭЭ,_Оœ]ЛvБbХ ’““(тЙ\.nНѕVl6ЏПў:7нtаcМбааР[oНеяrRф[mm­œ;kж,.ПќrVЌXСз_э!ф-]К”5kжpгM7ёы_џ€ШШH^xсцЬ™УТ… YЙr% <№РјјјЭж­[yяНїИікkхЯ'::šѕызs№рArrrфtW›ЭЦŸџќg–.]ъ!ф­]Л–ЅK—’žžЮwо єv‹/&==ыЎЛŽММ<дj5їо{/3fЬрГЯ>ЃЙЙ™––жЎ]+пx юНї^–-[&„<СIcлЖmdeeyDщžLT*ёёёЬ˜1ƒњњzіьйCUU[ЖlСхrqйe—xж‹yR-8///ЌV+ннн477S[[KrrrПЫtvvЪ…е%1 rZ—{z˜гщьї‰”’ыžжЋRЉNЊсˆRЉ$((ˆ &ШiГJЅН^O`` 111„††іIЉUЉT}jXuwwї‰\t8В *ЁVЋЯњуhАБX,ьпПŸеЋWSTT„гщ$22’yѓц1jд(сц+8cQЉT 6Œ3fА~§zъыыщььЄЈЈˆŠŠ 6mкФШ‘#ЉЏЏЧjЕbЗл9x№ Я<ѓ хххджжzœ7ЃЃЃIOOџХЦ рьцЌN­­ЊЊтгO?E;‰9sцШVяZiGњЁ?аМ_|€+ЏМвcњиБcбjЕlлЖƒž”>RRRащtьиБЃOКцёВtщRцЯŸя1}оМy( ж­[зяvdeeqѕеWЃзыЙ§ілйЛwяEEш ђђђP*•ВР&qу7И\zz: …ЂЯ DXXђ4—ЫХпџўw я~ЫШШ`ѕъедддєйІ№№pЎОњjyzHHˆ,њ^{эЕ5ы&MšдЇo€%K–=ћЯДД4"""8|ј0_|ёEŸО].>ј GєШєщгžДGрdрt:љУўР /М€ЗЗї)ыWŠ№™7o)))јњњRWWЧіэлљју)**ЂЃЃу”чtрууCDDaaah4\.5558p€ІІІ>B•гщЄААУ‡Ыщў*•ŠииXхњzюХлm6ЭЭЭиl6(<›Э&›@Ячсчч‡NЇ;ilJЅ’РР@Ю;я<.М№B.Ојb.Кш"fЭšEFF111§жХ“J0Hзm‡УAKK fГйЃ][[---бŠ>>>ЇєИ>“‘ŽП­[ЗђЩ'ŸPZZŠнn'>>žYГf‘™™‰ЏЏЏˆpœHQxНЃфHIIaкДir­N—ЫEgg'MMMьнЛ—’’ЌV+”––ђ§їпS]]MggЇGЭНqуЦ‘––†С`№ˆnрdpVGф}їнw8NT*ѓt:!!!”••§ь mccЃ]зииШ† фyЅЅЅђЭбЎ]Л9rф ѕбддФО}ћњэЃЌЌLŽВиЕkЃG>Ё>ЪЫЫхкtQQQѓŒF#FЃ‘––О§іл~ЗУ]ќ;чœsŽкпŽ;€.((Шcо˜1c\n§њѕДДДDaa!›7ofяоНЌYГРу†ї№сУВИV]]эБп$бгщt’ЭХ_ьбЯ№сУћDЄHт]яЩaГЗиАeЫ яў„žHЧЊЊ*6oоьQЗz~ќѕ~Њ+ѕбоооg]С`А|љr4 ПљЭoNiП’Ш2bФfЯžZ­&77—ъъjЖmл†нngвЄI$%%a4OщиN:ŽАА0Ю9чš››innІЉЉ‰ܘ1c0™Lh4l6еееlйВ…ТТBl6jЕšрр`FEPPjЕbbbd!ДЕЕ•‚‚іэлG||§єггrƒЎRЉ0 Œ?‡УBЁ ''Gѓ:::АZ­Œ9’   “šіy:PЉT’™™IEEљљљ˜ЭfЪЪЪиАaUUU„……ЁеjБX,”––’››KSS*• “ЩDZZУ‡Ч`0 T*1 Œ5Šмм\yџѓПџ§ЄЄ$єz=---PQQ!Л‡……‘рQkяd z~~~DGG‹йlЦщtRRR‚FЃСl6€Хb‘ХIЩ§622’˜˜љˆ /NЇ“ЮЮNJJJиЕkYYYr:mll,“'OfтФ‰DGG OpFбпё*§–ђѓѓcђфЩЄЄЄаииияoВ#Ёбh?~гттт0˜ЭfђђђњђОћю;туухЫуэ#66VŽˆЫЫЫыWШлВe БББDGGїЛ]G#&&†ИИ8JJJ(//ї˜g6›e1jкДi}– 9юўЄЯЇІІ›Э& Џ999§.ѓЮ;яА~§z222x№С=цеззїi?zєh4 нннфххѕ+фmмИ‘ддд~ЪŸЫДiгXЗn]Ÿ§ =)бRрtRQQСыЏПояЙчtрччGZZFЃН^OVV­­­ьпПŸššЪЫЫ™1c111ч3…B^ЏgкДiВcЧіяпOmm-6›ЎЎ.ЙJЅТлл›ИИ8вгг™0aёёё"‹FЃ!44”K.ЙЃбHVVхххrДА9ЂT*ёёё!66–iгІ‘™™yмчtЩXтH7БНч9ŽуОщU(DDD0}њtдj5[ЗnЅЂЂ‚ііvl6И\.T*ООО„……‘‘‘СyчGDDФQEЈоc:оˆС3—ЫECC{іьa§њѕrКЖ^Џ'>>ž‹.КˆЬЬЬГ‚3šгќЇOŸЮЮ;),,ЄЕЕѕ˜ѕііfܘ1Lœ8ёЄќ†` Юj!/##ƒ1cЦ““УлoПЭSO=%ЯћшЃМRKKK=ІgeeЩ5Ям8ЕZЭ7оШ’%Kxх•WИљц›=вv+++ЙікkйИqуQћиН{7п}їн€}МєвKМњъЋмrЫ-бf•••\sЭ55рТ§ЦЄїMЪТ… YИp!ЋV­тЗП§­<}ѕъеИ\..М№BњxвђGrЇˆYГfIee%~јЁ‡СХoМ!џэОЄЈЛоiЏ•••ЌZЕ №ŒД4 \yх•ќћпџfЩ’%\~љх7r‡т†n`їюн}ЖЉП8iZяcg e.\ШКuыјт‹/xќёЧхщйййTUU‘””фQ[№XћЉ‚СdбЂEќюwП#&&цtEFЏз“РЏ§kBCCйЕkхххдддАiг&*++™0a)))DDDœUQЌ:Ž‘#GBFFUUU444`ЕZq:h4||| “ 2PЉT}Ю *•ŠШШHцЬ™УшбЃЉЌЌЄЎЎ›Э&зѕѕѕ%$$„ЈЈ("""8Њ`c2™8чœsф7FC||М и­V+Л[,дj5aaaјјјЗ8ЄRЉfцЬ™$%%Щлджж†нnGЅRсууƒЩd"22’шшhйd Єš}щщщ„……бее…ЗЗ7III'T†уLЁЙЙ™~јььlЙˆПЭf“?_)хаЯЯODт Ю>Ш‘oёёёdff’ŸŸLЕ”J%!!!ЬŸ?Ÿшшh9o0›Й O TЛЋ g …‚ёуЧѓўћяѓэЗптыы‹бhdнКu<љф“h4ЌV+з^{-IIIђraaaМёЦ”––RRRBgg'+WЎdбЂEЬ;—мм\Ьf3#FŒ@ЃбряяЯ”)SXЛv-`ыж­DEEбббСкЕkЙс†ИяОћИ№Т х>BCCyу7(++ЃИȘЎЎ.V­ZХ§їпябЧ№сУбjЕјћћsюЙчЪ}lлЖШШH:::XЗnз_=їмsOУ†одззѓЭ7п№ёЧ0yђdŒF#ооо( 222ШЮЮfхЪ•Œ5ŠQЃFQRRТ-Зм‚Ÿ}іFЃ‡УAUU~ј!YYYЈT*fЮœ‰NЇѓ„JЅbј№с|єбGlиАA.xўТ /››K}}=vЛ]оўЈЈ(, }єЅЅЅсччЧџўї?ўяџў3f““Cmm-TTT’’ТдЉSљьГЯиП?{їю%22’ііv>џќsnОљfž{ю9&OžŒУс ВВ’џќч?ьлЗЕZЭЬ™3ёѓѓЃЃЃƒММ<^{э5кл뉉‰aєшбјњњRSSУкЕkYЗn‡ƒѓЯ?ƒС€——‰‰‰˜Эf>ћь3ММ̘2e ЭЭЭмtгMДДД№љчŸЫ”Нз3kж,y=ЕЕЕlмИ‘Я?џ€ЉSЇтяяVE# N;vь`ётХќч?џP„9кллyї?џсЂлo;Ёх ???хК™­­­466вввBSS---twwухх…VЋ=+ФIT2 ˜L&ТТТˆŽŽ&!!ЄЄ$’““IJJbиАa„‡‡учч'‹T§нDJЦAAA„‡‡ИЎШШHќќќŽIеh4Grr2У‡'22r@aNŠњ‹ˆˆћ6lAAAЈTЊуКљuH  $$„шшh† Fbb"ЩЩЩ$''“@TTЈеъЃіЁRЉ№ѓѓ#..ŽЄЄ$‰‰‰С`0œЧ•„Ус ННЂЂ"ЖnнЪж­[9pрЕЕЕИ\.˜ћЌ\ ЏДД”[oНЕЯzЂЃЃyћэЗ:w6lиРƒ>(зlš7ooОљ&3gЮФсpрыы‹ЩdbнКuќэocётХддд бh˜9s&=і&LрюЛяf§њѕЄІІђвK/ єk<ёФ|№СrнŸŒŒ }єQцЬ™@aa! ,ш3ОoМ‘††VЏ^нgо‡~ШЕз^+ЛKddd№єгO=tџќч?yўљчЉЏЏЇЋЋ‹ѓЮ;чŸо#КqоМyrн+‰ёуЧѓмsЯqХWєЉГ7jд(–,Yr\ћZ pЧхr1uъTюМѓNЎНікA]wuu5чЯ›ЧВЌі}ЌHЉdїюнфффШBППП?‰‰‰ЄІІ2|јpТУУ1ƒ*J g‡ЋеJ]]ХХХ|џ§їфххQSSƒУсРппŸИИ8233IMM%22ђ˜Ь‰ЋЃcЉЉЌ„-щZЄP(ЈЋЋугO?х•W^!77wРe ЃFтЊЋЎbсТ…xyyЁT*ߘ›ПAСх18„6[ œ§œ)чђ!!фItuuбнн-ЇeŽ3f@!OЂЃЃ…BqмЉ5‹NwL‘ ’xs2ћ8Qккк№ѕѕ=%tGGJЅђ˜oРлллёіі>юHііvєz§i‰А8Ÿ™@pЌМїо{,[ЖŒэлЗњw|0…<‰ŽŽ*++ЩЪЪbзЎ]TTTаккŠЫхТh4’ššЪјёуINN&,,ьД}Я‚_‡ƒЎЎ.Ьf3%%%rtzqq1.— NGhh(ЃGfъдЉŒ1ŸA;'!O№KGК9NvюŸ цВ IDATмЩ›oОЩ{яН‡УсшЗН^ЏчТ /фwПћгЇOї‡ ""O œЅœ)чђ!Ѕ&hЕZ‘шXn$OєitяnGтDыяO'Šф,{*8о}},юƒƒЙм`p*>3рXАйl<ќ№УМїо{gЬKr,ˆˆ`єшбlйВ…нЛwSVVFSS›7o&77—‘#G’––ЦИqу>ЁžСй€УсРl6sша!vюмINNеееttt=щ)))Lš4‰qуЦa2™„Ё…`ШЂRЉ6lгЇOчЋЏОЂЁЁЁOЦєdŸЄЇЇ“ššzF)Сђz#]œћЛH СйЬsЯ=Ч”)S8їмsOїPŽ ЅR‰NЇ#11ЃбHrr2ћїя—k|577Гwя^ЪЪЪиЛw/ЃF’ыЗmЕЮ‚шььЄЖЖ–У‡“——ЧСƒihh НН‡УA@@ ЄЅЅ1rфHљћ!D<СP' €ддTІM›ЦW_}еЇЌ‰FЃ!--єєtќќќЮ0ѓБAДЯ8S6Y ЮR†ЄїЪ+ЏАeЫ јѓŸџЬІM›xњщЇ…y€@ 8ыЉЌЌф•W^ёpk>“P*•шѕzY| #11‘ММ< Љ­­ЅММœІІ&***8x№ У† #>>ž˜˜ащtBДœUtuuбооNMM ХХХQRRBUUMMM( ‚‚‚ˆ%))‰‘#GK@@Р дТЮT$!ЮхrЁеjeЇя§ћїcЕZ=Œ/"##IOO'99Yv ?™є^ћЯгЯ†L5%@ 8ы’B^FFУ‡ч–[nё˜.вЏСPрOњwоyЇlsІЂRЉРЯЯ˜˜тттШЫЫуаЁC”••баа@qq1•••>|˜˜˜‰%<<œ   ц ŠЈ~B2АhiiЁЎЎŽђђr (**ЂЖЖ‹Х‚JЅ’‹“““9r$ ВSМ@ №Фh42eЪжЎ]Kcc# РOбxcЧŽ%44єдEуI] šз{ЬBр‚3!љ .33ѓtA N {іьaУ† фччŸюЁ *• ƒС@jj*У† ЃЌЌŒмм\іяпOyy9---TWWSUUХоН{‰ŠŠ"))‰#F€ЩdBЏзЃеjQЉTBдќЂq8twwгббAkk+•••фчч“ŸŸOII @ш`4 eФˆœsЮ9$&&$RЬCŽc1ЄP(ВL||<гІMЃААPŽh5Ь˜1ƒФФDt:]ЏhМ“шў№3t6ї1ўДэBИ‚3!)ф СPeсТ…<§єгЇдШцTтыыЫШ‘#6l“'O&//={іŸŸOMM VЋ•У‡STTФіэл‰ŒŒdј№сŒ9’јјxBBBD‰С/ЛнNKK хххфччs№рAŠ‹‹ijjЂГГSОiїїї'11‘ддTRSS‰‹‹CЏзЃT*…P-†щгЇГsчNŠŠŠHIIaтФ‰„„„єГ„АqСЉCy@0DјрƒhooчњыЏ?нC9Љ( t:!!!јњњ’@ee%EEEфччS\\LKK fГ™ŽŽЊЊЊиГgaaaФЦЦGLLŒММH?œ.œN'477SYYIII‰œ.оддD{{;И\.Й^drr2ЩЩЩђ1l0DMHСТрЄ|)њЮѕSЃЛєlуRќ4’ИaёdN˜Рс‚š››™7џ"ЃЂаhu=ыQ(pN@с6іA—ём#џ~ŒќщПЧо[я§r,QЁ@ јe"юN`аббСŸўє'–/_>$nш …œZшыыKpp0БББŒ9’’’JKK)//ЇЎЎГйŒйlІЎЎŽ’’rrr %<<œˆˆBCC1™LјћћЃгщ„А'8i8NКККАX,466R__/Ї…WWWгаа@ss3‹Їг‰ЗЗ7бббDDDM\\ббб˜L&QџQp2И)ŸksћИpГ=џw8]8].œ.'Z/=ЃSЦ2ar •U•dNž‚жл‡.‡—уЇеіyЎŸжэъћS(…ы'ЅАЇ%(\( (PќјЎTрQOЁPШу’Wцr_Ы€тžћпsœЈ0(‚г‡И‚!РтХ‹ЩШШ`кДiЇ{(ЇЉ†žС` 22’ФФDjjj(--ЅЄЄ„ŠŠ ъыыiiiЁЉЉ‰КК::„бh$88Xє""" ТппƒС€ЗЗ7^^^Ђо˜р„q88, ‹ГйLSSЕЕЕTTTP[[Kmm-MMMВq…^Џ'$$„РР@ЂЃЃ‰ŽŽ&&&†ШШH‚‚‚DjИрЌЄ? J1РtрtЙpЙ~”и\="ЙгсФсtтp9Œrsсt — ЇнУщРсtтќQмђ №'uмxТЃЃ№ѕїЇСмŠВ­эЇŽ%Mк pѕШkю’˜BЁ@Ёш™ўгПJJP)Ј”J”J*Ѕе)№ŠžQ*@ЉP§иF‰BЉ@ёуѓ8% ” EИїЃљЦБЪЁН#ѓ<іa?тžќр—ƒђр,ЇЖЖ–—^z‰элЗŸюЁœvT*’œœLkk+UUUPPP@yy9 ВЈвииH~~>:"##‰ŠŠ’Ѓ ЄШ')ROЃбˆ:d‚~q:И\.vЛЮЮNЌVЋlXQ^^NEEееедддШQw*• FƒПП?ўўўDDD0lи0IHH#EХ1'8ГqѕњЋзём[0ћё?N8\N\ЮaЮ8Nьv‡—Ы…г ЛƒЎю.:ЛЛщюю–ПNWhз#ЊлБл=Ђпгv'!›ЈmhР‰ …›юхь%›Й~œ]ч)цЙ ` PЂ%Ј=JЅBЅRЁVЊфыˆBЁ@ЉRЂеhбj4hддъџЯоyЧGQчџџ93лВщ# **ш, Šын‰bС.іћ)*"žНЃˆЅ‰ ѕTPOЄ(ŠVNE№щЄ’ВйО3ѓћcv&Г›Mƒ@ђy>“ьЮ|цѓyOнзО‹‚ЂЫYСщ0ж3…?I2Ф=Y’ я@Y7,‘ЄдъЇ$еМзЊѓ  С!oeўќљlнКЕQыДoпž .И€E‹Бiг&k™$I\qХx<žы-^МиJlЇSЇNœ{юЙ5цЋЊЪТ… љђЫ/йВe ’$qрrЮ9ч0pрРVі‰DXЗnGq„јТ#hQќуџ`фШ‘tяоНЙMiQ8ђђђШЭЭЅGј|> љѓЯ?­‚;vь ЂЂПпO    €хЫ—уёxЌŠ ]ЛvЕ<Ѓ:tш@VViiiТSO`Ёiсp˜`0HII [ЗnЕ„Л-[ЖXљюbБšІYыЅЇЇ“ŸŸOЗnн8ьАУ8фCшиБЃ%оЕжЯK 5677лніZг Ё.ЊЊhКN$!  бT•˜ЊU#"бˆс]э’=ЯЌїRќЕн N–yВŒ;=7^єxXЌ^‡Я›”h~BK]вЋъК!Њ:бxœЎ!:j оx–јF|уС§dI–q;Ин.\NŠ,уp8HKѓцёрv9‘uХ!сPгГ.nХю|Sтž@ 4/mFШЋЌЌ$##Ѓе~щ-//'''ЇСэљхОўњk~ўљgЪЪЪшкЕ+}ћіХщtRZZJII ызЏЧяїаГgOKШ[БbѓцЭcХŠTVV№гO?1uъдc}џ§їЬ˜1ƒЭ›7[ѓ:wюЬ№сУky_§5#GŽЄЈЈˆ#F0x№`ЋЁC‡ђџїL›6>}њ4bяьBЁ@J1рВЫ.cЮœ9м{яН<љф“{г4 V~§ѕW,XРъеЋ›л”‹$I8K€ыаЁН{їІЌЌŒ;vАmл6ЖmлЦіэл)..ІЊЊŠ@ `!иИq#iiidff’““CћіэщаЁљљљДoпžММ<ВГГqЙ\–Чž uв‡Wгл. ВsчNJJJ(..ІЈЈˆ‚‚ЪЪЪЈЈЈ ‡ …BФb1$IТыѕ’››KЧŽщиБ#;wІSЇNьЗп~dgg“––†гщФсpˆ‡hAЋEKaЦlžЧzќЕІc„РЊ*šІу…‡УDcQЂБЁp„H$bxнiq:MCC'žоЮЇ t†^'ХНеlvдд 1ƒb5kjAндд$ЩZFŠАT{_‰$јчХ=ћЊ…:Iв‘d%О‡lU7Lэ/nДс…Ј#ЉQ5D Вхз“,ЁЯзu9Инn\NN‡‚лэФуёрP†РЇ(($ |ё<|Кn;BI…6@а|HzЙ#чччГbХ :vьимІ4šP(DFFБXЌбы~№С\tбE€с9wЦg$,ƒ<№РL˜0N:БmлЖ„хkзЎх№УЗоП§іл\zщЅ5Цбu+ЏМ’Зоz‹П§эo|№С5VчЬ™У%—\BзЎ]љт‹/шж­[Тђ•+W2hа ~јЁ%ђЕюОћnђђђИїо{S.?ѕдS-Ёrњєщ{й: 5ƒ т’K.aфШ‘{uм;v0шмsyщ??І\о>zЬЂ>ŸђђrJJJ(,,Є  €ттbvюмiˆFЃИ\.М^Џ•“/;;›œœЫѓ///ЌЌ,222ШШШ -- —Ыe…T ZКЎ‹ХˆХb„B!+DЖВВ’ђђrЪЫЫ)++cчЮ”——уѓљЈЊЊТчѓ‰DPUY–ёx<жљбО}{ілo?KЮЭЭЕŠЕИнюV{~\кх@ ’О[к&іЛОЏiFоʘЊ G Б.#‰ŽDPUH,J,ГђзЉЊ1iК†nжŒ$УУЭЈda„’ЪM—л­)ѓУYеbSјФYо~ЩЎ}ЦŠЉ:УОg­А_]7„AIA‘%ХaфпSd#\пЉ8p9xмnœёдFouЎ>гŠjЙЕквІёэ‚–EkљЁДMxфQ\\ммfь2kжЌAUе]Zзю=цѕzk,OKKуйgŸeХŠќ№У5–ччч‘‘AUU7оx#}ћіMїР8сЏЛю:оzы-ЎЛюК"оŠ+ИтŠ+PU•Зп~Л†ˆаЛwo^}ѕUЮ;я<†ЮђхЫSЖk.ўїПџ1pрРZ—Пїо{,YВ$e8Б@аЬ™3‡’’ЎЙцšц6ЅUтrЙpЙ\фццвЅKЂб(UUU”””X^VіJЂ•••VЎЯчCUU$IВФНœœKœЩЮЮЖ^gee%ЯpЛн†їD\р“Эч­ф‹ХО‚ххЏ$‰D‡У–З]UUU‚xWVVFYYхххжќp8lNЇ“ДД4ЋXJvv6yyytшаŽ;Zо›999ЂˆŠ еR[ё Ѓ…Њžv‘ЈJT5ЛH$J8% ‰F‰ХbD"†їЊk5њ“$йшQ’ЋuЄ:ђМ5ХНsмМѕ„qLg=lqЄВ!СХа|k„ыqЯ>MгˆЈ‘ъFqIЖ xІЈg„фК\.7.‡‚гixюЩ’lжЈіLо @ ь%к„їо{я5З ЛХžА?‹БeЫ:ш ЎОњjОјт TUMљ№0qтDnИс|>У‡ч‡~ЈQЏsчЮpР5ж=z4С`3Ю8ƒ~§њеjзЙчžKЏ^НјэЗп3fL‹9vХХХ,YВЄN!/??Ÿ‹/Оx/Z%дN$со{яeђфЩBhLAЮ^(#ЌJЗlлЖТТBJKKёљ|"‘ˆхеЗaУt]GQмn7^Џ—ММ<кЕkGnnЎ5ЕkзŽЌЌЌqЯюЙgŠ{і„шBшk8і|Yf #ŒOK(F ……Bј|>KЈ3ЇввRvюмi vсpи:ЖцфёxHKK###ƒььlђѓѓ­*ШљљљVdQЌBАЫд(\а &$‰PPэЏЅi†xЇiбxС‰`(„Џ*@(" Ž„‰Хтv€Œ$ХМЋ?ПъКFZОw5 ОжЛQЖ0рDбOБN ЛgЁІC(#‰uuЃЅЂШИœNв<Мо42М^в<уЧ-‡I"Ж+зє*Lq.R`?ЖbW ‚]`ŸђжЏ_ЯИqуšлŒ]fљђхМќђЫMояЏПўЪР ƒVШ­ЯчK™‹oР€<іиcм{яНЌ\Й’лoПiгІ%ДЩЬЬ я=;+WЎdётХœuжYѕк6tшP~ћэ7цЬ™УІM›8№РПMˆЊЊŒ5ЪЪ‘'Д^xсŽ<ђШЂО/сt:-КЎ]Л^&‘@€ђђrvьиaMІgxyyЙ%юEЃQќ~?%%%ее eЗлЧуСыѕZž{Ії^nn.999жИщщщИнnœNЇQэас9јъРэЂбЈѕпє ,//ЇЂЂТ ­ЈЈHŸƒFžЎxЕ™@пьзс0ђPeee‘——ЧўћяOЇNшиБ#:t ]Лvdddрѕz­wтX іEt@ЂЊF(ХчїуѓWЫС ‘H$ю1ffƒ“d]j]Ђ\ЋЦђd4ФR)žOгtbЁў`ЪЫ‘eЇгAšЧCFК—Ьєt2вгIїЄсRЁC A3АO yЃFтѕз_ЇММ€1cЦXсЅ#FŒрф“OЖкўљчŸ<ўју,^̘H$ТБЧЫ}їнGџў§<очŸЮc=ЦкЕkщаЁУ† ЃK—.,^̘Зоz+ЁэІM›Ќё‚С Нzѕтž{юaа AV›Ы/Пœ>њШ*Fqу7ZЫnЙхŽ:ъЈЦя”8Ÿ~њiТћ:№ёЧзZШŒ§їеW_Бhб"ІOŸЮ)ЇœТˆ#ЌхцIђƒЩ'Ÿ|bНNЩMХa‡I .LиюкPU•3f0sцL6lи@ЇNИьВЫИуŽ;pЛн”––ђўћя[!P]КtсœsЮсілogйВeddd0|јpюПџ~ы<™?>wп}7ЋV­рЃ>bуЦ|№СмsЯ=Ь›7?ўјƒŠŠ *++9уŒ38ћьГkи7}њt^}ѕUЫОЫ/ПœQЃFсrЙ#|Юœ9жCфСЬеW_ЭO<СЛяОKee%Чs уЦЃWЏ^ѕюAлЅЈЈˆgŸ}–oОљІЙMiH’dy`™с“йййtьибђъђћ§TUUQVVFII ЅЅЅVцЮ;ёљ|„B!Kм TTTPTT„#њdў7…>SьЫШШ ==нšМ^/iiiжГ]Њp]Y–QЅUŠJЊЊZUэufо:s ƒƒA@ПпoMfс’`0hЕFЃ B_,ГЦ2ЕЫх"##У —6ѓЖkзЮ*nb Oм“ХсpXћ^ hJЌЂІёqMэ UkNS3 T’ ёNг‰DbјUTјЁ0сhŒhМ(…!рUчЏ3гкЉэ${З лЖЏ“|Ьідvз:ŽЎWяxtIAпЊTtДXŒЈп?Єtgn—“4Зс­—žц%#= ЗЫeхе“S!H 9-ЛФ>-ф 2„ў§ћ[ХHnn.ўљу?2dШzїюЭ_|Ann.wп}7'toМё—]vYНc§ч?џс’K.aцЬ™œtвIlкД‰‡~˜|гO?=ЁэВeЫ2d‡z(ѓчЯ'''‡'žx‚3Я<“щгЇsнuзpСpт‰'rЫ-З$ˆ|ћэЗ_Ѓї‡ЯчcѕъеЬ›7/Ѕ—тyчWчњВ,ѓЦopєбGГcЧnКщ&Ž=іиzХЙп~ћЭzнЎ]ЛzэДЗYБbEНэUUхЂ‹.тгO?eжЌYœўљ|їнwжМE‹сѕz ƒ,_Оœ/Ој‚ѕыз3`Р&NœШUW]Х7оШ›oОЩSO=ХїпЯgŸ}†гщЄ[Зn<ќ№УLœ8‘oОљ†юнЛ[ЧСДsэкЕЌ^Нšїо{ЪЪJrss„МX,ЦАaУXИp!ЏПў:чž{.п|ѓ У‡чгO?eсТ…ЄЅЅсїћљѕз_љьГЯиИq#љЫ_˜3gNЇ“kЏН–Я?џœљѓчѓэЗпВrхJКvэZяОДMxрЎМђJKь=ьЂžлэ&33гђ3У5MЁЮє3№љ|Vn5Sp2л™b н ЬєР3sљй'S№sЛнVA SPВчрK^ЧсpX‚“йП=TД.аžЧ/YЌВ‡ВBЕ7›)Фй'{ˆkђ‹Х,q-ZЙыьљы’ЇPМтЅН­}2‹VhšfmЙ_333-AЮ,Pb2ЩЪЪВ&ггЮO].—ЕѕаBC[;Л.и %Ф“Э5фxHеkFUpФ—ѕƒјA‚Ёсh˜H4f„ЬBјр:ЧЙх–[ЈЌЌL№Мг4ГЮ:‹X,Ц_|@  gЯžlлЖ5kжаН{wРЃzєшСЖmлј§їпщвЅ ›7oЖBKwхPЭ›7ЏVЮуёXЁЕЕQ^^Nnn.kжЌБЛ/Пќ’СƒЃiН{їЖђх“ŸŸЯњѕыізiЇЦW_}РЯ?џLпО}ыsсТ…Vю…^ШћяП_gћёуЧ3fЬnИсІNjЭєбGyшЁ‡ИуŽ;xюЙчЌљ“&MтЖлnрЅ—^тж[oŒуuђЩ'ѓэЗп2aТюМѓNkЫ/ПœйГgѓф“OжZЕіВЫ.уwосБЧуўћяЗц?§єгŒ;–›nК)!Lњс‡ц‘GaєшбŒ?ОЦі8NFЭ“O>iйwъЉЇВtщRюНї^kО@`gеЊUœvкiЌ^НšМММfГc_ЈZЛ70)Sр3+›šеr+**ЈЈЈЈ!ъ…B!+<зќF-1ЬЩLaб•R NЇ3a2Х<Л'`ВРW[ЎОкrі%‡Ёšяэт]В`gўOяЬџі)YœГ{шйї…iЋЙЬm6_›žŒцdЅ0 ’˜B^zzz‚Ї№ВЋzЋжк’љ[ ў[0)ѓСЕЂёvд/фщRѕ ]79#п]Œ`8BU0№‚!‚с%ќ‚œКHƒ йIYPЃЮжёsСќќжsЮˆа•qЛœx=iЄЇЇ‘щѕ’ž–FšЫ…Ыщ@‘•x%]jєZЪu$к6­хДO{ф5„wп}—Э›7гЋW/KФЃZс9чœУoМС‹/ОШ‹/ОXg?………|їнw,[ЖŒу?0<yфžzъ)ЋньйГйМy3ДD<0<+ РoМСЌYГx№С›xKсЛяОЃgЯžќєгOŒ1‚ЪЪЪ]ъчєгOчўћячбGeхЪ•мvлmLŸ>НжііjЙ ЉО‹ХRЎ› UUyійgУƒбЮ\РC=ФЫ/ПЬƒ>hхўs:ЄЇЇsеUWYэeYцškЎслoПeвЄI B^C0уdћ&L˜PЋ}<ђ“'Oц +++С>—ЫХC=”`пЙчžЫвЅK­P_ ™;юИƒ‡~ИYEŸѕкЌžjЯЕ |vAЫœo†Š&Oј0eЯнgm.ЗПЖЏSЉЦг4Ѓ2Ѕ]№Kік3I+YD4EKЇгЯэT-晉^ЏзчЬ)##УђА3ЋлХОжђХЎ5Вwe§}7Ы|гЃКэ/˜W_Lз‰EUBс•UUь,ЏЄВЊŠH4†ІышRњh+ПŸIћіэФ}$˜ќы_џbЫ–-\§ѕЭmŠ  P…ДД4ЋBxћіэ0{ЈЉщ‰fЯЧgцЋЊЊВŠ5иѓХ™yсЬАгфЪ­vЯЙX,V#<жdwОjѓЬД sіТЩо…і|І7™09 щMчѕzМ№ЬB!ЩЁxЈмWйw…МІDЗ§з˜ІS^щe\p IDATcgY9e•T˜њК$ЫHВTыžўзћеiєjЙn$I‘Aз Хb„JK))+#Эу!/;‡§кЕ#+У‹K‘ЯИЧД@ N›ђvьи`хЮГcц@лО}{Н§Œ5ŠхЫ—ѓЯў“?џќ“™3g2sцLœN'Я<ѓ ЃFŒ"K–,aј№с5њ9ц˜c”Gnw9іиckЬ5jнЛwO ­ EQ˜={6G}4%%%м|ѓЭЬŸ??eлAƒY!Џ[ЖlЉЗяЭ›7[ЏO=ѕд:лXЏ“H3WQ0ДŽГќќќѓьчAQQбn yuйgV› ‡У)эK%Јšо/vяŒ4wп}7'NФсhѓЗі}’dqЩє:ѓx< žkЉrЫ™SrhЊ=tе“_›mЬЩ.ј%OЩžvі4Y–k„Икѓэй_л‹{$OіАрфB ірф0рфp`!иЕZйюOyОь…JЋ{c7YзЌ,yэt`(LE•eTњ§„Ѓ1bЊŠІKшВпі^vzъdўтzk9дw$Rџа"еxpиMЯLu40 žDŠ)ЋЈ ;3МœlВ32Is{Plы}‰ѓC B›}кћпџўGїюн­pЦЊЊЊmЬагьььzћ[Лv-ГgЯfќјё,XА€oОљ†Я>ћŒТТBюКы.Ь‘Gi=`Ÿўљu†ЃжЧЏПўJяоНw9/Я‘G™PЙVзu/^LП~§к…B!Тсp>8рЋxCUUW\qEЪБ†Jnn.eee,[ЖŒЫ/ПМNл~ќбШЉеЅK—„ЪТЉ0Х<ьE@ЂбЈeЊcшѓљjЬ+++Г^'‡Й%SPP€ІitъдЉСійEZг І6ћR…ъ ЕёвK/qшЁ‡жъл”•”№ЏWІІ\&rф5Љ„6]гkršЎЁk:ВЎсаt]УЉЅ^瘯՟We'Б"ЅMD“@ВНЗ{ущ’DL–Q%‰ˆ,#ЫFЮ-SŒ3Š_&†їЪВИ%ЄЂiЮЄГл˜— hФНйЌkNGзЅxEаИw Х/Yв‘‰зƒˆ_`KS—R0Lіn‚† "Кž$ЗI* GЈЌђQ^i„ЯB!Ђ1CРC’d{1„§жbЋ %•ВAy*+А™EMЬЩвЅK-OКTŒ5ŠЯ?џœЯ?џœ|а*P‘Ьwо‰пяgиАaŒ9В^лН^/W]uSЇNeС‚œxт‰жВ pЮ9чЄ ‘нБcŸўy‚“Y!їЪ+ЏLј<fНlй2nИсыНЙЏэ_lгггЙђЪ+™>}: .L…MћЮ?џ|:wюlЭЗ'zO&9Н@Ц}у’K.сШ#lnS,222ъ,к#Юс=+фэiZђУzSй&„МНGтОоXАммlsь‹ O:У#UГf‰Љ*БXЕЧЊЊЋ„C!‚сбhЌк“нЌЦЌihšŠІ™љ&Ћћ[bmГŽ„$ƒ"+ёIB6НOу",+ШЗллщТщp +2’Ў…EЖ<\Y6u”И‡Ÿ‘ЧN25L Дјюа4E"TјЋ((.ЁДМœ˜І"ŒЂ€”јУq лН_,h"RАYЛ:YPŸрџоjžˆеk#ЊЪЮŠJ*Ћќјќ9фЗoGvfnлГnКЕЂ'iг БЖкcд|!ЛMЋ%=сLи&Нц(RЊЁwѓ~еtн‰мŸA[cŸђzїюЭўѓ^~љebБO=ѕ”%дtша—^z‰ыЎЛŽ;яМ“з_I’˜6mќёЗп~{Нс&K–,скkЏхХ_ДТ2ЇL™BЇN8х”SЃтыШ‘#™1cљЫ_˜6m§ћїЇ  €‰'ВpсBОћю;ЋЯММ<8рЖmлЦ /МР_џњWЦŽЫеW_]Ї-ыж­ЃЈЈˆO>љФš7{іlt]З (”––ђѓЯ?ѓЪ+ЏXyщL!oЭš5|ѓЭ7<ќ№УŒ?žЬЬLHЏ^НЦr:МћюЛєщг‡ђђђ”і8Nоџ}.Ојb&L˜€пячўћяч€ OИћюЛўѓŸ\qХܘ1ЃСGO=ѕ_~љ%SІLсВЫ.уˆ#Ž ЈЈˆ &аЁC&OžœrНЎ]Л2rфHо{я=zїюЭфЩ“™7o;wЎсegnѓќљѓљт‹/XБbЋV­тьГЯ ‰АuыVР(”aїє{њщЇYВd /Нє—^z)=zє ААчž{ŽŽ;2iв$k]зљѓЯ?C4 …B–ˆXQ ёћ§ЄЇЇ7h і]VЏ^ЭћяП/* ‚VЮЎњЭ4rˆdяЛИўЄщS5ЂšJ45 Т„‚Dт•ŸУ‘сH„hT5ТЮ“Њ/Џмiп 3джњ>cЈIпoЊУnuT[|Ўf‰ †Ц7З=А›тž$+xœN<.—ЇУШ%™™žгсРсPp*2Š"%‰FX­†„/ЄАИ„‚т"‘Ас+;Ь ЈsЗк%>ЁхЕvOШлѕБЊ=?AB“tbjŒ­E”UVА_ЛvьзОВ$ЃЦŒ\ŒfQ'{D pнЅ:?e3k<7ЊУсРЁ(8NЋ€’†ЌЧ=\ ‡"YV&м*ZBШк’ом"–.]ЪАaУЌъЁљЫ_xэЕзr Э;—бЃGЃiьиБƒќумyч ”Кuы֘1cј§їпyэЕз8ш ƒЈЈЈ 77—™3gвЇOЋ­Іi<їмs<ћьГ†їо№сУyўљчйџ§њўшЃИъЊЋЌ№жkЎЙ†)SІ$<Щ\uеUЛT§vщвЅtъд‰Пџ§я–Ч˜N8Зоz+хКsчЮeиАaЌ_П>!,еŽІiМ§ілLœ8‘хЫ—“ŸŸІi”””pъЉЇrз]w1tшаFл]XXШmЗнЦЇŸ~ЪGСкЕkщпП?SІLЉaЫ+ЏМТЭ7пЬ9чœУ_џњWFeU=љф“™9s&нЛwOXЧяїsоyчБdЩ:wюЬ;яМУI'ФkЏНЦу?ž№ыДЂ(Мјт‹V%к‚‚nЛэ6,X@Яž=YЛv- `Ъ”)VИэџћ_† –pп}їqЪ)ЇpЮ9чF–нyчмzы­о_‚}‡ГЮ:‹ГЮ:‹лnЛ­ЙMimрЃG 4ІіNЕњ“Ќ?еh:Јšfy‰iјU–H G‡УФ4 U‹WpжЋНэ5нв’o_ІЭ5юk’§eƒќ–Аd„ЗШъЈYЛ\hц–нцНЏю,ЫFQЗ лЫсФыIУуvЃ8%JKЫ(*нI…ЏŠp4Š&щV~3ћі%яc+яЅ^-~шBChXЙєєњd#уњбtUг‰FЃFЕcыг@г$№И\Єy<8ДИћЊЎ›žy:КT/вvЅ$`Ьг-ЏT3яЊ,ХѓЌb8™ЪШ†РчŠTRУV‘q9Єyм8dIB‘Š‚’фб›z5ьž–“Ао}Yі(ž]KЛ$ ZKЄE›ђР(,Аnн:ВВВj­DЊы:ќёбh”юнЛяrБh4ЪњѕыЩЫЫKYеDг46lи@(т ƒЊгЛ*А~§zкЗoOЧŽwЩЎНСoП§Цa‡fy§еEyy9лЖmCQКvэZkоМЦPVVЦцЭ›щдЉSBс ;v!oоМyTUUБaУкЗo_gс 0Мэ|>={імЅЪ ;wюdЫ–-uк'4” pЧw№лoП5(дО%бF>zС^ЂZМЋ~Мз‘атaБб˜J0Š vaТсQU%U Ÿ˜jфНГ‡ъv6#A\|Sал{•kПošтŸzѕcМ!v!ЖŠCЦ"\N'.—‡г$Ы—т†Qуk%E6ФЬПWЗaIІіyy]9.ЋSТЈЊсg\^RuШЗn УсрВ КŽƒзYЏ7{­sžNMЋєјayЪb ~Вbu†.#Щ’!№9ёPwCwЛ\Ит^Ў.—;ющc—т…jtSpЌ?§‚щЧ[НwѕЁ@аT!O hЁ$ yAk$‹бЇOЦЧ9чœгмц4ёб#vћ]Ф~OQuУу.ŠD EТCќСсH”p8B$AM–#ЬRБTч­3ДуС€–—Dл‚Оє[FЂч ,Х]šdI2ђы!сЋђcВPйJ "ЫrŠMk-9‚Н…)зž—лЪi‰УІ˜'%ЕГyВ%§Mэ}WћМъžѕžЌ$$ТгMл5ьi4­5dYЦЉ8p:8 NХлуСэrтt(И†ШчP8 NEA‰ЇIЖЅкVћНdw…<@аTД–ЯИ6‘#O АcцйHЮЗ!Д&^yхђѓѓ[Ѕˆ'ЛBТёАYsŽІCLгˆЊ1Bс0~ŸпO•пЬu3еуЙцфъчљTЁЃ5^ДŽ/іе5'$k™ЭНЅы:ЊЊЁi:—‹XLEеTt5†(ŠlLqO#9•Ђ' ЭА'IRќ<ЊН}mаЕћње>OГ$В‡йWfK•#“ЃRуИЊƒ‹ŒDтљ+СФŠŒЫхТ›–Fš' oZ^Зг‰гщ0ТмeENєЛ3ДХФ Ё—“ПۘcдоtЃЊДІыH:(’„Ыщ$--ЬєtВвгIOK#ЭхТЯЋgоау…wHЈР!ЎJ`ЯбZ>ї„'­„/Пќ’ыЏПžUЋVсvЛ›лœнB|єmœФ‚БЦ,Ы OŠ{рщDU•@0Dye%%ЅeTјЊˆiš!кЩВ-WМ$nыAt‚ЖЦо8чSQЏfба5 ЏлEvV6Йй9фddрѕ8Q )ю ›TaЛ!c‚]ЂЕ|> !O ZЊЊвЗo_yфўњзП6З9Лјшк8uyК$ЁЁX”’e•P^QATS‘хИЗJмгN!Ÿ Fy‚ЖF‹ђtнЪА'щ ы*шрP2МiфЗoЯ~эђ№Иœ(’l”ѕ1;•„'ьIZЫчЃ(v!­€щгЇгЎ]Л}BФHQџU’аtˆФbTјќ–QQх'Ž "Ё8œ$<ЎЖŽяк-†жђp"4{уœO5FНЃšbœЎЧНŠeа!ІыјќA‚сm”–эdПvyДЫЩСыі XЁЕz<дVJЗm с‘'-ŸЯЧс‡Ю'Ÿ|Т1Чгмц4 тЃG hƒ$]іІЇЧs@Х4аЈђXZ^Я_ELUбЬж’n[SЊ~)­о|zМ@†ІЁ(щ^/9™YДЫЮ&7;‡Ђию~‰7?q+š†жђЃ—ђ …3fЬЪЫЫ™6mZs›вdˆ  ’”ЄнМ h’NDUЉЈ PZVNiYU H2’lxhКІЄ'ЩˆЧV@АOЂUkutаtмNйфЗЫ#'+ л…"ЩіŸ3A"„<@ ь66l _П~Ќ\Й’Ž;6З9M†јшк ).{ ˆІRцѓБН ˆВŠJ"1I–p3Ы OЗuPѓ6EЪ=@ hнФНѓ$tв\.шдіЙyЄ{<(RuqЯš!ф `З6lЧwcЧŽmnSšёб#ДA’.{M‚ˆЊRZYС†M›ёƒшК„$ЫёІЖPѕЄvBž@ ичˆW’tMWqI tьHЧќ§ШєІ!Ч›‰{ž@аtД!OЛ‚ЪW_}ХђхЫ™={vs›"ЛT-Ищ@0ЁЄЌœЭ;Ж…РY9юmWу{tОXЇ*х(­•xun]’@Rˆj:…Х%hšЦі'л›жм ‚fBy@аб4бЃGѓЬ3Ярёxšл@ иmтYŸ‰`$JЩЮrЖQЊіV6AЎСПŽ O ьГHш’џЄ ‡ЂрюдЗCБЊр ‚Жƒ\@ ьmfЭš…лэfиАaЭmŠ@ дAУuНZœ‹iх•••–RсѓЁKf>Мj1oWЌЩпСОFТш’D ІИl'e•DUЃјC h[ˆy@аТЈЊЊЂG|јс‡wмqЭmЮA|єmНкO— врЯ-[))+'†В еЋЕ<ё[Г@ X$|oв5’DЛЬ,Кtщiю„т`зi-9ђФЗ$@ ha<ѕдS (ЁЕ@а"xѓЭ7‘e™K.ЙЄЙM‚&'ŽтЏ b8уХsу5šЧр A+Ііћcђ]PQфVReS 4Т#O š™`0Ш<РлoПнjJž ACб˜ІŽF­yт^'IH€^џНбŒЄ•eЧƒCqˆьЁACy@аЬŒ7ށrт‰'6З)@афh@DU‰D#†€'№Ќ‚$ЌлЂ=/^Њ{ЅŽ$щИ.2Н^\ёH/Д5ФU/ЭШЖmл˜2e ?§єSs›"ЛO ЗP5•ЈйЬї$ќGРDJљЎІˆ'Хч;™Мьl2Мi8"[–@ажBž@ 4#їмsЗмr x`s›"ЛŒnЋšh„Эко#UЇlзU$‘ЂЙ“,NьžЈлДНэ.ЛbMъ2ЛмнЂ™ВяPыNMс…gоcu Џ'§їпЫПУ6ХИ Е „<@ h&~ќёGОўњkІNкмІСР№М“ЇглэBЋђЁШњ.V­ь;иЪ7 іq›:ЬЛqл&%T$­ЙNэОY‚}ъул€sR]UIѓІБћіДЫЪA‘„'ДEZFљјуљїПџMEEћэЗЇŸ~:C‡E–eо{я=њѕыGћіэ™?~­§œwоyx<ЪЫЫљќѓЯSЖЩЫЫcчЮ ѓ†JfffЖПўњ+ыж­Ћ1?33“ЁC‡6r+ычеW_%==‹/ОИQыщКЮ?ќРЂE‹иДiNЇ“>}њ0bФВВВXЖl <€љѓчуїћSіеЃGzѕъХ–-[јс‡RЖ9фCшлЗoу6n#0}њt*++­щКыЎујуOh  ДkзЎ™,m^}ѕU ЈЌЌЄЌЌŒСƒsс…6ЗY{]з=z4O<ёщщщЭmŽ@ hг$zа5mП†fЇШ ‡4!GіЛЄvэЉѓОёдeI‹ђZ”1ћ‰ЛД–3AзAг‘аЩЮЪ$П};ђлхЁHXžz- д qA‹ЅU y7nфМѓЮЃЈЈˆ‹/Θ#<’mлЖqУ 7——ЧwоЩШ‘#љјущлЗ/Я?џ<+WЎLЂŽ?ўxВВВ4h‡ввR&OžЬЊUЋ(..Œ @‡vgœqп}їыж­ЃЊЊ €K.Й„wоyЇ†mK–,aмИqYѓ2334hP“ yЁPˆ1cЦžžЮ…^ˆЂ( ZoЭš5Œ9’џќч?\pСwмqј|>fЭšХ<РИqуxєбGц >…ы+"адБmКM2‘ЬYR–h БЖыј `ЊЉђyM™2…[oН•C=”‰'2dШёх<‰Ѓ>š+V0wю\ўіЗПYѓKJJ8р€ˆD"М§іл\zщЅЭheMŽ?ўx&MšDП~§іиз\s ЏНі<№>њшЇ% 9тˆ#xу78p`s›г,Д’ е“№`Ўл№Э”щ)žцkэЋюQЯ IDATA]7Ўm]7кjКёc–ЊЉЃvVVВiыV"ЊŽ$I “ х’ђjŘљ"5=’MШг›pGжv'lmвxRŠc™Њ]jЌЌ—ЈщIШ9 ИВггщ˜ŸONfnЇйєЅЋуў)~,OkЙ^ZMЖс%K–№ыЏП2zєш --3fpкiЇ$xрzшЁМ№Т „УazшЁ”§—––F™8qb oЈN:сt:ёx<Œ5Š_§ЕF’$qЫ-ЗpэЕзюБpЙщгЇ[Џ_yх•zлrійgSVVЦЋЏОZCФИщІ›;v,@‚W‰}[222j,/**bќјёєяпŸ~јЁC‡Жš‹`oтt:SЮoпО=K–,сwоitИєžFзuVЏ^НЧЧЉmпь‹L˜0~§њЕYO 4Н–Љžfж\=>%ЬеmТ\mу&є’№_гAеtЂЊF8#ˆD№C”ћ§”љЊ(ЋєQМГŒэEХ—PщѓЁбHФ№ђзSeДHъдkъ8)ыkО[PЃ/†:­ѓ2ЋЯцFlЯ“НRŒ_=+ЕЛw(„€ЗЛ?|ФїcваuUUQ™œмlКvэJЛмм.—uп”тžЯеїїКI“\v Eаj„М_~љ VqLQ&NœˆЂ(VЌЩх—_Ю™gž РфЩ“љљчŸkЌџиcqц™grХWдjУ“O>‰Чу! 1|ј№”‚—щЉЖЇ*PЎ[ЗŽЏОњŠK.Й€… ВqуЦ:зљћпџNQQG}taОcЧŽ%'''хvеEYYgu:t`бЂEфхх5j}С€Иф’Kх–uY~ійg5Ў)СЎSXXШЄI“7n\s›"к |tг1”КЂ€„ŽDЦT|Ё0Хl.(ф­[љ}уŸќo§ќЖіwVЌYЭŠпWГњЯѕќЙm+л ))+'Іъ8œNВbD’‰'Ъ}€†Ъ’5™ЏіфИЉЧ0лKЕЖЈКZзп›БДў=е4{ЦЄ.!ЏП 4 gq7ЩчІiФ"QI&У›ŽЂ(ЈиН&“‹cˆу!Д%Z–bPІЗЮЄI“‡У)лќпџ§L):МќђЫxН^TUхІ›nBUUkйЏПўЪ[oНХјёуыДсЈЃŽтЙчž AэњыЏЏб&=нИбІђZKцу?fкДihZУнћgЮœЩ 'œРјёуQMг˜6mZ­эџ§wцЮ Р9чœSgп™™™\|ёХTVV6иГ8ЫхbсТ…5М%­›ŠŠ юЛяОц6cŸbьиБŒ9’nнК5З) !б@щ!Љ)›$ЬЎЅ3Эєе“$4IB"ЊJU(DqY›Жmc§ЦMЌYЗŽUыжђЧŸйZАƒТ’vVTP ŠЉDuŒ‡NIB“d4YYFQŒЂŠЂДИЎЉi№ЙW/еbCгЪUЉЉ{ŒZ„:6Ж>›ыоžјкѕюШ]л3)ЭЎяР%/пEP'ін/Ы2‡ƒp8Т–­лYѕћ~_ЗŽ?7oІАД 8BTзб%а%ЩњЁEGЗ<§RІ.ЧX и'h5п Ž<ђHў§ягЇOfܘAIIIvуЧЗМяь|№СVŽЗŸ~њ‰)SІXЫюКы.ЎИт zїю]Џ7п|Г•ˆџŸџќgЪаVY–єхєщЇŸцЦoДŠHдG4хѕз_gфШ‘tюм™ГЯ>0Њ~F"‘”ы|єбG–PиЋWЏzЧИшЂ‹ь‘gŠxŠЂАpсBВГГД^*~ќёG.ОјbzєшСбGЭ?ўёЪЫЫкЬ;—iгІёЬ3Я№иc№Щ'ŸpЦgаН{w† ТтХ‹4^0фŸџќ'SЇNхщЇŸЖМЃ–-[Ц!CшйГg aЗИȘ1cЦаЇO?ќp† ЦїпŸВџЊЊ*xрŽ:ъ(zіьЩШ‘#)((ЈбNг4оџ}ІM›ЦГЯ>Ы<Рж­[­хŸ~њ)3fЬрйgŸхўћяЇВВ’­[З2bФzіьЩuз]—pьУс0Я=ї'žx"‡rƒцнwпMiЃІiМўњы <˜юнЛsт‰'2~ќx‚С `ˆц}њєБ|8€хXXXШ‡~˜reЫ–YЏ;wю\яgœqFНЁКхххœyц™ќќѓЯмnwЖ 5гІMcР€фццВ`СІL™ТћяПOпО}йДi“еюУ?dЪ”)мsЯ=М№Т Мјт‹Œ5Šc=–оН{ѓйgŸ1dШ"S*BЁsцЬБФЉ—_~™хЫ—3bФŽ>њhжЌYӘ1cјѓЯ?XЕjН{їfоМyМєвKќы_џ";;›“N:‰йГg'єэѓљ8љф“yќёЧщйГ'їо{/`„ЮюмЙ3Ё­)фЭ;—ЛяО›Чœ;vXЫчЯŸЯьйГЙћюЛyт‰'иМy3C† сАУcуЦМњъЋЬ™30ŽЩРyєбG=z4‹/f№рС\~љхмvлm уЦb1† ЦеW_M=XМx1їнwcЦŒБЊЈtаAVИ5РРСЬСœ>]ZZЪ€7ncЧŽхГЯ>у”SNaј№см}їн уъКЮЅ—^Ъпџўwїнw=zєрДгNcхЪ•ѕЗжЮЈQЃxьБЧ„чЊ@ и=jб.’еЅZ—$>Лi€ЊыDb*U Ѕххь(.aka![ vАЕЈХ%””Wт „F"Фt]’AVтb]|’ф:ŠXиž%ёьиrЉсЊYЯСJщо™ЂН]eN1Z]ŠUJEKВMuи™RЋЊЅБžДEЉ"qkЉ.ZћXЉЧMмnєjOЊёЅ.4Х~I-йеuŒъ1Z={‡xѕ{юRI–I1юЕQMЃ*ЂДЂ’эХХlйQШц‚BЖQPRJi…ёK8Eе5Ь,ЄЦ)fœcеgAт+@аКh5UkcЧŽх•W^Б*ШкЩЯЯчйgŸ­3ЯнВeЫ0`ЊЊrСАjе*.КшЂz…Мєєt>љфN?§tЋŸ‰DшоН;?џќГѕpюrЙјђЫ/9щЄ“ъьsР€|џ§ї„Уa\.W}›ЯYgEзЎ]™:u*`x6uыж­[ЗrъЉЇВdЩ’ыœ|ђЩ,]К0ђ іщгЇоqRёмsЯqз]w№ЧpщЅ—Вiг&ŠŠŠИѓЮ;™0aBЃћ]О|9Ч<x kзЎЕ<MQюФOф›oОБк/[ЖŒ~§њсp8шзЏ .ДҘGЭ„ 8p џўїП4ўвЅK9љф“щкЕ+нКuуљчŸgЫ–-ќѕЏХщtВiг&кЕkЧQGХяПџЮђхЫ-18‹бЃG ј§їп9р€ИэЖл˜4iRъПЃFтХ_ЈQЕ //ВВ2–-[ЦqЧgЭFЃИнnK;љф“9џќѓщвЅ šІY•‹GŒСлoПЭдЉSЙс†Ќѕ/НєRо}ї]цЯŸЯYgРO<С§їпЯYgХќљѓxэЕзИцšk$‰‚‚ђѓѓCРлО};?ќ№CЪЊЕ^x!sцЬсЕз^уЊЋЎВцџэoуЃ>т‹/ОАЎ›YГfqэЕзrФG№Ы/ПX№ыЏПЮеW_ АЯV­§рƒxт‰'јщЇŸPЅЙЭivZбG@аќ4H˜ЈcГ}ќКгЅъ‡;Uз‰i‘h”@ ФЮђr**+№ƒDU]2&ЭЧ?Л8зИЂVІP§ВЈЈиRБNыЄWыe`Л‡Ч›JК”в­Wї`її4кч’м€-о‘Ёqду%(Qm TгfK3mСЌАlЭŒџГуцvиѕ/н№˜3N[ЙŽv6AЦкЅhšЭй>АumVЏhYsћЅЄэЕo*ш–o_ЊkЌa6K еm5л ж) Ўп&ТЎ–ІКOкZšтЏІЃщ†пЉЧщ$ны%Уы%+3Ьєtв\nŠ‚,S-ђZз mXq(‚VsOk5y^Џ—‰'RPPРДiг8яМѓ,o!0*Ї^yх•Ьœ9Гж>Ž?ўxnНѕVРSЪЫЫ3fLЃm9ўјуyъЉЇCиJ•/Џ)йМy3Ÿ}і#GŽДц)ŠТЕз^ Рз_ВВшžШ?sўљчЃiЋWЏцдSOр…^H)$жЧ3Я%>YыЫ†§H†І}В‚"™s6Що.nЃœpъV{З)’бЮЉH8у}*фј‹Dњ§T•—SQV†ЏЌŒ п‡‹лˆ”(ийМсdЩnЂ}J|џШrЕрS[ ЏiГБЎ„\ЫuiэЅцёь)т~i65КЌ8d…ˆЊQюЋb[Q!Пoј“еl`уŽ*ƒAЃOЩT{…{Ѕ@А/рhnЪЇŸ~ЪiЇ†зы%//ыЏПžыЏПUUљх—_XА`“&MЂЄЄ„ћяПŸkЎЙІVыёЧgъдЉ„Уa.М№ТІHХwмС’%K˜7oяНїЇœr ЗмrKЪЖoОљ&Ÿ|ђIТМЕkзpйe—%иzШ!‡X"ЁЩЬ™3qЛнЬ™3Ч ЅЌ0L]з™:u*/М№BТzІWT 5Л‹лэцГЯ>#//YГfqдQGQYYЩ5з\УŠ+•+яѓЯ?ŒmЖуp88јрƒйЙs'‹-ВC; HxonыЎlЇЊЊœўљ€!~кE)гc­{їю”••Yѓ§~?ХХХ–зуВeЫєэл7aŒ<§їпŸТТТFлg2dШK:эДгЌљ ,@г4:wюL$БђцХb1+œ‚Т@аАmыVЖoЋ#ЭЎWlvо"ЦŒCуЎvюиоэ;^zй… фхPRZŠЫхbУњuF$ј|% ­ЉСSTlE˜ЦЂQZš›иИvбH)%yyyT ЊbHMM—8&Ё3`уКuј[[HФуфИs)ЋЈ`ФШQH‘’у$Бh”Ц–f6nиРЖ­[iмн@G{€X<†Mw_P@Ii ƒЋЋ1j4Х%>ьv‡%З!homcѓЦ Д46fЋЎы8NvЛH$r@о1B{ь1;ь0ЖoпЮќљѓ­<~нљју3Т,гIц€ŒАJ0EІЧ{Œ)SІP[[лујсУ‡ГyѓfќqюОћnмnЗЕoЦŒжИ)aeO$ цЬ™УC=Deeeж6/Нє’•#mшаЁмwп}\qХlнК•kЏН–Пќх/{ЬœъЊ*6oиРK–аИЛЁgл}Єm‚вЪAL9ќpЪJЫјз?ўAАГ#!>r$šЎс-.JJЭ‚H(ШЇ›6БpСKФЃQЄaPф+aђс‡SU]аЭ<‰x”нЛvёі›oвPПƒX4Jљ ALq$#FŽ4CЅЄ­еЯцMјш?џaЫІM47юІ3 ‰0 4Э†Ыщ$7/_I C‡р№iS>r…šfњшЕљ[XКф}жЏYm†чfœаvЛМ‚**1jьЦŒЏД<ЃtFg Рв>`Ы† DТ!ђ 7i2ЃЦŒE  A8bћЖ­,~gжЎ% "4ŸУЇMM†rюЏwЎ"ћ—5Ёї‡!вКƒ…%Кв ‹tŽF †УR˜Ÿ‡Ыс@dгeЊ ›V(њ=FШгu… іђв3f guO=ѕэээŸлиRЪ /Їt|>O?§4'Ÿ|2сp˜ѓЯ?пЊ›Ю~єЃŒ0F0s‹-_ОœuыжaЗл­энC,џўїПS__ЯвЅK3„—/Нєчœs~ПŸчž{ŽЫ.ЛЬк7kж,nИс У`йВe\tбE{œыПџ§oо~ћmJJJzmгнƒёђЫ/gС‚,\ИЧœYГfёѕЏ}уЄцiЗл‰ХbYНш:::SxэЮОфм„VŽЛlћЮ9ч{ьБ=і“КvBтё86[ц[Ќ­­э€ьКЁH”н Лјxљršwя"›by"І™BH{[ыVЏтНЭђџ,%акŠ&nw.IЇ‚X,AGGѕлЖБГn[6етon"2nТD НE  Вэг-зBЗйа…љ й0 т‰8КЭFAЁ‡лЖЦ8њФбNЫЋ+ ГmыЇlXГŠPgOq1отb0 „Ў …ЈлВ…/y§у474 _YUUTUUсvЛб4Э}ечФcхOм—FНьMПЉЗЊаЌ<Ј`h4F8%QTX@ЎЫ™ “OyLЇМћdfтD…Bб/09ђl6Я>ћ,лЖmлc;Зл‚ъъъЯmьЮЮNтёxЏтрqЧЧO~ђРЬ——MЄ(..Ж*~І^)ВaУ†elя.(§щOтдSOЭ*тœuжY–ѓЧ?ў1cпШ‘#9їмsXА`ёxМЧёщ<§єгЬž=;CXм~јaЫЋюЊЋЎЪ№Lы !Gq` CнIѕ1}њє§ВхГP\\мыœG аk5пx<ЮцЭ›,/P)%;vьШhШшѕHйИcЧŽЌ‚3РњѕыS№NБjеЊэжЎ]›!ЊЅТОгяыГЯ>›eЫ–YуnлЖ­з{+5nuuЕВ›ЭЫrгІMYШЌ\Й’W_}•[nЙЅЏMQ(‡щU/M/<ˆФјЖзяb[}=ўі†fцVЪHЊЅ8фIЯƒи%ЉЅyЮIƒ];všVc32žшVЕ+бœа’BЫћЇ{Џ‡Њ!C6r$CGŽbшШ‘ 1‚a#F2Дfƒ*ЋА;x‹‹љЫ_Иѕж[{ьKъŸэœUTTpЯ=їаддФW\БOU)SеUпxуŒэ›7ofѓцЭgxїЅњЬжїžіѕFЊmNNNЏm.М№Bоyч+Џa:ПњеЏЌœ†уЦcмИq€щ)™Ю3ЯHЖ”3I4ЦпмТюнЛ‰'b€AGg; ЛƒHУ ''oQ1оb3MH ­eџYЪ'+WMцN.)ЏрдЏЩЅW\Сљ—~“ГЯП€ѓПq)пМт;|ѕŒ3(Љ0ЪGC!>^Оœ}D ­Ел{м<ЧšfcцЉЇqѕuз2џ–›ЙьЪ+9bЦŒфїDIgg€;ЗбP_LФЬ_RМKПЮГи…vдmхз_уэ7ўн;w€фy 9і„8ѕkg2fм8`d ЪTє-І'…)ЩЩlНš@jслиМu+эсqыЁOЪ3O][…b 0`„<›Э†УсРяїsмqЧБxётŒ§uuuœwоyј§~ў№‡?dэЃЙЙ™ 6АpсBТс0+VЌ.ГcЮ IDAT`йВeджж‹Х2кзззѓЪ+Џ0ў|РєŒ{ф‘Gz­ћф“Oіъ1ЕП„B!^§uЮ:ы,‰/Ој"яОћnЯЕІІ&жЎ]›!~Ь›7•+WZ‚gii)oНѕ555мpУ мuз]о…бh”G}”Џ}эkќсШШ-XWWЧŠ+2ђ{-XА€uыжYЂб(›7of№рС–їжkЏНЦuз]ЧкЕk­vйјц7ПЩщЇŸЮЂE‹XИp!` …wмqšІёрƒf„жІМєBЁPPЬt/Рl~йHz-’1sцL.Йф У`Юœ9–PкккЪOњS~јaюКы.Р\T§ц7ПAзuюКы.ўяџўD"СЂE‹јщOJUU‹/юzВ›?Jмні††Ћ]oѓ*--х—Пќ%з^{-/Нє‰D‚H$ТгO?ЭХ_Ь<`]ŸћяП›ЭЦТ… ЙќђЫYНz5K—.eіьйsЬ1vиaVпЉћс™gžaеЊU\§ѕL›6ŠŠ  ФЯ~і3РЌ€ћъЋЏbсp˜ЧœЫ.ЛŒxРњzз]wQXXШГЯ>ЫC=D8fгІM\rЩ%–ЇрвЅKillьё~h,XА€;vpљх—їЕ) …т SЬ3Уi;Bav6ьfыіэ„Ѓ1 LqЯђKёL;дЂp Вчk& ƒ6 Kо{Ц] ФЃбЯ3MюМ<|ЅЅ”UTRVYAyeeцЋДЌO‘ЭfУ—GqI)ОЪJJ**)­ЌР[тУeч2Уws“эЪ**)-7л•”“—‹+'‡ъ!CАЛœ „•ЋЙЙБ™HDhmiЁЅЙ”WTPьѓawи vvА}[ёh I{[;ѕ;ы“т˜ 7Џ€"ŸТТ У`ліm|ZЛS3 бІy‡MJeе`Nиь8œ9TЎц№iг™6cšнHZ››ЉЋ­e{]BШДs–њQWPHIi9ƒЋ‡0vь8fܘ;7зл ƒX4F4ЕђfН:вє8мМq#//XРВ>ЄЅЉMгёћ8хє38ўЄ“Ј:ЁыЩтъ=§y!КНzьипЮ YЖ—‡`вЄIYћИчž{8ђШ#ЙєвK),,ФыѕВjе*ОњеЏ2uъTЋКgŠћяПŸo}ы[деесѕzбunИo}ы[Yћ///ч‰'žшЕZnwђѓѓГ&§XЖl_|1 xН^ъъъ˜={6з]w]FЛЛяО›cŽ9†‡zЏз‹зыeЭš5œtвIUrGЭЪ•+Йх–[xјс‡)--eмИqLš4‰ттbўђ—П№Ъ+Џ№Эo~3ЃџYГfqђЩ'ѓілo[§пxу}єбќўїПLЏСiгІqоyчYчеыѕђф“OrЬ1Ч№Рєz4Mу…^рЊЋЎт‚ .рФOdмИq,ZДˆ—^z‰ѓЮ;Яj{јс‡sщЅ—тѕzЩЩЩaܘ1|ч;приceжЌYжиSІLс’K.щu\У07nW\q^Џ!#GŽdЪ”)YлџљЯц'?љ ;vь`њєщ8NМ^/яНїoП§6хххVлSN9…чŸЗлЭiЇ†ЫхтœsЮсс‡Жкнџ§TWWГsчN.Ль2FУсРыѕђэo›qуЦбжжЦ\РфЩ“­y~њщŒ?žO>љЄ‡з\s O>љ$љљљœsЮ9И\.rrrјХ/~СsЯ=ЧБЧkЕ=щЄ“XИp!555<њшЃL˜03fPVVж#<ћілoЇЄЄ„_|‘‰'ВxёbўєЇ?YћчЯŸЯŸџќg\.ГfЭТхrсvЛљЭo~У /МРŒ3ЌЖУ† уŸџќ'cЦŒсЊЋЎ"??Ÿ &pѕеWsмqЧf%у!C†№ц›oіz§њ;бh”oМ‘пќц7=ђ$* Х†H…RAG8LCs ѕ„Т3mRr—З'ёЅ{ˆзў„z!AH! UѓbРбЫoq1…^/СPˆѕkжВq§::клїj)Го=’D"N4! ‡‰F"D#"‘ˆљ@/%Jш:КнŽ-уeK~чюR=4]ЧfЗaГ;АЇкйЬМyЇƒŠA•ф лlФc1­m4дя$ьь ЅЉ™ЖжV„&1r$UƒЋЩuч …й^WG,!вцїгиА›TЙлB‡ттb\.7вьЈлNKSБdaН‚ТBЦŒGye%—)„ў.РюtRQYЩш1c№x=шКN<ЁЅБ‘лЗ›ёёVўВфЅl6;‡Їг‰УщDOтЎлpК\8]9 Дdјdв\Ы+O‰Fи^WЧп_ћЫ—~Шю]ЛЪ тЄ™39і„R3WŽ;-‡Ёт gП>lСњ№GXЉЌ=щЂž ™b^,aаьoЅБЅ…Ž`ШєВT:­B1`rП§рћ†;vPVVf-Š У`§њѕьоНЇг٘1cЌЊX}Э‡~ШЈQЃњ=н‘RR[[K}}=6›QЃFѕ‹ŠЁ~ПŸеЋW“ŸŸЯФ‰їY§2‰FЃЌZЕŠ`0Шˆ#2МюФуqVЎ\I4eЪ”)фффаооŽЭfЫЈ,ќy#ЅdэкЕ4551hа jjjz]ЈI)YГf ---Œ1Ђзєp8ЬG}„гщdЪ”)YЋ=†СкЕkinnІЊЊŠaУ†эqИfЭš››?~|x_›’зыЭ№ы8?ќ№}jkГйЌb)О ‘Jaхщл—ЖуЧпk;—ЫХбGНЧ6šІэS_)КлјEŠ›_&---ќњзПfбЂE}mŠBЁˆt_‡эёћЄьё[м0hђЗВЋБ‘@gMзђЅє4w%зd нЎ  ЎЎ&7/ŸŽŽЖlкФъO>fТФ‰ 9Њg8^К.—ЭеGJ>^Й’ЕызЁщzšaz U Љц[—‡‚‚„ЭipI…Žя+ёП9ЎЎл№zМјJЪиšГ™Pg‘H˜КК:BЁ ўІ&Zš›HФуф{М ЎŒ;зЭж­uьЈЏЇqWm­~d"aКhk!šŽЏЄ„Ђтb„ІA,N  1‹išNNnюМj”ŠЏDМCњ5ъ§iW=Ёkt„‚4ЗЕ’Ÿ—‡Г _2Q(FШS(ЁРmЗнЦ…^hUєU(Š/‹DТ  Г}g=ЁpŸWЄUBоС…!!7П€с#FGиВiѕ;ыYГz .—‘.Hы{$‹DL…)CШ ‰E#H™š,б…=„#Ъd0—;‡ŠЪ мЙnќM‹FЉпБ“6+ѕ;wввдŒЭfЇШWBqY99ю<ŠŠз'№7ЗаВЛ‰Hgˆ–І&BЩ"Ў\7Х>…RЂЁatЩŽцУNЁkioG‘œ—iИвlЃй0}Y%†aO$В™“2СъO>fЭЊеV_R&А9]L>ќpNžљUŽ˜>›ЭСоЫњЅNИr\x<^МE„$ЄLЖа2к)щ‘MВлПЩп„РР #ЄЉЅOAОŠ‚zЏ* ХчФкЕkљџяџБfЭšО6EЁP `2ыSюRB(eЧЎ]ЃB&+з~vOš’•WЧ€FІЧU›Х[“? ЪЪЫб4?xŸцЦF6Ў_;ЧMŽЫ™yŒ{ж‘TЦ Сефцх%9™ОcE%%ј|>3ЌVіЬа&і5Ь;eО›NEе ђђЬBjБxŒ–ІFvюиF§ŽккБлэ”–—QшёыvSфѓaw8ˆ†BдямУaЇЙЉ’[aa!ХХ>rssЭB2BрrЙаSщ€ЄA$&“Hиzf'СHD’ЙeВzЈЭfУщtvK5г5cЛнnЗ“HD#Є!IФтД47гммL4ХЌМ+„шс`™ъN R>wД4ЗА|йШЭЯу+ЇžFз‹аmж~ХРAXоЈй.|š0.4ЂёэСN"б(šУŽ&TЙ …ЂПЃ„<…BЁјœ˜7oЗнvХХХ}mŠBЁРьЋ€g…N A,Ї#иIKЋŸИa нŠЁ7NЙљyфцх1iЪaМПј]vеГa ЏЧcIBћ0С№‘#9ъИу)+ЏР‰ЎA„РсrRZZ†ІйRь§–юV ‚Є‘™zOЃЌДŒB›нA"'аоFэІlпVG аŽгщdpѕ`rмn„лMQ‰мќŠŠ‹qЙнtДЕ ‡XЗf ЭMMCA|ЅeT‚нщРЎл)*.ЦыѕвкиШ–кZt]УяoIЂQV^AЁЧƒЭn!а4ŠЪJ бtDђђђшhkE›7m"“›ŸOee6Л‡нзыХWRBэњulпЖ ЭІЧ3ї]ee%yљV(Л&tЊЁМr[6oІЃ­•pG'+—Dх AфццтЮЫOк$ uvRЛq#/_AАЃ$И (4ˆЊъъЬ)љOœ9. <…јJЪp9]4юкMSSб–~3ыжЌf§к56m:9ЙЙYЯ‘nГQR^ЮЬSOУ‹-bыцЭDТaj7lфџ^{ L›qОђ2DвSKUž?xHЅГ”R’0цлЏkЪЛ[ЁшŸ(!OЁP(x€ђђrN?§єО6EЁP‚†$‰а &“хЋ…—т‹AaVYЕй№ћ8bъTvдmЅЕЅйT”ї ƒp(D{k+­љyЩУTB;нnУ—‹Іgоз#ЅТFГh=фC9Ў|О <ькОклA мљљу+-Aгь 4 <…TTV€”D"!Dд&…ІaЯqQVQNn^.‚ЄЁ”V”3nТЖoнЪкOк2С'Ы—#„FKK cЧŽЇ А@ uЋVѓСћяѓёŠЬљ#!%FВ2oОЇiGЮр?џљŽЮvb‘Э ,~w1C‡ЧхtЁщн‘гћЯых”гOЧaЗѓ6АaнZЄ!йВ~џ@'‹sђЬ™xŠ}$TС‹Oї?Т|o MыюТšЅБBЁш(!OЁP(ПпЯнwпЭ›oОйзІ(ŠC”X"A$#‘0КМw”[žтЩЬАеSМбt1уЧБzеЧ4дяЄ­Й9ЙGцж“Q/ГKŒЄdйвйКmЎwZЈІЙп™“CѕаЁœ9ћ,МотLЛTŸ"m„4GО MЯкfnбu’’ŠRљleзќrмn|ЅЅšТ—&ШЫЯЇЌМЛЫE,Жьдm|%Ѕ8.d2јз@bГ;˜8y іС`­›7 ‡YћЩ'дямЩлоЗq9]D#кš[№З4 …С55sќёLœ4‡г•1Џд/цќLaNJА;œ 2„БуЧгквLуЎz:;;XНj%ж­%//злУ32UA Шїx˜qЬ1hКŽа5жЏ^alћt яО§/ ƒ™ЇJAЁЁX!E_“&~'я\нІ“›уюV\EЁPєW”ЇP(РэЗпЮЙчžЫ„ њк…BqА‘MЙШB4%‹‘РЁОк)ОL…*щu— ‹Eт+-eЬИёдmйB›ПЅЋ№,)e—p”.Иum БЁцц„аКі'Х!wnБxœh4кu„ш&J™‘ˆOІ9цЅi‰™…"„Ры+Цы+FиmШXœ”@–—gŠvN—)†—лMqi Й……Д7Ч1’aЕvЛ_i ž"/v‡н ;ж ””•sФєщM№Ÿ{иЖ­Ž@ РŽлЉпЙMЗ!у†a лl•–2ЈЊŠЉGХсгІQRVЩАd)%вH›Ћ]ѓ„І“›ŸЧј‰йМqЭ$тqќMM,_іЪ++ЩЫЯ7ћ3’gD˜за†Ќл()ЏрАiгH ƒК-Е„C!ЖжжšУк4Ž=юxŠKJаm*•HПЇWчЩ4Љ[JtMУэr’›уBгRй(•HЋPєgдЗ=…BЁјŒЌ_Пžgžy†5kжєЕ) …т ЅЗ\хщ$  3рMл‡і Хо0НМ—”0ЄІЦєотblv;FВш‚гхbфшбькЙ“P(L"Kjb‚’ђ2NЇхСfw8)ђ•0ЄfИ%HЅK™t—лЧыEзmІ“_ћьљ| ^“ŠHЕьЫV;7х=&зKѕАaŒ3†h0d <|фHЊ‡ EhК)ьpЙ(+Џ`ьјё4юЌ'‹€€мќFCОЇЭf3ЧLхтlNUC‡’›—‡ЏД”ѕkWГsчNк§mDУ! CЂ ‡ЫEЧCХ JFУИ №ћАлf/рp:)Ћ(gHM КM'пSˆnГuE"лt†ХИ ‰ЧтDBAаСЮ этБ‡ƒВВrУj‡Cz(*ёY^КУNEUгm6 CђсћябцoУ0 #ЮцM™0aždqѕYгй“ gъъце“Rтr8(ЬЯЧщАЁѕlЉP(њ!JШS(ŠЯШќљѓЙщІ›№љ|}mŠBЁ8„Iяš}ЊъЉPь i:о2aђdђ ђЭ{K3….wn.Rf •ƒ8ъИу(+/'“ђі*ЏЌЄаы5sМyL˜<‰Мќ<ыNщ!ИiIі%`s8№ћpчКM9+­ ­”fу'OЦŸGВЬ5ЃF‘›ŸoцŽГƒ“^JИРс&LžLŽлM8)фI$Ѕeхд 2YЂCJlv;хƒ*™yкЉј›šIФуH.WUC†˜žn"•MLv †ЩcЫ**()-eЪaSиНЋІЦFээФb1ьvyљљјJJ(-+ЃаыAгudВp€!%oгŽ>šЁ55fAMchЭp\.w—Ђ!))-ушуŽcШЁ;;‘šцыёx1 I^~>гŽœЮАУ‰ЧbИrr(ЋЌ0sЃ%ч ль”VT№•SNЁЌЂœVПŸX,fЮOзLq6u"еGNПaЊ›тЏ@6M#?7—ЂB%тЉŠФ EџGHUvшрЬ3ЯфwосеW_х„NшksŠЯ[oНХwПћ]VЏ^гщьksъOBБШ4М,ыЉдЛЈ=f[}=лыыAЗ%ѓЉ˜тГa-тMu)–X 2™S-ЕШV‘ Г(ƒЉЖ‰†‘є*ˆЬўЬЃБЄ6!3Ф6S'в6=У>ЭŠ”H Є4Кv TЙtBбеЗДВЫ‘Ќи™ВЁg„хІf‚‘ ЭщЮД[hШdR?sLѓЅŸGЫfa€”XCЅЮwъ$mьўў•R&чlrї3hЩТ6–­RЂ%Яq*Дй:ХhІ№*Ь~Є”ЩыR3чlхЫK*ƒцљVИВy€&єї€Ђяй?!/Q\PHUy9х>ЖД{i_ћR(6Ъ}Џ<ђОѓяpбEqвI'ѕиЧљч?џI8fётХJШS(D"СїПџ}юЛя>%т)Š>ЧaЗуt8а4D_Ѓ8x€ІЃб%ЄI@Є-ђ-LшˆŒРюdЌf†h%zєзUЩ!)ЊЅmЭњИ'#Эž)@it oЉМy=Rђe–*ЃeŒg ‘эA“аiU_гœ­ŸК/§2ФCaі‘щ9kJ•iЕ?В і–0*lжююžSЩ†f„БаЬ Єнц”Œ>FЄњйSмО0‹i˜Й ЛЎ’5gѕ0ЎOЩvюI|Шч1…щ„‘ ?ЧM™ЯGQaљЎTзUЁ0(!я aбЂEЬ™3'ы>›ЭЦ‹/ОШ‡~ШїОїН/й2…трус‡Цчѓ1kжЌО6EЁPфьЫВJз5;Л`, BЇЋъ€P!ЗŠ§ +$UІ‰L‘є,Ы,Nб3ыIJ.Kѕs R‘эїŒNEКY][Лm2хEзm{/ЧьЩюt/ГА†–!,JLQЏKˆ‘iТЂљП kв„P)щс)˜ngК7cOћЌ†]?яMшьН‰–йл>E?!хjў&-љо@ŽЫХ ВR|.Л=#,\ЁPє”wАaУ6mкДЧ6ЇŸ~:ЇŸ~њ—d‘Bq№вооЮ]wнХыЏПозІ(Šƒ}\SišРхpрvЛшє‡š–єюIЩ jqІиw>ћZ>ћ=Нз€nCьo.Џ}Iы№йФ ‘ХУ­ЫM)ВэЯ{:щљјКoыоN&ХзюЧ(ёfрБoзLvЅg]8lvlš†УЎу)( мч#ЧсшVрBЁP ”7Р1 ƒ[oНUх›R(О$юМѓNЮ:ы,&MšдзІ( :рv9)ЬЯЇЩпjхёRЩшB†gZЗ}ћ#ўьй“­ыџ{ъqOЖ|V>Г€е›1{ˆў,пвeвsЊgаюЁж ‡ЩŠ$B‚&4œvљЙnђнnђrн`гuReU” ЋP ,œЗlй2}єQ6mкDQQЇžz*—\r 6[цT>јр{ь16oоLEE_|1ЇžzЊЕ? ђёЧуїћimmЕњZА`O?§4@€У;Œќр)иИqЃuм”)S=z4>ј oОљ&Їžz*W]uU›RМёЦ<ћьГlлЖAƒqщЅ—rђЩ'gmЛtщRkХХХœzъЉ\|ёХиl6^{э5юНї^оzы-ўўїПГcЧЦŽЫqЧЧЪ•+ijjЂ­­ЖЖ6N>љd† вcœW^y…ПўѕЏьоН›#F№я|‡У;ЬкпддФњѕы­y;–Щ“'ѓЇ?§‰з_У08љф“љяџўяЌ9Уўїџ—ЦЦFцЭ›ЇrŠ),ЕЕЕќх/с“O>щkS …"—У ‘NЂ IDAT‰З g#Ёx)Лђ[)ћЧч,эqŒ'*eгю2ёВeаћl|Бg'=ѓн—3ЂтK$%Џi‚—ŸЧKQa!љюœ{ђaКо Х@e@}УЛћюЛ™>}:kзЎхњыЏчДгNуЊЋЎт‚ .ШhwЧwpдQG‘——Чќc&L˜Р™gžЩ•W^‰a˜™5ЖnнЪ5з\УмЙsЙшЂ‹x№СљсШuз]‡ЎыЌYГ†Ÿџќчܘ1Ппoѕ§ц›orэЕз2gЮ.НєR^}ѕUfЮœЩO<гщфнwпх{пћsчЮэёФ+‘Hpйe—qЦgPSSУЭ7пLii)3gЮфц›oю1п;яМ“3fАaУnИсN9хОћняrёХрїћ™6m%%%ькЕ‹ккZjkkill`ўќљ|џћпчы_џ:пўіЗYБbEЦБXŒЙsчrўљч3mк4nЛэ6Є”L›6пўіЗVЛХ‹sэЕзrійgѓo|ƒ_|‘3Я<“‡z—ЫХ’%K˜?>gu–uŽS,YВ„+ЎИ‚›nК‰Ч{lПЎЙBбŸ˜?>з_=ххх}mŠBЁPXЫp!%КфК\T–•aзt„LЋЊPь3"ѓu ЗOЗюzюшО}/}Ј9BXЏъЇ—mЂлOПfгЭіuАНЛ/ѓъЙ?НдЧg5Nб_R" ‰LШx]@an.U :„ЊђR<Й8vГ†qЊNЭч№~P(_>Bџъ—_~™9sц0zєh>њш#мn7K–,сиcEJЩњѕы5jЯ?џЦ˜те’%KјЪWО’БТ„ VˆjŠЪЪJ@ЏЖtвI=TлlЧНѕж[<555эЃб(`† †УavяоЭЊUЋzЬївK/ХхrQ]]MuuuЏ6э+oНѕЁP‡УayїЅ˜0a‚eSSSSFž@€N8MЫд+**€ьчЋДДє€эU(њŠG}—ЫХ9чœгзІ( EяH‰†Fiq1Бxœ„aш ‚RˆŒtHх‰ГЂџr@ы|%|юьэ”ЊS~№cHƒX$]ЗсДлБЇжjй.~r›хЃ—љт‹4SЁP| !oЫ–-жЯ)Б@зuЫkЬМw)Š‹‹3њШЫЫ#''‡P(Dmmm!/›а”*VЧ{Е-лq)oЙD"amлАa­­­Н~yŽХbдззГmл6k[њ|m6[ЯЙсгO?ЬsенІ”p'ЅфгO?э!фэыМЁN р'?љ /ПќВZј*Š~H–ЊЕщ‚Š’4ЁБ­~'mЛ]ПP|Ў(aЈБїъРŠƒ)!‹I$him%?зЫсш~—њ.Ћю …b`3 ОбЅ?!hooяЕ]*М ‰dь3 Уђ|sЙ\=ŽM…Џю/йњЪFJм*--Ем–ГН† –qмžц{ ЄBЛŸЋюлВЭQ…*юОћnN;э4ІNкзІ( EЏЄgЉ›Ni‘—ЁUƒё Є„T˜­Bq @‡­§ ШТоNЊ:с5–8Ї 4M#абA0"Oєzkєј=Н`ŠК_Š~Я€ђвУ>Sžmщ477‹Х˜0az2ЉѓюнЛ{ДI‰iSІLљ­ЭNJ kiiЩШб—N[[@FшmЖљ655ex ІB\гЯГЯ>›—^zi6Mš4 0ЋпЦbБŒ} €™CpфШ‘{ьGЁ8XйВe <ђwнuW_›ЂP({%]Ьг„РщtPь-Єzа JМ6ŒШЎъђVNЄЯ йЫKЁP(_ )бMзЧЂƒ!"ᘜќU(R„WQQСєщгјгŸў”БOJЩ\РЫ/ПŒзыeжЌY,ZД(ЃнПўѕ/Ž8т&Nœ˜q|њПнћолОld;ю”SN!77—x<ЮsЯ=зу˜-[Жpиa‡‡ЉЊЊтˆ#ŽшuОsчЮхеW_ЕЖЅ<wэкem[ЕjC‡нЃНЧ{,555H){=_^xa†їнўЮ;ХЂE‹xщЅ—TЅJХ€тЦoфћпџ~FˆЛBЁPєg, Ь/y.‡2_Ueх”xНфцИАii$@JЫщ"=:рР@yt( Х—MВx…aHB‘сhЄЧ•ЯћсBЁш„№Ы_ў]зyу7˜7oэээДЕЕ1oо<ќ~П•„ўо{яХуё№Ч?ў‘ІІ&РЬ=їЛп§ЇгЩ<бogggЦПћКЏЃЃ#упlћв+..цЮ;ярњыЏgётХжО•+WrкiЇqы­ЗZaЌПќх/б4з^{ў№‡кккИюКышььdЮœ9жё)О7оxƒŽŽyфЄ”VСŠоцbГйx№Сбu_ќт–W^SS?ў8ххх=<‘ВЭmoћVЎ\ЩI'Ф9чœУSO=еу8…Ђ?ђўћяѓяџ›yѓцѕЕ) …BБпXоylB$УlЋЈ*/Ї 7Л™@ШžсЖМаSюx …BбwˆDЃDb1ŒНЗV(!$џт‹/rх•WZРФ‰y§ѕз4hЕmХŠ\|ёХ„УaОђ•Џ№СрїћљѓŸџЬЩ'Ÿ РЦЙшЂ‹XЙrЅ%`;–oМ‘“O>™sЯ=—•+WZЙтFХ~№ŠŠŠИ§ілYГf `Ša“'OцбGЅЎЎŽ›oО™UЋV!ЅDг4&OžЬџјGЫЃ№ЗП§-Знvэээ 2)%@€Ÿ§ьg\}ѕеѓ}ўљчЙњъЋinnЖЖMž<™з^{ЭЊŒ №с‡2sцLЋZЌЯчу…^рјучЮ;яфёЧgѓцЭИнn&NœШ3ЯШВeЫњк…BЁиgіїщБ@Xb›„І‘ыrсvЙ№z=„ТДЕhяЦˆ'HУ”`Єхгы>ОZ:* …BЁP|q(!OЁP(’мxу\sЭ5TWWїЕ) …BёЅ’’тœBУюЮ!?ЧEYQ‘hŒЮpіі‚‘б„”Fжy%т) Eџa` *ЧE y …Bќћпџцwосс‡юkS …тK%•гN @€–шt]Уцrрrи(pчвž—Чю–v57]…З2МђдЊQЁP(њ•т@Ё8ИQBžBЁ8ф‘RђУўŸџќчфцціЕ9 …BёЅ“ЪžGЦП]t]УЎлH$ œFТ==^f›’(ZЁP(V4MCг4ѕyЌPЄ(!OЁPђ<§єг„B!.КшЂО6EЁP(њœє…_—Є6MЧaГ›|х}ЇP(§ %КЭ†нnWBžBqЂ„<…BqH …Их–[xђЩ'б4mя( Х€Ђ{`еўЦHі"СfГ‘уraгub2ЙБл"Q- …Ђo‘†ФaЗуt:а4ЁтkŠƒЕjU(‡4ПўѕЏ9ъЈЃ8іиcћк…BЁј‚|+9›Ісr:Шuч  Е2T(Šўˆрr8qкЪqZЁ8HQy …тeЧŽќюwПcщвЅ}mŠBЁPє{„—нŽЏЈ˜`8L,žЁ™/…BЁPє)Љ\ЅšЎсЮЩ!ЧщBЌcЄP("”wГ~§z–-[†ЭfcъдЉдддєЉ=деесїћiooрœsЮщS›77п|3W^y%C‡эkS …т фР—pЉˆYЛн†ЯуЁХяЇНГƒИ”YлX@ЏBЁP(> в0ШqЙШЭЩСaЗ‘Y–HЁP,(!я$‰№­o}‹_|‘‹.КˆжжV.М№BюЙчцЭ›зgv=§єг<ўјуlкД‰ііvjjj”ЇјТXО|9џјЧ?XЗn]_›ЂP(_ ŸчNЂ A^N%^/БxœŽPI*Wž CТГь}Ž&( …Ђ'в ЉEJ ѓѓЩЩqЁыšёŠƒ qђ§яŸgŸ}–'žx‚Ч{ŒЏ~ѕЋ†С=їмгЇv]wнu,[ЖŒЇžzЊOэ8˜H‰ЃŠž\wнuќьg?Ѓ   ЏMQ(ЁLUЏе(ѕу-(РЁлР0HЋš­о%SП№e*yВлKЁP( $‰Mз№z q9ЩG+ъ“PЁ8QBо!Fcc#<ђeeeЬ;€СƒcГй˜>}z[g’ŸŸпз&4ќуџ ЖЖЖЏЭшwќѕЏ%№Эo~ГЏMQ(ЇуrQ^ZŠЯыA“0АфГдкQ)j …Bё…#ЅDгР“—GAЎ‡MG*OЁ8hQBо!Цњѕы‰Чу 6ЬкvжYgбжжЦK/Нд‡–)>o‰‹-ъk3њ‘H„[nЙ…џљŸџAгдG BЁPь+BD2 žфЛsЈ(-ЁЂЌ ‰4ЄЋv‘qЬ—g(*)”BЁ8dвєˆvк”—•тrиб„њ(T(fTŽМCŒ††\.WЦvЗлнц(О@žzъ)Жlйвзfє;юЛя>&OžЬ 'œазІ( Х€Ev]чџЗwпёQUщуЧ?їNM/д$ ”Ѕ$TQР—‘О X~."*XvэижEБ|ьЈЛЪъ –Е`AС‚вUdEE)FAD%žЬЬНчїЧЬмЬ$“BQHxоЏW Йэœ{Їх>yЮyтccќ58tИ€JЏ@гЌ ŠўЧлIIAB42Ёo[‘п-ы˜tT)v;‰ёё$%ФуАйBŽ!ЁЬсУ‡iпО=ЉЉЉ’ŸŸOaa!EEEtъд‰ж­[зhы‡~рЭ7пфз_ЅuыжL˜0Ю;[ыЄŽ;’’’RЃœœ,X`ЕёЇ?§‰.]Кд{іэлЧїпЯКuы(((`йВeєэл—„„kляОћŽЗоz‹ММ<:vьШФ‰Уњ<ТТB>Lzz:щщщЌYГ†Зп~›„„nП§іЭ=VXXШмЙsйВe Эš5уŠ+ЎЈwŸ§ћїѓж[oёу?тѓљHKKc№рСєяпПж}6nмШлoПЭО}ћHOOgТ„ aUzЫЪЪ8tш‡ІААŒŒ š7oЮмЙsйАa)))Lž<™ЖmлАyѓfцЯŸOAA}ћіхŠ+ЎРсpDl{ЧŽМікkькЕ‹ддT&L˜@ЇNЌѕ>Ÿ/ьyKff&ыж­уЭ7пЄЌЌŒ3Ю8ƒ‰'тt:ыН>;wюфх—_fЦŒVћСЧ:..ŽГЮ:+lћэлЗѓњыЏГkз.ввв˜0a;vЌЗЦшР<љф“ЌYГцDwE!­ЊлB…гn#1.Лн†MзШ/,ЂЌвƒЁ”ЫŒ'„RЕzA5WЉЊ?”(абˆ‹ŽЁyr2nЇ =0gЉ?/Zб5щqeEEE :”+ЎИ‚fЭšбЇOўѕЏqюЙчВcЧЮ9ч~њщ'}єQ233щоН;dЩ’%жq D=шеЋƒ bљђх5кš1c™™™ќјуєыз~јЌЌ,fЯžmmѓџїam|єбGжК!C†„Е М„zьБЧшж­999єызœœКwяЮГЯ>[яЕјщЇŸxёХYЙr%{їюхХ_фХ_фР€?-{ъдЉєэл—ввRЮ>ћl–/_NчЮyяНїТњ‘••EVVчœsoП§6/Пќ2“'Oц“O>сСфЎЛюЊЗO[Зn%33“лnЛ]ЛvёгO?qжYgёСдКЯПџ§o:tшР–-[ШЪЪЂ]ЛvЬ;—pы­Зжи^)ХнwпMяоНЩЫЫуЬ3ЯфџћнКucўќљжv<№YYYtяоsЮ9‡W_}•Aƒ1kж,VЌXa­пИq#ЏОњ*guŸ|ђ oМёз\s #GŽФ0Œэ?џќѓtэк•­[ЗrійgѓЫ/П™™Щ3Я|8K—.хŽ;ю`Щ’%|ўљчŒ1‚ЏОњŠбЃGзЋЌЌЄgЯžlлЖ^xПќх/Ќ]Л–Aƒсѕz9§єгйО}ЛЕЯЯ?џL‡hнК5;vьРхrў НŒŒ <ЛwяЖВCЯщ–[nсщЇŸЖЎѓрСƒYЛv-_§5нЛwЗЖ0`kзЎ%99™iгІqы­ЗЂ”тЯў3/НєН{їІЄЄ„?ќіэлГoп>zєшС˜;wnXFсћяПЯИqу3f ‹/{Ьоyч.\Ш\`-ПѓЮ;yт‰'hгІ ;wfС‚$%%БsчN РоН{­€iC\{эЕЬ™3‡x€|АЦњїо{ .И€qуЦ…j/Иро{я=о{я=Цз Жƒ 60rфHЖmл–*NŒ&ќб#DWuлЬљ@гЌ"Е^Урpq ћdпј0Qš MзЧсЕu AkbЊŸaCЎp§Cј„П‡коЁ"П.§љ7*№џ6&š‚єдTвZЖ$6ЪІЌwцп~R!š€ЦђКiВy_~љ%яОћ.Эš5 F8ўќч?SZZ @llЌЕNг4š7oёxКЎG\чёxИїо{ИуŽ;Тж]vйe(ЅxєбGдFmыŽДЃQTTФУ? РUW]e-Злэ\~љхV€P-ZДќYrїнwIII<єаCLœ8Боў,XА€mлЖ‘––Цuз]g-япП?_|qФ}ђђђ0M“мм\Жnнj-oеЊmлЖE)ј+,,фЁ‡ТЏ›ІiL˜0ЏзЫc=ёœ:uъdeјišЦѕз_Рњѕы™:u*элЗ uыжœўљжАх ЛяОЅTиѕ„Њы{з]wašІЕ<јияпПŸљѓч“””@Лvэ˜0a€•QyЌ‚™ŠЁ§ЉоПььь&l™:u*гЇO— žBO €†ТaгIŒ‹Ѕmj лЗЇEr2n‡LeјќеmЋ}Ж3LB3MŽБSœR!ЊЃ9нSшђqR y§жѕRЎ‘‰ЇšRЄДlIЫф$Ђ\N4ЅаCŽqќоS…'›&;G^Аk=jЬ]жЇOы{›ЭvLэ|ўљчьнЛ—ЫEяоНУж%&&Аjе****j˜hЈ5kж››‹Ых ы{ѕ6ЪЫЫ‰ŠŠ:Њ6–/_NQQNЇ“nнК…­ ЖљЩ'ŸP\\L\\\ињђђr+X:rфHFŽYo{~ј!рЯ€Ћ^9tШ!aY‡Agžy&Я?џ<ЧЪ єљ|lйВŸЯј’AK–,ЁИȘддT222ТŽМnK–,ёWzЊy?їмsУ~Эђ'ўљ˜Л8[.ЇƒhЗ“Ђ’ ‹‹).-ЃЂвƒвMMѓWЖUZрўcЊЊ<ъ‘1ыпЄ‘SЕўp4Bœ0 N[ЕЁHvш:I ‰Є4oN\t4v]dуUe$G:tU00ф}UћB4:M6Зmл6€ˆnС Ю‘ŠєЭ›7ў!Л:t[—›› ` љЌОўhкЈ>ЗзоН{­uПўњkX…#ёу?‘ЏW0KЭыѕђѓЯ?зьœsЮ95‚{ѕйБc-[ЖЌБ.R!‘ ыЏПžН{ї2sцL-ZФцЭ›щдЉSX-(xнђђђЌ К нЛwŸŸЯсУ‡­ьЗ ъ…FBОез P„>vСы 5Џi‹-аеќrrrjђBƒ†AСaФ ™#Џ!ъы_PpЦЦЬуёpїнw3{іlьі&ћ–'„П“`єЮqгЊЦpўЯBM)lИ6\‰ ФEGCAQ‡‹KЈ№Tтёљ0LЖˆ,{ Bn@хўВ!ёд#нMqт5ќЕrhњ‹ %ФХ’жЊ Б1*ЕЊк=4Тth&_ШћьЉ3MS“НЋ:Ю-ї IDAT­ЌЌ"qЋ=R%%%5–UTTўj K—.­uп`сci#66іИДI0+.tЈgPшВъйs@ƒ”Е3RЅWЧSы>гІMcжЌYœwоyLŸ>AƒaЗлщоН;›6m л>xнвввъМnG„lHgшuЊ~MMгД>P#]ߘ˜˜#ъЯбЈЏ‘ЖkЌžyцКvэЪ№сУOtW„ЂIˆ<LјЂRЪКБŒr:p%'’OqY9љ…QZVŽЯ*’‡ Nў‰tZ­й@ЧŽљдŽJ§;Цc†7ьНš?KЇЖlХHn,ѓўˆSлoёz:‘z>UлAѕ73ы'Saг5туhгК5ЭќCiC^яѕцДщ„W“ ф‡;ГтBэлЗЏо§ЋџЄ”bЯž=5Ж ЯŠ‹‹IKKГ2ЇB†1јs4mЄІІFЂ[[ еЅK=і>њ(ќуYДhQX#@ƒз­ААгN;-тшБ^ЗкЏ'ј3CГ@ѓђђЌяЛvэzмлŠє‹џгO?MAAAXБ–ММ<туу­ŸƒїoнПпC^^џјЧ?јќѓЯOtW„тјcP 0чДлHŽ‹%!6†”ц ‹‹)8|˜Т’ЪЫЫ1”‰в4а54Эf%ў5 …S`0m8e†лiўQЪBˆЦ.XHЈ–™ђL… EЋfЭImй’Єји@…Z‰Ъ q*jВ§ЃGрЋЏО"???l]]йYС9цЊgэ­YГЦ p„F†ŠлэЦ4ЭАЪŸAљљљєьй“ВВ2kYtttФ6Ојт +АЉ ЅяОћn6 шйГчeV"ž{юЙДlйŸЯЧW_}ЖnэкЕœўљas№q4C•ƒѓш}ійgж_у§-ZБoМё#FŒ ЪхццZCeC‡žŽ5 ]з)((ˆX$bїюнœqЦaэз6!lC&Š нцєгOЇoпО@еѕ ўмЃGˆВКк:’ kƒC~Ь<Ш„ ЌLШoП§–C‡QXXHЧŽЙікkИёЦ­`Рž={7nз\sMXF^mчІКM}ћ<љф“иэvЋ@ј?˜_|ёEl6[иuЎы8ѕ­ЋMZZрfћ|>vюмЩЂE‹2dрœm6[XџLгфЅ—^ŠиПЦfЫ–-МѓЮ;5Њ- !„8ОTЕЏкhј‡iј‡‡ЙvbЃЃHŠ‹Ѓur2m[ЗІ]j*)ЉЄЕlEГјbнnœКŽf*T ђ­2MЋњ­‰џЋЎЬНу_ЗюvŽЧ1"о|kšѕЅщ`bт3̘ЊjNСаa|еП„h Њ?_њЧє“5аз№з_Еœeиu„икІЖЂuѓfФЧDћчФ iЏяњоЏ…'7MЌяzЧAnn.уЦу›oОЁsчЮДmл–ЏПўš{юЙ‡ЛяОЈљс——Ч!CиМy3NЇ“V­Zqша!^zщ%ўѕЏёщЇŸтt:ЩЬЬdЦŒ 6 У0Иїо{yђЩ'бu~§њЁы:ызЏчъЋЏцёЧ{ƒ=x№ C† сћяПЗк8x№ sцЬсХ_dѕъе8ВВВ"ЖЁi§ћїЗк˜Мѕж[фххёЦo0`РР_щѕЙчžу“O>Суё””ФЙчžЫЅ—^Ъ%—\врЧgлЖmќёdћіэtэк•ффd~ўљgxрЎЛю:Р?DњВЫ.cЦŒ,]К”qуЦQQQAЗnнШШШ`нКuм}їнЄЇЇsщЅ—””ФКuышаЁ•••мrЫ-Ь™3ЇгЩ€№zН|ћэЗdgg3mк4оџ}^xс–.]ŠзыЅYГfœ{юЙЬš5‹Чœ+V№§їпўЊГ#GŽфђЫ/чўћяgљђхтt:>|8Зоz+чwяОћ.SІL!++‹QЃFБ|љrОњъ+^zщ%ыZхффpп}їБlйВАумtгMќс ;;›UЋVq№рAьv;У† у/љ‹U)И6Пќђ НzѕЂ  €ЄЄ$JKKЙыЎЛxјс‡­mо~ћmЎЙцzєшСˆ#XО|9п|ѓ sцЬсЂ‹.j№cy29r$cЧŽхЦo<б]4с!N9‚Еж НЅЌ >Uэc*…з0Јєx))+ЅЌЂ‚ђŠJ*<<^^У‡a(LгєЫаќCбЊ~ЭЊјЂцћЭёjщёыš3ЋЮu!ЗнІRxН^|^/vЛ‡У^KЛФM]S˜WЯz LЊ+…гс >6†ЩIДHNТiїПЮk|+„8ЫћH“фД%K–№ѕз_ХиБc‰‰‰!##ˆ|3YYYЩ{яНЧцЭ›iоМ9уЦ###ƒUЋVQRR‚лэ&..ŽN:…U;нЙs'K–,aяоНЄЄЄ0tшаUfЋЗБeЫ’““9џќѓдЦ/ПќТG}д 6BUTTXU\CЙ\.233У–эоН›E‹qрРў№‡?0nмИАlП§ћї‡eЗЕjеъˆ n”——Гhб"ЖnнJJJ —\r †aАzѕjqЙ\ЄЅЅqњщЇ[}[Мx1ћїя'==1cЦXYŒ6lр—_~aрР5†ћцфф№Щ'Ÿ——G›6m1bщщщжњ}ћіEœŸАK—.lпОНF&\tt4iiiaй‘AmлЖ ЋЦ[PPРТ… йЕkmлЖх‚ . YГfжњттbrrrjЇM›6ФЦЦZ˜CЅІІжЈžЩž={xы­З(((`Ш! 4ЈЦ6љљљМћюЛЕіЏ1zџ§їЙыЎЛиАaCФ‚*тФkт=BœRЊПšњWрр}lUB >Ѕ№њ *<^JЫJ)Џ(ЇМммЋєz0 У?З^рцW˜J3баQhжёjаjў№{ќњ)шарїФрvš†2 М^^Џлэі0ˆpbФЈЖъИ=nBœ@'sяH‚іСЁДšRш:Иlš7KІeѓf$ХХaљc…VЯБ…GЏБМІš| /’]ЛvеШB4^>Ÿž={2kж,k.Fqђ‘ї^!šŽуШ YЭi(fр'ŸЯєgэyН”•–RZ^†ЧуЁЂВ‚ђŠ М^3PўB(„Ё”ф‚цџ Ы"Є*иuRђLeњЏFpа5 ]зPJУg(tаЕА`žЌF P <бЬ­# ф&˜v›Nb\i­[‘ЫщŸ#T феv|!Фбi,ЏЇ&[ЕЖ.Сљђ€Z…льйГЩШШ žBќNŽлoQdи4апль66nЇXЗУHРP&^ŸЏЧ‹з0ёx+ЉЈЌФуёb˜†iтёx№њ |†‰RfXЅлрАUUЕРпšІЁЁƒЎЊ"aўя5|Ќg™џЦ;˜єЯьgЕЃizШzџЯКЎЁi:Ї‡нŽУсРnгq9œИнnN;6]GзuŠJJ8p0Ÿвђr”Тр Й‚Е† C†D qВЊДRJYїsuM-tВЈГщC™ —нA\|Щ‰‰4Kˆ'кэТaЗћxJYњкпoы|Ѕ !š˜S*Ї”bпО}Ќ^НкZЖ|љrzѕъеш‡ !ќУ˜џўїПГbХŠн!„TKКЋSmл“ЮlšŽCзСШМ мм› |†ЏЯ‡с3ќѓщ)ЏЧ‹ЧчГ†уЪФчѕсѓ˜†с/ЁІR`š˜ІВ†э*L”IXАа›ѓа`Ht,XIв?сНЭ Ющz ’ЏІЁЁЁыўev› ‡УŽнnGGCгuЯю_fг5ь6;Л›]G 'ЦэЦЎлШЫ/ ИИУTh`žЊыЊЫ}П8Щд—ifОРыищtZлŒjaУfCXУh5…гf#&&šФј8утˆ‹ŽСэvњГ№ЊЖoфG№b–t\!НSjhmQQQФ ќЛvэЪгO?}z$„8žnЙхžyц™мQŸSшЃGpДE1j=VрЛЊа™a}рg…а3•‰RЪŸЅчѕтѓњ0 гШ3M+ h>УР0ІђџoђъЪО ыПТЌ†ŽЭјвlиь:6MЗnШuЭПЮщdойmшЪдu›ј ?Ырљ+х•^&яP>Хeex|^жЁјч$ nQ›к ЧЋвšІ‰ЯчГВё\.WФŒМ“%g œW№§CгќAћ(—“„˜уHˆ‹%кхТJЯ R0№˜ЯOžŒ{’].!NЄ“ю§ЃЇT OбtmлЖAƒYEjФЩM>z„8ѕœ I ећ`њŒУYл)0”Т4ЪS њ‚уa­alСрšТ?#‰ЊОLShhhК†Mзаб­ЌBЋЩЭ†\џ{Љ˜їOУы3(.-gпС<фSщѓњЌWŸІ…жЬ89œ OqТU§n …Œѕё|>>ŸЅ6› ЇгvУ}ЂnОУ~ŸбBТcЁ‹9MSиt.Ї“јИX’INLРiГcЃъНшЗяtЕŸхѕ&„EyBё;3f У‡чж[o=б] =BœzN†{ЧКоyТŠA„ьa™vсyСh\=ЫBЯ6јcЕіŽ>ми:4M…з4ЩЫ?Фўƒ),.Цу5аlі@ЛК ф+=№џбЯJщё фЉЊ­Ъ$˜ѕzMlL,б.7š |>^У‡Я0ёxМTTTр3LLУРg†зыУP&fА „ §]Ђц AГй„lу>ЎžП6]ЧnгБлќеpuЭ?\жawрr:qЙ\иu ‡нсЏ˜kгѓѕщшКШlА№†V-‚'OS!ЇЦШ;ЅцШ1bљљљьнЛ—дддc:жюнЛ)++ЃE‹”••Ї›Жmл’ŸŸЯцЭ›ЩЬЬ<бнiАЮ;“ŸŸOEE)))>|јЈŽГxёb”RœuжY|ѕеWЧЙ—UВГГЩЮЮцЎЛюbцЬ™ПY;Ђnwмqwп}Зё„BœКjЄ>еВ<вЂ@„УЁлАЛmИNbЂЂ№ЦЦPV™@EEх•”WVR^QNЅЧ?ќб ;Tј‡ђ9ЧЛAЄРЃ8ŽНЌHU‰‡ь<ЅЌЁЊ … ›nѓЯчrх"кE”лM”Ы…лхТnГЃщјчЦ3MLSс5 М^/ЪT˜І‰ašў@ŸЯ‡aƒxЪ*ŽЁ”ВЖ эя4 є@uXMзбѕ@ /агu ЛЭ†нnЧaЗћ‡ѓъvн†УnЧfГЃы kКzЕgЂ?ˆчП*СџA“ь;!Фoъ” фЏџшшhтууOš@^Pc lИнn’’’Ž:ўЪV­ZЧ^еЎБ^чІ`хЪ•|џ§ї,XАрDwE!„8aT№п`р"'UШЈ;€,: jhvЂьvbЃЃ1LvTyE%хe”–љƒy•^/^У‡a(|†Cљ7ўљП”U˜ Њ‘cb„d{I(фSж?ў!дŸ§йyўч(NсАщИœNмQn1бQФDЛq:8l6є№™яАiиь`ЗУ!г)Р0§О`žе Ѕ0 ќ“JЏ—вђ2JJKёxН—Pщѕb˜†?иЂšRVЬЇЖтЋ†FЂЊ}_ЃИшёТлt5МZHѕЉ/4 4ЅЁYbг_є!XBзpиlИœ.ЂЂЂˆŠŠ TmёАщиtB‚g‘л >„‘’Lu]НZ€И&с•”ыS5]шsЉЎќЯ†х†жљœ”т-Bˆc$N‰@оџўї?>џќsœN'ЃGІ}ћіѕюГyѓfVЌXAyy9=zєрМѓЮ;ЊъЏ;wюфГЯ>#77—јјx:tшР Aƒp:ж6„эчp8hлЖ-ЅЅЅьпП?l]›6mТіЏзых§їпч‡~ 55• .И ж ЛІiђщЇŸВuыVŠ‹‹IIIсŒ3Ю K—.З/..ц№сУ$''У_|СкЕkqЙ\Œ3†гN;­ж~mоМ™ЅK—bC‡ЅgЯžužЧO?§ФђхЫ)++#++‹ЁC‡ВtщRКvэZguкoП§–•+WbГй>|x­чАcЧжЌYCnn. жухp8ъь@~~~ФaС-ZД ...lйюнЛљшЃ8tш:t`єшбDGGзлЦЉЎИȘщгЇГhбЂн!„т„г‚џjсK:œP-‹(˜›ЌЦ јч> TuИœD9ФEЙhž˜€з4Љєxё•^/ххTTx№>*<<^†aВŸЊ2ŸT`ю2”nЕЋ…ЬП'ŽMUЯИS(ќCVЕjQR›Э†нaЧэŒЦщ№ˆŠŠТщАуДлq:ќ lŒ<џŸЋЏОš№щЇŸRVVЦтХ‹1bнКuуЇŸ~ВЖ]О|Й`lпО=У† уџј7nфškЎЁC‡ДoпžЫ/Пœ4ИЛwяцŒ3Ю`Ъ”)L›6+ЏМ’Ў]ЛђУ?диvЫ–-tщв…{яН—;wrрРxрКvэЪuз]іСЯ=ї`Зл‰'==?ќ+ЎИ‚sЯ=—‡~˜›oО™Ю;ѓњыЏGьзНїоKVV=є‹-b№рС<јрƒЕžЧ‚ 0`ызЏgЯž=L:•>}њ0fЬЖlйRы~wмqgu?ќ0Знv™™™Ьž=ЛЦv‡+ЏМ’ђйgŸQVVЦТ… 6l™™™ьмЙГі‹АdЩnП§v:wюl=–уЧgнКuaл=ђШ#Дoпž?ў˜ттbюПџ~КtщТњѕыыmуTїШ#0jд(њєщsЂЛ"„B4J*фЋ!ДZОt lК†нЎуr8ˆ‰rMr|<-iн,™6-[в.Е5эвRќ_ЉЉЄЇЄкМ%-HŠ‹#.:š(‡ЛІЁ+M™(eЂL#ь+X­4ЌouŽNVёBлр2Ує™ Lг_Aж4Р4а”‰]ЗнN\T ББ4KH uѓfЄЇІ‘šJЛДT2вRЩHMЁMЋ–ДnоŒЩI$'Ф“CL”›(Ї ‡ЭюЏф˜Юˆ |ёћхЉ…>?O„#ymIOq,4U§Б ЩЮЮfжЌY 6Œїо{ЈЈ(ЖnнЪ!CЌ,З]ЛvбЖm[kŸI“&1ў|цЮЫW\Р?ўHff&={іф‹/ОЫЬKIIaпО}Ќ[ЗŽО}ћZЫ|№AІOŸЮЬ™3™:uЊЕќЮ;яф‰'ž`вЄIЬ›7ЯZ^PP@ff&ЙЙЙ5ішбЃ™™™ќїПџ­їМ:DѓцЭшнЛ77нtW^y%%%%\vйe|№СŒ1‚%K–Xћ†СiЇFnn.ћїяЇYГf€?ъј{їюeѕъе 8€ВВ2Š‹‹щгЇ{іь!33“ГЯ>›YГfХЌYГИчž{ˆ%777,#эљчŸчЦo$++‹UЋV‘œœЬоН{­ZЕтПџ§/#GŽДњ{ћэЗѓьГЯђёЧ3|јpыјcЧŽх§їп'33“Ў]ЛђТ /””Ф+ЏМТеW_Ус`ЧŽaY|їнwџћпyњщЇЙх–[Ќх7нtЯ=їSІLЉ~т‰'ИѓЮ;Йјт‹yѓЭ7V^чЮiзЎџњзПшеЋWи>ГfЭ";;›лoП'žxТКЦнКuУуёАyѓfык‹p?џќ3gžy&7n$%%хDwGЃ&ќб#„'5V:аё x(ЅТ3њBоц•>гєЯЅg˜x=>*++ёУG…ЇЭ3/CIDAT’JгPxMŸЯРgјС;0M…a* х/&`ч3#<˜w*ѕќе[M+€gЭ]‡†Ž?ГЮ_аСŸIi TiЕi:vЛ ‡УA”Ы‰]Зуpиp:И\.ьšŽЎыV€ЈЊPщЙ#ѓўfЏ-!ФяЇБМ‡5йŒМ}ћіёЬ3Я0sцLЂЂЂшвЅ wоygФ}жЌYУќљѓЩШШрђЫ/З–wьи‘ЁC‡ВnнКщ f‰-^М8lљрСƒиЖm[иђЄЄ$юОћn^~љхА›м‚‚rrr˜>}zƒк5|јp&OžŒЎыФЧЧѓшЃАlй2*++­эŠ‹‹љѕз_1 ƒ?ќаZЧgœ–ХMЋV­HMMРхrёќѓЯ‹Эf#;;›ддTJJJXНzЕЕ_eeЅuгЇO'99№D}єQ УЈq?џќ3љљљaT›ЭЦO:šИшЈSя+*ŠXЗл=œNЂ]NbЂ\ФEG‘G‹Є$Z5oNJ‹цЄЖnMFZ:Ж;NэOЇУiЇqzz:iiДIiEыцЭIŽ'ЦхТэtрДлАiZ ˆ‰Žџц1R†ІB4v%ˆMxŽМ?ќЧCrr2нЛw[7rфHюКыЎћГншЏŽ"АZДhQƒ&йПїо{бuI“&…-///ќAŸъ&OžЬДiгиКu+Ы–-cиАaЬ›7вЁC‡zл­Ўz_ƒѓ†AQQ-ZД 11‘'Ÿ|’ 60jдЈАўƒŠ‘њtС„]3]з9§єгЩЭЭ ›7nэкЕжар`,hФˆўљPЊeъƒ}—\r 'Ndєшбœ}ій$&&2oо<кЕkБOcЦŒЉQеДC‡lиАЁЦ\vїп?nЗ›Щ“'[Ы”Ru>^Ё8Р№сУБлэМёЦиэ5_ZяМѓхххtяо–-[†­ Ї-ZtTлІю‹/ОрЋЏО Ыb[cњ BˆІDЋёЭq:nѕљѕ"МЯGjвІi8m6Аў`ы‚и щјvP4P„j'еЫЄ|ЎџvЏ-!„ЈЎЩђ‚T)))5>Xввв"юѓэЗпАjе*+ˆўЙі‚ѓœ5$3  WЏ^МўњыьиБƒЧ{Œ?ў˜7тvЛkн'..ŽkЎЙ†ЧœgŸ}жъУ‹/ОШУ?м vЋKOOћ9Д BhFРmЗн†iš,_Оœwоy‡5kжАgЯLг?ŒЁЎЁpЁУ“ЋЗкN01::šФФФАэуттˆЇАА0lyГfݘћьcъРgœСыЏПЮO?§Фпџўw>ўјc6mкderжeпО} <˜­[ЗbГйXГf ƒ ЊБ]№љЕkзЎАч—RЪZ—““So{Їг4Йѕж[™9sІB!„BqJkВ<Ча @LPII ръмpУ З‰mаБђѓѓЙс†XИp!“&MbкДiœyц™|љх—œ{юЙЕюwѓЭ7ѓєгOѓСА}ћvrss)((`ьиБ >PеЋЅжeйВeмtгM”••qы­ЗrћэЗгБcG&NœШkЏНv\кЉяqЉэЏysцЬaШ!,XА€еЋWS\\Ьз_Эз_Эў§ћљлпўVcŸ†>VyyyмpУ ,ZДˆЋЎКŠщгЇsц™gђщЇŸZѓђецѓЯ?ч‘GaпО}Ьž=›‰'ВaУ†sнŸ_щщщж0jQПЙsчтp8Иф’KNtW„B!„BˆЊЩђ‚Yw‘*МюйГ'т>­[ЗцћяП'&&†ѓЮ;яЈліљ| 6ŒѕызѓŸџќ'lОНВВВ:їЭШШ`ќјёМљц›<їмs8p€)SІрp8ŽК? ёХ_0jд(ZЗnЭwп}„ЊЏЯG"јИрѕzУЮЋДДДЦW€>њˆ+V0sцL&Mš„aЌ_Пžз^{йГgѓъЋЏF ф5”зыeшаЁlкД‰7оxƒџїџўŸЕЎ!ч>zєhўњзПR^^ЮЪ•+йМy3“'OцНїо LЖjе №gрЫѓыTRRRТпўі7оyчВ!„B!„т”зd‹]ГоіьйS#pїЩ'ŸDм'\YЖl^ЏЗЦњ+V]oлыж­c§њѕиэv.ЛьВАuпџ=@ФЂAЗп~;р/zБpсBЎНікzлџќs6mк„лэЎ‘ѕеЧ+˜]ХЋЏОŠЫхbётХ<ћьГaлŸ_›7ofзЎ]5ŽГkзЎЭПx*йЖm—^z)gžyц‰юŠB!„BqТ5й@^яоН6l†a0}њt+€Г{їnўљЯZл…1ИюКыHMMeпО}мџ§aAŸœœ&OžЬљчŸжN0рчѓљЌeСЂ>ŸM›6YЫП§і[ќqЋeee5цjшпП?§њѕЃААСƒ“‘‘qDчк—аяCћ[[Ÿ7lи`ЗRŠiгІБcЧ~ќёG |~Йр1ЊЗК,4жВeKЋ ФC=dѕЇЈЈˆGyФ*NQНИDYYW]uUkAA§њѕЋЗнКжЯНЂЂ"Ќš№W_}ХSO=јƒl•••ѕž{їюн­ЪРйййaеqGŒС€0M“›nК)ьXљљљ\rЩ%asч џ0їрkF!„B!„8хЉ&,77WuыжMъЌГЮRз]wJKKSГgЯV€T‡д5з\cэѓэЗпЊєєtЈ>}њЈыЏП^]xс…*66VНђЪ+жv/ПќВš4i’uœў§ћЋПўѕЏЊЌЌLyН^uійg+@ЕhбТ:FлЖmеВeЫT—.] š7oЎFБяЏПўКд|pDчќф“OЊQЃFY§;vЌzъЉЇ”RJ=їмsjќјёжКaУ†ЉќуJ)Ѕж­[Ї\.—u.7п|ГъйГЇ5j”ZДh‘в4MщКЎZЖlЉ,X >јрuэЕз*‡УЁ•••ЅюЙчUXXЈ–.]ЊЎПўzЅеЉS'uз]wЉММ<Ѕ”RХХХj№рС P™™™ъКыЎS;vTйййъДгNS€JIIQ_|БЊЈЈPѓчЯWvЛ] 8PuыжMЭœ9S§їПџUљЫ_TЫ–-UNNŽRJЉO?§TнpУ *&&ЦzlГГГUnnЎZЛv­Кљц›UbbЂTлЖmеwоЉvюмЉ*++е™gžЉеЊU+uУ 7Ј .И@ЅЇЇЋ+VЈŽ;ZзИqудž={ддЉSUЛvэ bccе7оЈ>ћь3ЕrхJuљх—[зиnЗЋ‹.КH­[ЗN)ЅдоН{­ЖкЗoЏЎЛю:5qтD•””ЄВГГ•išGєx !„B!„тдЁ)UЧ8Ф& ЂЂ‚љѓчГvэZЂЂЂИшЂ‹2d=іёёёИ\.ZДhVLЂММœ №х—_R^^NЇNИќђЫУЊ ЎZЕŠМММэўљ8N***˜7oп|ѓ }њєсвK/%!!}ћіёц›o’œœЬ…^Б№УкЕkЙъЊЋиКuЋ•1жK–,ЁИИ8lY\\#GŽdщвЅ5†ЁFGG3fЬЖoпЮмЙsљх—_hбЂЃGЖ†(Џ^НšѕызгЏ_?њїяЯwп}geш…3f лЗoЫl 1bёёё€Пщ›oОЩŠ+9r$уЧчŸџќ'†aрrЙHHH`ќјёфффА}ћvЦŽЫŠ+XЖl K—.Lž<™ффdЖnнj … 5tшP:Фwп}Wcн AƒhйВ%хххЬ;—ѕызЃы:gœq—^z)qqqфццђж[oбЂE ЦOiiЉеяPYYYx<žˆ•ћєщУщЇŸnћтХ‹YЙr%ЄЇЇsёХгЃGћ !„B!„B5љ@^cБkз.RRRЌтУ† уТ /фњыЏ?С=B!„B!„'ƒ&;G^c2cЦ 222ИъЊЋ˜?>ј]Š\!„B!„BˆЦС~Ђ; Њ*ЃюлЗ—_~™ПўѕЏ,YВЛ]!„B!„Bс'CkOлЖmуъЋЏцЧЄoпОЬœ9“Ў]Лžшn !„B!„Bˆ“ˆђ„B!„B!„hdŽ image/svg+xml Inbound connection: redirect to daemon for encryption SYN redirected to daemon: queue for daemon to initiate proxy connectionSYN+ACK on proxy connection: queue for daemon to complete handshake Outbound connection: redirect to daemon for encryption Handshake packet on proxyconnection from daemon: queue for daemon to set ENO option TOS-marked packet: remove mark SYN+ACK on redirectedconnection: queue for daemon to delay handshake tcpcrypt-0.5/config.h.in0000644000175200017520000001564612742073027014327 0ustar sorbosorbo/* config.h.in. Generated from configure.ac by autoheader. */ /* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP systems. This function is required for `alloca.c' support on those systems. */ #undef CRAY_STACKSEG_END /* Define to 1 if using `alloca.c'. */ #undef C_ALLOCA /* Define to 1 if you have `alloca', as a function or macro. */ #undef HAVE_ALLOCA /* Define to 1 if you have and it should be used (not on Ultrix). */ #undef HAVE_ALLOCA_H /* Define to 1 if you have the header file. */ #undef HAVE_ARPA_INET_H /* Define to 1 if you have the `bzero' function. */ #undef HAVE_BZERO /* Define to 1 if you have the `clock_gettime' function. */ #undef HAVE_CLOCK_GETTIME /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H /* Define to 1 if you have the header file. */ #undef HAVE_FCNTL_H /* Define to 1 if you have the `fork' function. */ #undef HAVE_FORK /* Define to 1 if you have the `gettimeofday' function. */ #undef HAVE_GETTIMEOFDAY /* Define to 1 if you have the `inet_ntoa' function. */ #undef HAVE_INET_NTOA /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define to 1 if you have the `iphlpapi' library (-liphlpapi). */ #undef HAVE_LIBIPHLPAPI /* Define to 1 if you have the `pthread' library (-lpthread). */ #undef HAVE_LIBPTHREAD /* Define to 1 if you have the `wsock32' library (-lwsock32). */ #undef HAVE_LIBWSOCK32 /* Define to 1 if you have the header file. */ #undef HAVE_LIMITS_H /* Define to 1 if your system has a GNU libc compatible `malloc' function, and to 0 otherwise. */ #undef HAVE_MALLOC /* Define to 1 if you have the `memmove' function. */ #undef HAVE_MEMMOVE /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* Define to 1 if you have the `memset' function. */ #undef HAVE_MEMSET /* Define to 1 if you have the header file. */ #undef HAVE_NETINET_IN_H /* Define to 1 if the system has the type `ptrdiff_t'. */ #undef HAVE_PTRDIFF_T /* Define to 1 if you have the `select' function. */ #undef HAVE_SELECT /* Define to 1 if you have the `socket' function. */ #undef HAVE_SOCKET /* Define to 1 if you have the header file. */ #undef HAVE_STDDEF_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 `strchr' function. */ #undef HAVE_STRCHR /* Define to 1 if you have the `strdup' function. */ #undef HAVE_STRDUP /* 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 `strtoul' function. */ #undef HAVE_STRTOUL /* Define to 1 if you have the header file. */ #undef HAVE_SYS_SOCKET_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_TIME_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Define to 1 if you have the `vfork' function. */ #undef HAVE_VFORK /* Define to 1 if you have the header file. */ #undef HAVE_VFORK_H /* Define to 1 if `fork' works. */ #undef HAVE_WORKING_FORK /* Define to 1 if `vfork' works. */ #undef HAVE_WORKING_VFORK /* Define to the sub-directory where libtool stores uninstalled libraries. */ #undef LT_OBJDIR /* No asm? */ #undef NO_ASM /* Define to 1 if compiling for a Linux system */ #undef OS_LINUX /* 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 /* If using the C implementation of alloca, define if you know the direction of stack growth for your system; otherwise it will be automatically deduced at runtime. STACK_DIRECTION > 0 => grows toward higher addresses STACK_DIRECTION < 0 => grows toward lower addresses STACK_DIRECTION = 0 => direction of growth unknown */ #undef STACK_DIRECTION /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* Default local control socket for tcpcryptd: unix-domain path or localhost port-number */ #undef TCPCRYPTD_CONTROL_SOCKET /* Default divert port for tcpcryptd */ #undef TCPCRYPTD_DIVERT_PORT /* Default jail directory for tcpcryptd */ #undef TCPCRYPTD_JAIL_DIR /* Default jail username for tcpcryptd */ #undef TCPCRYPTD_JAIL_USER /* Default network test server for tcpcryptd */ #undef TCPCRYPTD_TEST_SERVER /* Version number of package */ #undef VERSION /* Define for Solaris 2.5.1 so the uint32_t typedef from , , or is not used. If the typedef were allowed, the #define below would cause a syntax error. */ #undef _UINT32_T /* Define for Solaris 2.5.1 so the uint64_t typedef from , , or is not used. If the typedef were allowed, the #define below would cause a syntax error. */ #undef _UINT64_T /* Define for Solaris 2.5.1 so the uint8_t typedef from , , or is not used. If the typedef were allowed, the #define below would cause a syntax error. */ #undef _UINT8_T /* Define to `__inline__' or `__inline' if that's what the C compiler calls it, or to nothing if 'inline' is not supported under any name. */ #ifndef __cplusplus #undef inline #endif /* Define to rpl_malloc if the replacement function should be used. */ #undef malloc /* Define to `int' if does not define. */ #undef mode_t /* Define to `int' if does not define. */ #undef pid_t /* Define to `unsigned int' if does not define. */ #undef size_t /* Define to `int' if does not define. */ #undef ssize_t /* Define to the type of an unsigned integer type of width exactly 16 bits if such a type exists and the standard includes do not define it. */ #undef uint16_t /* Define to the type of an unsigned integer type of width exactly 32 bits if such a type exists and the standard includes do not define it. */ #undef uint32_t /* Define to the type of an unsigned integer type of width exactly 64 bits if such a type exists and the standard includes do not define it. */ #undef uint64_t /* Define to the type of an unsigned integer type of width exactly 8 bits if such a type exists and the standard includes do not define it. */ #undef uint8_t /* Define as `fork' if `vfork' does not work. */ #undef vfork tcpcrypt-0.5/.gitignore0000644000175200017520000000040712742073006014256 0ustar sorbosorbo.*.swp *~ *.so *.[oa] *.lo *.la .deps .libs Makefile aclocal.m4 config.log config.status config.h config.log autom4te.cache stamp-h1 libtool autoscan.log configure.scan Makefile.in m4/* config/* config.h.in configure .dirstamp tcpcrypt-*.tar.gz tcpcrypt-*.tar.xz tcpcrypt-0.5/m4/0000755000175200017520000000000012742073023012604 5ustar sorbosorbotcpcrypt-0.5/m4/ltsugar.m40000644000175200017520000001044012742073023014526 0ustar sorbosorbo# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- # # Copyright (C) 2004-2005, 2007-2008, 2011-2015 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 ]) tcpcrypt-0.5/m4/ltoptions.m40000644000175200017520000003426212742073023015110 0ustar sorbosorbo# Helper functions for option handling. -*- Autoconf -*- # # Copyright (C) 2004-2005, 2007-2009, 2011-2015 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 8 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_UNLESS_OPTIONS([LT_INIT], [aix-soname=aix aix-soname=both aix-soname=svr4], [_LT_WITH_AIX_SONAME([aix])]) ]) ])# _LT_SET_OPTIONS ## --------------------------------- ## ## Macros to handle LT_INIT 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], [1], [Assembler program])dnl test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [1], [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_AIX_SONAME([DEFAULT]) # ---------------------------------- # implement the --with-aix-soname flag, and support the `aix-soname=aix' # and `aix-soname=both' and `aix-soname=svr4' LT_INIT options. DEFAULT # is either `aix', `both' or `svr4'. If omitted, it defaults to `aix'. m4_define([_LT_WITH_AIX_SONAME], [m4_define([_LT_WITH_AIX_SONAME_DEFAULT], [m4_if($1, svr4, svr4, m4_if($1, both, both, aix))])dnl shared_archive_member_spec= case $host,$enable_shared in power*-*-aix[[5-9]]*,yes) AC_MSG_CHECKING([which variant of shared library versioning to provide]) AC_ARG_WITH([aix-soname], [AS_HELP_STRING([--with-aix-soname=aix|svr4|both], [shared library versioning (aka "SONAME") variant to provide on AIX, @<:@default=]_LT_WITH_AIX_SONAME_DEFAULT[@:>@.])], [case $withval in aix|svr4|both) ;; *) AC_MSG_ERROR([Unknown argument to --with-aix-soname]) ;; esac lt_cv_with_aix_soname=$with_aix_soname], [AC_CACHE_VAL([lt_cv_with_aix_soname], [lt_cv_with_aix_soname=]_LT_WITH_AIX_SONAME_DEFAULT) with_aix_soname=$lt_cv_with_aix_soname]) AC_MSG_RESULT([$with_aix_soname]) if test aix != "$with_aix_soname"; then # For the AIX way of multilib, we name the shared archive member # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o', # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File. # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag, # the AIX toolchain works better with OBJECT_MODE set (default 32). if test 64 = "${OBJECT_MODE-32}"; then shared_archive_member_spec=shr_64 else shared_archive_member_spec=shr fi fi ;; *) with_aix_soname=aix ;; esac _LT_DECL([], [shared_archive_member_spec], [0], [Shared archive member basename, for filename based shared library versioning on AIX])dnl ])# _LT_WITH_AIX_SONAME LT_OPTION_DEFINE([LT_INIT], [aix-soname=aix], [_LT_WITH_AIX_SONAME([aix])]) LT_OPTION_DEFINE([LT_INIT], [aix-soname=both], [_LT_WITH_AIX_SONAME([both])]) LT_OPTION_DEFINE([LT_INIT], [aix-soname=svr4], [_LT_WITH_AIX_SONAME([svr4])]) # _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@<:@=PKGS@:>@], [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], [lt_p=${PACKAGE-default} case $withval in yes|no) pic_mode=$withval ;; *) pic_mode=default # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for lt_pkg in $withval; do IFS=$lt_save_ifs if test "X$lt_pkg" = "X$lt_p"; then pic_mode=yes fi done IFS=$lt_save_ifs ;; esac], [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], []) ## ----------------- ## ## LTDL_INIT Options ## ## ----------------- ## 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])]) tcpcrypt-0.5/m4/ltversion.m40000644000175200017520000000127312742073023015076 0ustar sorbosorbo# ltversion.m4 -- version numbers -*- Autoconf -*- # # Copyright (C) 2004, 2011-2015 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. # @configure_input@ # serial 4179 ltversion.m4 # This file is part of GNU Libtool m4_define([LT_PACKAGE_VERSION], [2.4.6]) m4_define([LT_PACKAGE_REVISION], [2.4.6]) AC_DEFUN([LTVERSION_VERSION], [macro_version='2.4.6' macro_revision='2.4.6' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) tcpcrypt-0.5/m4/libtool.m40000644000175200017520000112507312742073023014523 0ustar sorbosorbo# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # # Copyright (C) 1996-2001, 2003-2015 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) 2014 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 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 this program. If not, see . ]) # serial 58 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.62])dnl We use AC_PATH_PROGS_FEATURE_CHECK AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl 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 _LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) 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_PREPARE_CC_BASENAME # ----------------------- m4_defun([_LT_PREPARE_CC_BASENAME], [ # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. func_cc_basename () { for cc_temp in @S|@*""; do case $cc_temp in compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; \-*) ;; *) break;; esac done func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` } ])# _LT_PREPARE_CC_BASENAME # _LT_CC_BASENAME(CC) # ------------------- # It would be clearer to call AC_REQUIREs from _LT_PREPARE_CC_BASENAME, # but that macro is also expanded into generated libtool script, which # arranges for $SED and $ECHO to be set by different means. m4_defun([_LT_CC_BASENAME], [m4_require([_LT_PREPARE_CC_BASENAME])dnl AC_REQUIRE([_LT_DECL_SED])dnl AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl func_cc_basename $1 cc_basename=$func_cc_basename_result ]) # _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 AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl _LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl 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_PATH_CONVERSION_FUNCTIONS])dnl m4_require([_LT_CMD_RELOAD])dnl m4_require([_LT_CHECK_MAGIC_METHOD])dnl m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl m4_require([_LT_CMD_OLD_ARCHIVE])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl m4_require([_LT_WITH_SYSROOT])dnl m4_require([_LT_CMD_TRUNCATE])dnl _LT_CONFIG_LIBTOOL_INIT([ # See if we are running on zsh, and set the options that 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 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 set != "${COLLECT_NAMES+set}"; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # 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_PREPARE_SED_QUOTE_VARS # -------------------------- # Define a few sed substitution that help us do robust quoting. m4_defun([_LT_PREPARE_SED_QUOTE_VARS], [# Backslashify 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' ]) # _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 ## ------------------------------------- ## ## Accumulate code for creating libtool. ## ## ------------------------------------- ## # 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], [[!?.]$], [], [.]) )]) ## ------------------------ ## ## FIXME: Eliminate VARNAME ## ## ------------------------ ## # _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 "$][$1" | $SED "$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 "$" | $SED "$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' # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$[]1 _LTECHO_EOF' } # Quote evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_quote_varnames); do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes ;; *) 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 \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done _LT_OUTPUT_LIBTOOL_INIT ]) # _LT_GENERATED_FILE_INIT(FILE, [COMMENT]) # ------------------------------------ # Generate a child script FILE with all initialization necessary to # reuse the environment learned by the parent script, and make the # file executable. If COMMENT is supplied, it is inserted after the # '#!' sequence but before initialization text begins. After this # macro, additional text can be appended to FILE to form the body of # the child script. The macro ends with non-zero status if the # file could not be fully written (such as if the disk is full). m4_ifdef([AS_INIT_GENERATED], [m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])], [m4_defun([_LT_GENERATED_FILE_INIT], [m4_require([AS_PREPARE])]dnl [m4_pushdef([AS_MESSAGE_LOG_FD])]dnl [lt_write_fail=0 cat >$1 <<_ASEOF || lt_write_fail=1 #! $SHELL # Generated by $as_me. $2 SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$1 <<\_ASEOF || lt_write_fail=1 AS_SHELL_SANITIZE _AS_PREPARE exec AS_MESSAGE_FD>&1 _ASEOF test 0 = "$lt_write_fail" && chmod +x $1[]dnl m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_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]) _LT_GENERATED_FILE_INIT(["$CONFIG_LT"], [# Run this file to recreate a libtool stub with the current configuration.]) cat >>"$CONFIG_LT" <<\_LTEOF lt_cl_silent=false 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) 2011 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. lt_cl_success=: test yes = "$silent" && 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) ])# 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 that 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 # Generated automatically by $as_me ($PACKAGE) $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. # Provide generalized library-building support services. # Written by Gordon Matzigkeit, 1996 _LT_COPYING _LT_LIBTOOL_TAGS # Configured defaults for sys_lib_dlsearch_path munging. : \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"} # ### BEGIN LIBTOOL CONFIG _LT_LIBTOOL_CONFIG_VARS _LT_LIBTOOL_TAG_VARS # ### END LIBTOOL CONFIG _LT_EOF cat <<'_LT_EOF' >> "$cfgfile" # ### BEGIN FUNCTIONS SHARED WITH CONFIGURE _LT_PREPARE_MUNGE_PATH_LIST _LT_PREPARE_CC_BASENAME # ### END FUNCTIONS SHARED WITH CONFIGURE _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 set != "${COLLECT_NAMES+set}"; 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 '$q' "$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' 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)], [Go], [_LT_LANG(GO)], [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 m4_ifndef([AC_PROG_GO], [ ############################################################ # NOTE: This macro has been submitted for inclusion into # # GNU Autoconf as AC_PROG_GO. When it is available in # # a released version of Autoconf we should remove this # # macro and use it instead. # ############################################################ m4_defun([AC_PROG_GO], [AC_LANG_PUSH(Go)dnl AC_ARG_VAR([GOC], [Go compiler command])dnl AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl _AC_ARG_VAR_LDFLAGS()dnl AC_CHECK_TOOL(GOC, gccgo) if test -z "$GOC"; then if test -n "$ac_tool_prefix"; then AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo]) fi fi if test -z "$GOC"; then AC_CHECK_PROG(GOC, gccgo, gccgo, false) fi ])#m4_defun ])#m4_ifndef # _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([AC_PROG_GO], [LT_LANG(GO)], [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])]) 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)]) AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) 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], []) dnl AC_DEFUN([AC_LIBTOOL_RC], []) # _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 there is a non-empty error log, and "single_module" # appears in it, assume the flag caused a linker warning if test -s conftest.err && $GREP single_module conftest.err; then cat conftest.err >&AS_MESSAGE_LOG_FD # Otherwise, if the output was created with a 0 exit code from # the compiler, it worked. elif test -f libconftest.dylib && test 0 = "$_lt_result"; 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 ]) AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], [lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD cat > conftest.c << _LT_EOF int main() { return 0;} _LT_EOF echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err _lt_result=$? if test -s conftest.err && $GREP force_load conftest.err; then cat conftest.err >&AS_MESSAGE_LOG_FD elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then lt_cv_ld_force_load=yes else cat conftest.err >&AS_MESSAGE_LOG_FD fi rm -f conftest.err libconftest.a conftest conftest.c rm -rf conftest.dSYM ]) 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 yes = "$lt_cv_apple_cc_single_mod"; then _lt_dar_single_mod='$single_module' fi if test yes = "$lt_cv_ld_exported_symbols_list"; 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" && test no = "$lt_cv_ld_force_load"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac ]) # _LT_DARWIN_LINKER_FEATURES([TAG]) # --------------------------------- # 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 if test yes = "$lt_cv_ld_force_load"; then _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes], [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes]) else _LT_TAGVAR(whole_archive_flag_spec, $1)='' fi _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=$_lt_dar_allow_undefined case $cc_basename in ifort*|nagfor*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test yes = "$_lt_dar_can_shared"; then output_verbose_link_cmd=func_echo_all _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 yes != "$lt_cv_apple_cc_single_mod"; 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([TAGNAME]) # ---------------------------------- # 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. # Store the results from the different compilers for each TAGNAME. # Allow to override them for all tags through lt_cv_aix_libpath. m4_defun([_LT_SYS_MODULE_PATH_AIX], [m4_require([_LT_DECL_SED])dnl if test set = "${lt_cv_aix_libpath+set}"; then aix_libpath=$lt_cv_aix_libpath else AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], [AC_LINK_IFELSE([AC_LANG_PROGRAM],[ lt_aix_libpath_sed='[ /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }]' _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`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 "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi],[]) if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=/usr/lib:/lib fi ]) aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) fi ])# _LT_SYS_MODULE_PATH_AIX # _LT_SHELL_INIT(ARG) # ------------------- m4_define([_LT_SHELL_INIT], [m4_divert_text([M4SH-INIT], [$1 ])])# _LT_SHELL_INIT # _LT_PROG_ECHO_BACKSLASH # ----------------------- # Find how we can fake an echo command that does not interpret backslash. # In particular, with Autoconf 2.60 or later we add some code to the start # of the generated configure script that will find a shell with a builtin # printf (that we can use as an echo command). m4_defun([_LT_PROG_ECHO_BACKSLASH], [ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO AC_MSG_CHECKING([how to print strings]) # Test print first, because it will be a builtin if present. if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='print -r --' elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='printf %s\n' else # Use this function as a fallback that always works. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $[]1 _LTECHO_EOF' } ECHO='func_fallback_echo' fi # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "$*" } case $ECHO in printf*) AC_MSG_RESULT([printf]) ;; print*) AC_MSG_RESULT([print -r]) ;; *) AC_MSG_RESULT([cat]) ;; esac m4_ifdef([_AS_DETECT_SUGGESTED], [_AS_DETECT_SUGGESTED([ test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || ( ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO PATH=/empty FPATH=/empty; export PATH FPATH test "X`printf %s $ECHO`" = "X$ECHO" \ || test "X`print -r -- $ECHO`" = "X$ECHO" )])]) _LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) _LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) ])# _LT_PROG_ECHO_BACKSLASH # _LT_WITH_SYSROOT # ---------------- AC_DEFUN([_LT_WITH_SYSROOT], [AC_MSG_CHECKING([for sysroot]) AC_ARG_WITH([sysroot], [AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@], [Search for dependent libraries within DIR (or the compiler's sysroot if not specified).])], [], [with_sysroot=no]) dnl lt_sysroot will always be passed unquoted. We quote it here dnl in case the user passed a directory name. lt_sysroot= case $with_sysroot in #( yes) if test yes = "$GCC"; then lt_sysroot=`$CC --print-sysroot 2>/dev/null` fi ;; #( /*) lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` ;; #( no|'') ;; #( *) AC_MSG_RESULT([$with_sysroot]) AC_MSG_ERROR([The sysroot must be an absolute path.]) ;; esac AC_MSG_RESULT([${lt_sysroot:-no}]) _LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl [dependent libraries, and where our libraries should be installed.])]) # _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 no = "$enable_libtool_lock" || 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 what ABI is being produced by ac_compile, and set mode # options accordingly. 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 what ABI is being produced by ac_compile, and set linker # options accordingly. echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then if test yes = "$lt_cv_prog_gnu_ld"; 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* ;; mips64*-*linux*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then emul=elf case `/usr/bin/file conftest.$ac_objext` in *32-bit*) emul="${emul}32" ;; *64-bit*) emul="${emul}64" ;; esac case `/usr/bin/file conftest.$ac_objext` in *MSB*) emul="${emul}btsmip" ;; *LSB*) emul="${emul}ltsmip" ;; esac case `/usr/bin/file conftest.$ac_objext` in *N32*) emul="${emul}n32" ;; esac LD="${LD-ld} -m $emul" fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. Note that the listed cases only cover the # situations where additional linker options are needed (such as when # doing 32-bit compilation for a host where ld defaults to 64-bit, or # vice versa); the common cases where no linker options are needed do # not appear in the list. 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*) case `/usr/bin/file conftest.o` in *x86-64*) LD="${LD-ld} -m elf32_x86_64" ;; *) LD="${LD-ld} -m elf_i386" ;; esac ;; powerpc64le-*linux*) LD="${LD-ld} -m elf32lppclinux" ;; 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" ;; powerpcle-*linux*) LD="${LD-ld} -m elf64lppc" ;; 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 yes != "$lt_cv_cc_needs_belf"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS=$SAVE_CFLAGS fi ;; *-*solaris*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. 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*) case $host in i?86-*-solaris*|x86_64-*-solaris*) LD="${LD-ld} -m elf_x86_64" ;; sparc*-*-solaris*) LD="${LD-ld} -m elf64_sparc" ;; esac # GNU ld 2.21 introduced _sol2 emulations. Use them if available. if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then LD=${LD-ld}_sol2 fi ;; *) 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_PROG_AR # ----------- m4_defun([_LT_PROG_AR], [AC_CHECK_TOOLS(AR, [ar], false) : ${AR=ar} : ${AR_FLAGS=cru} _LT_DECL([], [AR], [1], [The archiver]) _LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], [lt_cv_ar_at_file=no AC_COMPILE_IFELSE([AC_LANG_PROGRAM], [echo conftest.$ac_objext > conftest.lst lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' AC_TRY_EVAL([lt_ar_try]) if test 0 -eq "$ac_status"; then # Ensure the archiver fails upon bogus file names. rm -f conftest.$ac_objext libconftest.a AC_TRY_EVAL([lt_ar_try]) if test 0 -ne "$ac_status"; then lt_cv_ar_at_file=@ fi fi rm -f conftest.* libconftest.a ]) ]) if test no = "$lt_cv_ar_at_file"; then archiver_list_spec= else archiver_list_spec=$lt_cv_ar_at_file fi _LT_DECL([], [archiver_list_spec], [1], [How to feed a file listing to the archiver]) ])# _LT_PROG_AR # _LT_CMD_OLD_ARCHIVE # ------------------- m4_defun([_LT_CMD_OLD_ARCHIVE], [_LT_PROG_AR 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 bitrig* | openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" fi case $host_os in darwin*) lock_old_archive_extraction=yes ;; *) lock_old_archive_extraction=no ;; esac _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_DECL([], [lock_old_archive_extraction], [0], [Whether to use a lock for old archive extraction]) ])# _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" ## exclude from sc_useless_quotes_in_assignment # 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:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:$LINENO: \$? = $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 "$_lt_compiler_boilerplate" | $SED '/^$/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 yes = "[$]$2"; 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 "$_lt_linker_boilerplate" | $SED '/^$/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 yes = "[$]$2"; 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; ;; mint*) # On MiNT this can take a long time and run out of memory. 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; ;; bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*) # 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 ;; os2*) # The test takes a long time on OS/2. lt_cv_sys_max_cmd_len=8192 ;; 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" && \ test undefined != "$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`env echo "$teststring$teststring" 2>/dev/null` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && test 17 != "$i" # 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 yes = "$cross_compiling"; 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 $LINENO "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 /* When -fvisibility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 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; else puts (dlerror ()); } /* 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 yes != "$enable_dlopen"; 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 ]) ;; tpf*) # Don't try to run any link tests for TPF. We know it's impossible # because TPF is a cross-compiler, and we know how we open DSOs. lt_cv_dlopen=dlopen lt_cv_dlopen_libs= lt_cv_dlopen_self=no ;; *) 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 no = "$lt_cv_dlopen"; then enable_dlopen=no else enable_dlopen=yes fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS=$CPPFLAGS test yes = "$ac_cv_header_dlfcn_h" && 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 yes = "$lt_cv_dlopen_self"; 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:$LINENO: $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:$LINENO: \$? = $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 "$_lt_compiler_boilerplate" | $SED '/^$/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 no = "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" && test no != "$need_locks"; 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 no = "$hard_links"; 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 where 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 yes = "$_LT_TAGVAR(hardcode_automatic, $1)"; then # We can hardcode non-existent directories. if test no != "$_LT_TAGVAR(hardcode_direct, $1)" && # 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 no != "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" && test no != "$_LT_TAGVAR(hardcode_minus_L, $1)"; 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 relink = "$_LT_TAGVAR(hardcode_action, $1)" || test yes = "$_LT_TAGVAR(inherit_rpath, $1)"; then # Fast installation is not supported enable_fast_install=no elif test yes = "$shlibpath_overrides_runpath" || test no = "$enable_shared"; 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_PREPARE_MUNGE_PATH_LIST # --------------------------- # Make sure func_munge_path_list() is defined correctly. m4_defun([_LT_PREPARE_MUNGE_PATH_LIST], [[# func_munge_path_list VARIABLE PATH # ----------------------------------- # VARIABLE is name of variable containing _space_ separated list of # directories to be munged by the contents of PATH, which is string # having a format: # "DIR[:DIR]:" # string "DIR[ DIR]" will be prepended to VARIABLE # ":DIR[:DIR]" # string "DIR[ DIR]" will be appended to VARIABLE # "DIRP[:DIRP]::[DIRA:]DIRA" # string "DIRP[ DIRP]" will be prepended to VARIABLE and string # "DIRA[ DIRA]" will be appended to VARIABLE # "DIR[:DIR]" # VARIABLE will be replaced by "DIR[ DIR]" func_munge_path_list () { case x@S|@2 in x) ;; *:) eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'` \@S|@@S|@1\" ;; x:*) eval @S|@1=\"\@S|@@S|@1 `$ECHO @S|@2 | $SED 's/:/ /g'`\" ;; *::*) eval @S|@1=\"\@S|@@S|@1\ `$ECHO @S|@2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" eval @S|@1=\"`$ECHO @S|@2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \@S|@@S|@1\" ;; *) eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'`\" ;; esac } ]])# _LT_PREPARE_PATH_LIST # _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 m4_require([_LT_CHECK_SHELL_FEATURES])dnl m4_require([_LT_PREPARE_MUNGE_PATH_LIST])dnl AC_MSG_CHECKING([dynamic linker characteristics]) m4_if([$1], [], [ if test yes = "$GCC"; then case $host_os in darwin*) lt_awk_arg='/^libraries:/,/LR/' ;; *) lt_awk_arg='/^libraries:/' ;; esac case $host_os in mingw* | cegcc*) lt_sed_strip_eq='s|=\([[A-Za-z]]:\)|\1|g' ;; *) lt_sed_strip_eq='s|=/|/|g' ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` case $lt_search_path_spec in *\;*) # 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 's/;/ /g'` ;; *) lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` ;; esac # 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` # ...but if some path component already ends with the multilib dir we assume # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer). case "$lt_multi_os_dir; $lt_search_path_spec " in "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*) lt_multi_os_dir= ;; esac 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" elif test -n "$lt_multi_os_dir"; then 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; } }'` # AWK program above erroneously prepends '/' to C:/dos/paths # for these hosts. case $host_os in mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ $SED 's|/\([[A-Za-z]]:\)|\1|g'` ;; esac sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` 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 AC_ARG_VAR([LT_SYS_LIBRARY_PATH], [User-defined run-time library search path.]) case $host_os in aix3*) version_type=linux # correct to gnu/linux during the next big refactor 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 # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes if test ia64 = "$host_cpu"; 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 # Using Import Files as archive members, it is possible to support # filename-based versioning of shared library archives on AIX. While # this would work for both with and without runtime linking, it will # prevent static linking of such archives. So we do filename-based # shared library versioning with .so extension only, which is used # when both runtime linking and shared linking is enabled. # Unfortunately, runtime linking may impact performance, so we do # not want this to be the default eventually. Also, we use the # versioned .so libs for executables only if there is the -brtl # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only. # To allow for filename-based versioning support, we need to create # libNAME.so.V as an archive file, containing: # *) an Import File, referring to the versioned filename of the # archive as well as the shared archive member, telling the # bitwidth (32 or 64) of that shared object, and providing the # list of exported symbols of that shared object, eventually # decorated with the 'weak' keyword # *) the shared object with the F_LOADONLY flag set, to really avoid # it being seen by the linker. # At run time we better use the real file rather than another symlink, # but for link time we create the symlink libNAME.so -> libNAME.so.V case $with_aix_soname,$aix_use_runtimelinking in # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. aix,yes) # traditional libtool dynamic_linker='AIX unversionable lib.so' # 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' ;; aix,no) # traditional AIX only dynamic_linker='AIX lib.a[(]lib.so.V[)]' # 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' ;; svr4,*) # full svr4 only dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)]" library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' # We do not specify a path in Import Files, so LIBPATH fires. shlibpath_overrides_runpath=yes ;; *,yes) # both, prefer svr4 dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)], lib.a[(]lib.so.V[)]" library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' # unpreferred sharedlib libNAME.a needs extra handling postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"' postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"' # We do not specify a path in Import Files, so LIBPATH fires. shlibpath_overrides_runpath=yes ;; *,no) # both, prefer aix dynamic_linker="AIX lib.a[(]lib.so.V[)], lib.so.V[(]$shared_archive_member_spec.o[)]" library_names_spec='$libname$release.a $libname.a' soname_spec='$libname$release$shared_ext$major' # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)' postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"' ;; esac 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=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; $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 # correct to gnu/linux during the next big refactor 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,$cc_basename in yes,*) # gcc 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' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' ;; 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 dynamic_linker='Win32 ld.exe' ;; *,cl*) # Native MSVC libname_spec='$name' soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' library_names_spec='$libname.dll.lib' case $build_os in mingw*) sys_lib_search_path_spec= lt_save_ifs=$IFS IFS=';' for lt_path in $LIB do IFS=$lt_save_ifs # Let DOS variable expansion print the short 8.3 style file name. lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" done IFS=$lt_save_ifs # Convert to MSYS style. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form # but this time dos style (no spaces!) so that the unix form looks # like /cygdrive/c/PROGRA~1:/cygdr... sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) sys_lib_search_path_spec=$LIB if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then # It is most probably a Windows format PATH. 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 # FIXME: find the short name or the path components, as spaces are # common. (e.g. "Program Files" -> "PROGRA~1") ;; esac # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \$file`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes dynamic_linker='Win32 link.exe' ;; *) # Assume MSVC wrapper library_names_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac # 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 # correct to gnu/linux during the next big refactor 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 ;; 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[[23]].*) 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$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' 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 ;; haiku*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" 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=LIBRARY_PATH shlibpath_overrides_runpath=no sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' 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 32 = "$HPUX_IA64_MODE"; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" sys_lib_dlsearch_path_spec=/usr/lib/hpux32 else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" sys_lib_dlsearch_path_spec=/usr/lib/hpux64 fi ;; 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' # or fails outright, so override atomically: install_override_mode=555 ;; interix[[3-9]]*) version_type=linux # correct to gnu/linux during the next big refactor 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 yes = "$lt_cv_prog_gnu_ld"; then version_type=linux # correct to gnu/linux during the next big refactor 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 ;; linux*android*) version_type=none # Android doesn't support versioned libraries. need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext' soname_spec='$libname$release$shared_ext' finish_cmds= shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # 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 dynamic_linker='Android linker' # Don't embed -rpath directories since the linker doesn't support them. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) version_type=linux # correct to gnu/linux during the next big refactor 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 AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath], [lt_cv_shlibpath_overrides_runpath=no 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], [lt_cv_shlibpath_overrides_runpath=yes])]) LDFLAGS=$save_LDFLAGS libdir=$save_libdir ]) shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # 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 # Ideally, we could use ldconfig to report *all* directores which are # searched for libraries, however this is still not possible. Aside from not # being certain /sbin/ldconfig is available, command # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, # even though it is searched at run-time. Try to do the best guess by # appending ld.so.conf contents (and includes) 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;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' ;; 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 # correct to gnu/linux during the next big refactor 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* | bitrig*) version_type=sunos sys_lib_dlsearch_path_spec=/usr/lib need_lib_prefix=no if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then need_version=no else need_version=yes fi 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 shlibpath_overrides_runpath=yes ;; os2*) libname_spec='$name' version_type=windows shrext_cmds=.dll need_version=no need_lib_prefix=no # OS/2 can only load a DLL with a base name of 8 characters or less. soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; v=$($ECHO $release$versuffix | tr -d .-); n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); $ECHO $n$v`$shared_ext' library_names_spec='${libname}_dll.$libext' dynamic_linker='OS/2 ld.exe' shlibpath_var=BEGINLIBPATH sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec 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' ;; 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 # correct to gnu/linux during the next big refactor 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 yes = "$with_gnu_ld"; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux # correct to gnu/linux during the next big refactor 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 # correct to gnu/linux during the next big refactor 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=sco 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 yes = "$with_gnu_ld"; 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 # correct to gnu/linux during the next big refactor 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 # correct to gnu/linux during the next big refactor 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 no = "$dynamic_linker" && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test yes = "$GCC"; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec fi if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec fi # remember unaugmented sys_lib_dlsearch_path content for libtool script decls... configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec # ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" # to be used as default LT_SYS_LIBRARY_PATH value in generated libtool configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH _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([], [install_override_mode], [1], [Permission mode override for installation of shared libraries]) _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], [configure_time_dlsearch_path], [2], [Detected run-time system search path for libraries]) _LT_DECL([], [configure_time_lt_sys_library_path], [2], [Explicit LT_SYS_LIBRARY_PATH set during ./configure time]) ])# _LT_SYS_DYNAMIC_LINKER # _LT_PATH_TOOL_PREFIX(TOOL) # -------------------------- # find a file program that 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 that 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 m4_require([_LT_PROG_ECHO_BACKSLASH])dnl AC_ARG_WITH([gnu-ld], [AS_HELP_STRING([--with-gnu-ld], [assume the C compiler uses GNU ld @<:@default=no@:>@])], [test no = "$withval" || with_gnu_ld=yes], [with_gnu_ld=no])dnl ac_prog=ld if test yes = "$GCC"; 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 yes = "$with_gnu_ld"; 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 conftest.i cat conftest.i conftest.i >conftest2.i : ${lt_DD:=$DD} AC_PATH_PROGS_FEATURE_CHECK([lt_DD], [dd], [if "$ac_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then cmp -s conftest.i conftest.out \ && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=: fi]) rm -f conftest.i conftest2.i conftest.out]) ])# _LT_PATH_DD # _LT_CMD_TRUNCATE # ---------------- # find command to truncate a binary pipe m4_defun([_LT_CMD_TRUNCATE], [m4_require([_LT_PATH_DD]) AC_CACHE_CHECK([how to truncate binary pipes], [lt_cv_truncate_bin], [printf 0123456789abcdef0123456789abcdef >conftest.i cat conftest.i conftest.i >conftest2.i lt_cv_truncate_bin= if "$ac_cv_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then cmp -s conftest.i conftest.out \ && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1" fi rm -f conftest.i conftest2.i conftest.out test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q"]) _LT_DECL([lt_truncate_bin], [lt_cv_truncate_bin], [1], [Command to truncate a binary pipe]) ])# _LT_CMD_TRUNCATE # _LT_CHECK_MAGIC_METHOD # ---------------------- # how to check for library dependencies # -- PORTME fill in with the dynamic library characteristics m4_defun([_LT_CHECK_MAGIC_METHOD], [m4_require([_LT_DECL_EGREP]) m4_require([_LT_DECL_OBJDUMP]) AC_CACHE_CHECK([how to recognize dependent libraries], lt_cv_deplibs_check_method, [lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= lt_cv_deplibs_check_method='unknown' # Need to set the preceding variable on all platforms that support # interlibrary dependencies. # 'none' -- dependencies not supported. # 'unknown' -- same as none, but documents that we really don't know. # 'pass_all' -- all dependencies passed with no checks. # 'test_compile' -- check by making test program. # 'file_magic [[regex]]' -- check by looking for files in library path # that 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 # Keep this pattern in sync with the one in func_win32_libid. lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' 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 ;; haiku*) 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])(-bit)?( [LM]SB)? 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 glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) lt_cv_deplibs_check_method=pass_all ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd* | bitrig*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; 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 ;; os2*) lt_cv_deplibs_check_method=pass_all ;; esac ]) file_magic_glob= want_nocaseglob=no if test "$build" = "$host"; then case $host_os in mingw* | pw32*) if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then want_nocaseglob=yes else file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"` fi ;; esac fi 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_DECL([], [file_magic_glob], [1], [How to find potential files when deplibs_check_method = "file_magic"]) _LT_DECL([], [want_nocaseglob], [1], [Find potential files using nocaseglob 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 # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty case $build_os in mingw*) lt_bad_file=conftest.nm/nofile ;; *) lt_bad_file=/dev/null ;; esac case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in *$lt_bad_file* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break 2 ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break 2 ;; *) 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 no != "$lt_cv_path_NM"; then NM=$lt_cv_path_NM else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$DUMPBIN"; then : # Let the user override the test. else AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in *COFF*) DUMPBIN="$DUMPBIN -symbols -headers" ;; *) DUMPBIN=: ;; esac fi 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:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:$LINENO: $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:$LINENO: 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_CHECK_SHAREDLIB_FROM_LINKLIB # -------------------------------- # how to determine the name of the shared library # associated with a specific link library. # -- PORTME fill in with the dynamic library characteristics m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], [m4_require([_LT_DECL_EGREP]) m4_require([_LT_DECL_OBJDUMP]) m4_require([_LT_DECL_DLLTOOL]) AC_CACHE_CHECK([how to associate runtime and link libraries], lt_cv_sharedlib_from_linklib_cmd, [lt_cv_sharedlib_from_linklib_cmd='unknown' case $host_os in cygwin* | mingw* | pw32* | cegcc*) # two different shell functions defined in ltmain.sh; # decide which one to use based on capabilities of $DLLTOOL case `$DLLTOOL --help 2>&1` in *--identify-strict*) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ;; *) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ;; esac ;; *) # fallback: assume linklib IS sharedlib lt_cv_sharedlib_from_linklib_cmd=$ECHO ;; esac ]) sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO _LT_DECL([], [sharedlib_from_linklib_cmd], [1], [Command to associate shared and link libraries]) ])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB # _LT_PATH_MANIFEST_TOOL # ---------------------- # locate the manifest tool m4_defun([_LT_PATH_MANIFEST_TOOL], [AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool], [lt_cv_path_mainfest_tool=no echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out cat conftest.err >&AS_MESSAGE_LOG_FD if $GREP 'Manifest Tool' conftest.out > /dev/null; then lt_cv_path_mainfest_tool=yes fi rm -f conftest*]) if test yes != "$lt_cv_path_mainfest_tool"; then MANIFEST_TOOL=: fi _LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl ])# _LT_PATH_MANIFEST_TOOL # _LT_DLL_DEF_P([FILE]) # --------------------- # True iff FILE is a Windows DLL '.def' file. # Keep in sync with func_dll_def_p in the libtool script AC_DEFUN([_LT_DLL_DEF_P], [dnl test DEF = "`$SED -n dnl -e '\''s/^[[ ]]*//'\'' dnl Strip leading whitespace -e '\''/^\(;.*\)*$/d'\'' dnl Delete empty lines and comments -e '\''s/^\(EXPORTS\|LIBRARY\)\([[ ]].*\)*$/DEF/p'\'' dnl -e q dnl Only consider the first "real" line $1`" dnl ])# _LT_DLL_DEF_P # LT_LIB_M # -------- # check for math library AC_DEFUN([LT_LIB_M], [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= case $host in *-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-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 yes = "$GCC"; then case $cc_basename in nvcc*) _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;; *) _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;; esac _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([AC_PROG_AWK])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 ia64 = "$host_cpu"; 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 if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Gets list of data symbols to import. lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'" # Adjust the below global symbol transforms to fixup imported variables. lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" lt_c_name_lib_hook="\ -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\ -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'" else # Disable hooks by default. lt_cv_sys_global_symbol_to_import= lt_cdecl_hook= lt_c_name_hook= lt_c_name_lib_hook= fi # 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"\ $lt_cdecl_hook\ " -e 's/^T .* \(.*\)$/extern int \1();/p'"\ " -e 's/^$symcode$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"\ $lt_c_name_hook\ " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" # Transform an extracted symbol line into symbol name with lib prefix and # symbol address. lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\ $lt_c_name_lib_hook\ " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ " -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/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, # D for any global variable and I for any imported 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};"\ " /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\ " /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\ " /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\ " {split(\$ 0,a,/\||\r/); split(a[2],s)};"\ " s[1]~/^[@?]/{print f,s[1],s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print f,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 lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" # 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 /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE /* DATA imports from DLLs on WIN32 can't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT@&t@_DLSYM_CONST #elif defined __osf__ /* This system does not cope well with relocations in const data. */ # define LT@&t@_DLSYM_CONST #else # define LT@&t@_DLSYM_CONST const #endif #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. */ LT@&t@_DLSYM_CONST struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[[]] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$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_globsym_save_LIBS=$LIBS lt_globsym_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_globsym_save_LIBS CFLAGS=$lt_globsym_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 yes = "$pipe_works"; 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 # Response file support. if test "$lt_cv_nm_interface" = "MS dumpbin"; then nm_file_list_spec='@' elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then nm_file_list_spec='@' 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_import], [lt_cv_sys_global_symbol_to_import], [1], [Transform the output of nm into a list of symbols to manually relocate]) _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_DECL([nm_interface], [lt_cv_nm_interface], [1], [The name lister interface]) _LT_DECL([], [nm_file_list_spec], [1], [Specify filename containing input files for $NM]) ]) # _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)= m4_if([$1], [CXX], [ # C++ specific cases for pic, static, wl, etc. if test yes = "$GXX"; 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 ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; 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']) case $host_os in os2*) _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' ;; esac ;; 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)= ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. _LT_TAGVAR(lt_prog_compiler_static, $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 ia64 = "$host_cpu"; 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 ;; 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). m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; 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 ia64 != "$host_cpu"; 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 | 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* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL 8.0, 9.0 on PPC and BlueGene _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*) ;; *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* | sunCC*) # 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 yes = "$GCC"; 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 ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; 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']) case $host_os in os2*) _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' ;; esac ;; 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' ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. _LT_TAGVAR(lt_prog_compiler_static, $1)= ;; 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 case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker ' if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)" fi ;; 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 ia64 = "$host_cpu"; 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 ;; 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' case $cc_basename in nagfor*) # NAG Fortran compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; 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']) case $host_os in os2*) _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' ;; esac ;; 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 | 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' ;; nagfor*) # NAG Fortran compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; tcc*) # Fabrice Bellard et al's Tiny 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)='-static' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # 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* | bgxl* | bgf* | mpixl*) # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene _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\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*) # 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)='' ;; *Sun\ F* | *Sun*Fortran*) _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 ' ;; *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,' ;; *Intel*\ [[CF]]*Compiler*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; *Portland\ Group*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; 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* | sunf77* | sunf90* | sunf95*) _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 that 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_CACHE_CHECK([for $compiler option to produce PIC], [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)], [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) _LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1) # # 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]) _LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], [How to pass a linker flag through the compiler]) # # 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_PATH_MANIFEST_TOOL])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' _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] 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 GNU nm, but means don't demangle to AIX nm. # Without the "-l" option, or with the "-B" option, AIX nm treats # weak defined symbols like other global defined symbols, whereas # GNU nm marks them as "W". # While the 'weak' keyword is ignored in the Export File, we need # it in the Import File for the 'aix-soname' feature, so we have # to replace the "-B" option with "-P" for AIX 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") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' fi ;; pw32*) _LT_TAGVAR(export_symbols_cmds, $1)=$ltdll_cmds ;; cygwin* | mingw* | cegcc*) case $cc_basename in cl*) _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] ;; esac ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac ], [ 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_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 yes != "$GCC"; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd* | bitrig*) with_gnu_ld=no ;; esac _LT_TAGVAR(ld_shlibs, $1)=yes # On some targets, GNU ld is compatible enough with the native linker # that we're better off using the native interface for both. lt_use_gnu_ld_interface=no if test yes = "$with_gnu_ld"; then case $host_os in aix*) # The AIX port of GNU ld has always aspired to compatibility # with the native linker. However, as the warning in the GNU ld # block says, versions before 2.19.5* couldn't really create working # shared libraries, regardless of the interface used. case `$LD -v 2>&1` in *\ \(GNU\ Binutils\)\ 2.19.5*) ;; *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;; *\ \(GNU\ Binutils\)\ [[3-9]]*) ;; *) lt_use_gnu_ld_interface=yes ;; esac ;; *) lt_use_gnu_ld_interface=yes ;; esac fi if test yes = "$lt_use_gnu_ld_interface"; 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 | $SED -e 's/([^)]\+)\s\+//' 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 ia64 != "$host_cpu"; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.19, 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 install binutils *** 2.20 or above, or modify your PATH so that a non-GNU linker is found. *** You will then need to restart the configuration process. _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(export_dynamic_flag_spec, $1)='$wl--export-all-symbols' _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/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] 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, use it as # is; otherwise, prepend EXPORTS... _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); 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 ;; haiku*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(link_all_deplibs, $1)=yes ;; os2*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=unsupported shrext_cmds=.dll _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ prefix_cmds="$SED"~ if test EXPORTS = "`$SED 1q $export_symbols`"; then prefix_cmds="$prefix_cmds -e 1d"; fi~ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; 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 linux-dietlibc = "$host_os"; 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 no = "$tmp_diet" then tmp_addflag=' $pic_flag' 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; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95* | pgfortran*) # 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; func_echo_all \"$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' ;; nagfor*) # NAGFOR 5.3 tmp_sharedflag='-Wl,-shared' ;; xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; nvcc*) # Cuda Compiler Driver 2.2 _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes ;; 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; func_echo_all \"$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 yes = "$supports_anon_versioning"; 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 tcc*) _LT_TAGVAR(export_dynamic_flag_spec, $1)='-rdynamic' ;; xlf* | bgf* | bgxlf* | mpixlf*) # 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)='$wl-rpath $wl$libdir' _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test yes = "$supports_anon_versioning"; 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 $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; netbsd*) 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 $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $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 $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $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 cannot *** 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 $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $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 no = "$_LT_TAGVAR(ld_shlibs, $1)"; 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 yes = "$GCC" && 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 ia64 = "$host_cpu"; 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 GNU nm, but means don't demangle to AIX nm. # Without the "-l" option, or with the "-B" option, AIX nm treats # weak defined symbols like other global defined symbols, whereas # GNU nm marks them as "W". # While the 'weak' keyword is ignored in the Export File, we need # it in the Import File for the 'aix-soname' feature, so we have # to replace the "-B" option with "-P" for AIX 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") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | 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 # have runtime linking enabled, and use it for executables. # For shared libraries, we enable/disable runtime linking # depending on the kind of the shared library created - # when "with_aix_soname,aix_use_runtimelinking" is: # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables # "aix,yes" lib.so shared, rtl:yes, for executables # lib.a static archive # "both,no" lib.so.V(shr.o) shared, rtl:yes # lib.a(lib.so.V) shared, rtl:no, for executables # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a(lib.so.V) shared, rtl:no # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a static archive case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then aix_use_runtimelinking=yes break fi done if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then # With aix-soname=svr4, we create the lib.so.V shared archives only, # so we don't have lib.a shared libs to link our executables. # We have to force runtime linking in this case. aix_use_runtimelinking=yes LDFLAGS="$LDFLAGS -Wl,-brtl" fi ;; 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,' case $with_aix_soname,$aix_use_runtimelinking in aix,*) ;; # traditional, no import file svr4,* | *,yes) # use import file # The Import File defines what to hardcode. _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no ;; esac if test yes = "$GCC"; 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 yes = "$aix_use_runtimelinking"; then shared_flag="$shared_flag "'$wl-G' fi # Need to ensure runtime linking is disabled for the traditional # shared library, or the linker may eventually find shared libraries # /with/ Import File - we do not want to mix them. shared_flag_aix='-shared' shared_flag_svr4='-shared $wl-G' else # not using gcc if test ia64 = "$host_cpu"; 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 yes = "$aix_use_runtimelinking"; then shared_flag='$wl-G' else shared_flag='$wl-bM:SRE' fi shared_flag_aix='$wl-bM:SRE' shared_flag_svr4='$wl-G' 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,yes = "$with_aix_soname,$aix_use_runtimelinking"; 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([$1]) _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 -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag else if test ia64 = "$host_cpu"; 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([$1]) _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' if test yes = "$with_gnu_ld"; then # We only use this code for GNU lds that support --whole-archive. _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' fi _LT_TAGVAR(archive_cmds_need_lc, $1)=yes _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' # -brtl affects multiple linker settings, -berok does not and is overridden later compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`' if test svr4 != "$with_aix_soname"; then # This is similar to how AIX traditionally builds its shared libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' fi if test aix != "$with_aix_soname"; then _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' else # used by -dlpreopen to get the symbols _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV $output_objdir/$realname.d/$soname $output_objdir' fi _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d' 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. case $cc_basename in cl*) # Native MSVC _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(file_list_spec, $1)='@' # 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 $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then cp "$export_symbols" "$output_objdir/$soname.def"; echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; else $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' _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' # Don't use ranlib _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile=$lt_outputfile.exe lt_tool_outputfile=$lt_tool_outputfile.exe ;; esac~ if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # Assume MSVC wrapper _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 `func_echo_all "$deplibs" | $SED '\''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(enable_shared_with_static_runtimes, $1)=yes ;; esac ;; 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 ;; # 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 $pic_flag -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 yes = "$GCC"; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$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 "x$output_objdir/$soname" = "x$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 yes,no = "$GCC,$with_gnu_ld"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $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 no = "$with_gnu_ld"; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$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 yes,no = "$GCC,$with_gnu_ld"; 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 $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $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' ;; *) m4_if($1, [], [ # Older versions of the 11.00 compiler do not understand -b yet # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) _LT_LINKER_OPTION([if $CC understands -b], _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b], [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_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 no = "$with_gnu_ld"; 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 yes = "$GCC"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $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. # This should be the same for all languages, so no per-tag cache variable. AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], [lt_cv_irix_exported_symbol], [save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null" AC_LINK_IFELSE( [AC_LANG_SOURCE( [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], [C++], [[int foo (void) { return 0; }]], [Fortran 77], [[ subroutine foo end]], [Fortran], [[ subroutine foo end]])])], [lt_cv_irix_exported_symbol=yes], [lt_cv_irix_exported_symbol=no]) LDFLAGS=$save_LDFLAGS]) if test yes = "$lt_cv_irix_exported_symbol"; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' fi else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -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" && func_echo_all "-set_version $verstring"` -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 ;; linux*) case $cc_basename in tcc*) # Fabrice Bellard et al's Tiny C Compiler _LT_TAGVAR(ld_shlibs, $1)=yes _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; netbsd*) 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* | bitrig*) 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__`"; 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 _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' 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 shrext_cmds=.dll _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ prefix_cmds="$SED"~ if test EXPORTS = "`$SED 1q $export_symbols`"; then prefix_cmds="$prefix_cmds -e 1d"; fi~ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; osf3*) if test yes = "$GCC"; 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" && func_echo_all "$wl-set_version $wl$verstring"` $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" && func_echo_all "-set_version $verstring"` -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 yes = "$GCC"; then _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $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" && func_echo_all "-set_version $verstring"` -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 "-set_version $verstring"` -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 yes = "$GCC"; then wlarc='$wl' _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $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 $pic_flag $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 yes = "$GCC"; 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 sequent = "$host_vendor"; 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 yes = "$GCC"; 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 CANNOT 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 yes = "$GCC"; 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 sni = "$host_vendor"; 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 no = "$_LT_TAGVAR(ld_shlibs, $1)" && 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 yes,yes = "$GCC,$enable_shared"; 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_CACHE_CHECK([whether -lc should be explicitly linked in], [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1), [$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_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no else lt_cv_[]_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* ]) _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_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_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([], [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([], [postlink_cmds], [2], [Commands necessary for finishing linking programs]) _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 ## 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... 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 what 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 no = "$can_build_shared" && 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 yes = "$enable_shared" && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test ia64 != "$host_cpu"; then case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in yes,aix,yes) ;; # shared object as lib.so file only yes,svr4,*) ;; # shared object as lib.so archive member only yes,*) enable_static=no ;; # shared object in lib.a archive as well esac 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 yes = "$enable_shared" || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_CONFIG($1) fi AC_LANG_POP CC=$lt_save_CC ])# _LT_LANG_C_CONFIG # _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], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_PATH_MANIFEST_TOOL])dnl if test -n "$CXX" && ( test no != "$CXX" && ( (test g++ = "$CXX" && `g++ -v >/dev/null 2>&1` ) || (test g++ != "$CXX"))); then AC_PROG_CXXCPP else _lt_caught_CXX_error=yes fi 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_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(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_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 yes != "$_lt_caught_CXX_error"; 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_CFLAGS=$CFLAGS 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++"} CFLAGS=$CXXFLAGS 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 yes = "$GXX"; 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 yes = "$GXX"; 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 yes = "$with_gnu_ld"; then _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -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 -v "^Configured with:" | $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 ia64 = "$host_cpu"; 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 # have runtime linking enabled, and use it for executables. # For shared libraries, we enable/disable runtime linking # depending on the kind of the shared library created - # when "with_aix_soname,aix_use_runtimelinking" is: # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables # "aix,yes" lib.so shared, rtl:yes, for executables # lib.a static archive # "both,no" lib.so.V(shr.o) shared, rtl:yes # lib.a(lib.so.V) shared, rtl:no, for executables # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a(lib.so.V) shared, rtl:no # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a static archive 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 if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then # With aix-soname=svr4, we create the lib.so.V shared archives only, # so we don't have lib.a shared libs to link our executables. # We have to force runtime linking in this case. aix_use_runtimelinking=yes LDFLAGS="$LDFLAGS -Wl,-brtl" fi ;; 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,' case $with_aix_soname,$aix_use_runtimelinking in aix,*) ;; # no import file svr4,* | *,yes) # use import file # The Import File defines what to hardcode. _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no ;; esac if test yes = "$GXX"; 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 yes = "$aix_use_runtimelinking"; then shared_flag=$shared_flag' $wl-G' fi # Need to ensure runtime linking is disabled for the traditional # shared library, or the linker may eventually find shared libraries # /with/ Import File - we do not want to mix them. shared_flag_aix='-shared' shared_flag_svr4='-shared $wl-G' else # not using gcc if test ia64 = "$host_cpu"; 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 yes = "$aix_use_runtimelinking"; then shared_flag='$wl-G' else shared_flag='$wl-bM:SRE' fi shared_flag_aix='$wl-bM:SRE' shared_flag_svr4='$wl-G' 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,yes = "$with_aix_soname,$aix_use_runtimelinking"; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. # The "-G" linker flag allows undefined symbols. _LT_TAGVAR(no_undefined_flag, $1)='-bernotok' # Determine the default libpath from the value encoded in an empty # executable. _LT_SYS_MODULE_PATH_AIX([$1]) _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 -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag else if test ia64 = "$host_cpu"; 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([$1]) _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' if test yes = "$with_gnu_ld"; then # We only use this code for GNU lds that support --whole-archive. _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' fi _LT_TAGVAR(archive_cmds_need_lc, $1)=yes _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' # -brtl affects multiple linker settings, -berok does not and is overridden later compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`' if test svr4 != "$with_aix_soname"; then # This is similar to how AIX traditionally builds its shared # libraries. Need -bnortl late, we may have -brtl in LDFLAGS. _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' fi if test aix != "$with_aix_soname"; then _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' else # used by -dlpreopen to get the symbols _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV $output_objdir/$realname.d/$soname $output_objdir' fi _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d' 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*) case $GXX,$cc_basename in ,cl* | no,cl*) # Native MSVC # 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 _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(file_list_spec, $1)='@' # 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 $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then cp "$export_symbols" "$output_objdir/$soname.def"; echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; else $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes # Don't use ranlib _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile=$lt_outputfile.exe lt_tool_outputfile=$lt_tool_outputfile.exe ;; esac~ func_to_tool_file "$lt_outputfile"~ if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # g++ # _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(export_dynamic_flag_spec, $1)='$wl--export-all-symbols' _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, use it as # is; otherwise, prepend EXPORTS... _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); 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 ;; esac ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; os2*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=unsupported shrext_cmds=.dll _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ prefix_cmds="$SED"~ if test EXPORTS = "`$SED 1q $export_symbols`"; then prefix_cmds="$prefix_cmds -e 1d"; fi~ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; 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 ;; freebsd2.*) # 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 ;; haiku*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(link_all_deplibs, $1)=yes ;; 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 "x$output_objdir/$soname" = "x$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; func_echo_all "$list"' ;; *) if test yes = "$GXX"; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$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 no = "$with_gnu_ld"; 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; func_echo_all "$list"' ;; *) if test yes = "$GXX"; then if test no = "$with_gnu_ld"; 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 $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $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" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test yes = "$GXX"; then if test no = "$with_gnu_ld"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` -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 | 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; func_echo_all "$list"' _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 | sort | $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 | sort | $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 | sort | $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 | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 6 and above 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; func_echo_all \"$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=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' ;; xl* | mpixl* | bgxl*) # 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 yes = "$supports_anon_versioning"; 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; func_echo_all \"$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='func_echo_all' # 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 ;; openbsd* | bitrig*) 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__`"; 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=func_echo_all 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" && func_echo_all "$wl-set_version $verstring"` -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" && func_echo_all "-set_version $verstring"` -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 "-set_version $verstring"` -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=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test yes,no = "$GXX,$with_gnu_ld"; 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" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $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 -v "^Configured with:" | $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* | sunCC*) # 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='func_echo_all' # 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 yes,no = "$GXX,$with_gnu_ld"; 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 $pic_flag -nostdlib $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 $pic_flag -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -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 -v "^Configured with:" | $GREP "\-L"' else # g++ 2.7 appears to require '-G' NOT '-shared' on this # platform. _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $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 $wl-h $wl$soname -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 -v "^Configured with:" | $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 CANNOT 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(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~ '"$_LT_TAGVAR(old_archive_cmds, $1)" _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~ '"$_LT_TAGVAR(reload_cmds, $1)" ;; *) _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 no = "$_LT_TAGVAR(ld_shlibs, $1)" && 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 CFLAGS=$lt_save_CFLAGS 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 yes != "$_lt_caught_CXX_error" AC_LANG_POP ])# _LT_LANG_CXX_CONFIG # _LT_FUNC_STRIPNAME_CNF # ---------------------- # func_stripname_cnf 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). # # This function is identical to the (non-XSI) version of func_stripname, # except this one can be used by m4 code that may be executed by configure, # rather than the libtool script. m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl AC_REQUIRE([_LT_DECL_SED]) AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) func_stripname_cnf () { case @S|@2 in .*) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%\\\\@S|@2\$%%"`;; *) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%@S|@2\$%%"`;; esac } # func_stripname_cnf ])# _LT_FUNC_STRIPNAME_CNF # _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 AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])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 ], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF package foo func foo() { } _LT_EOF ]) _lt_libdeps_save_CFLAGS=$CFLAGS case "$CC $CFLAGS " in #( *\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; *\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; *\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; esac 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 $prev$p in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test x-L = "$p" || test x-R = "$p"; then prev=$p continue fi # Expand the sysroot to ease extracting the directories later. if test -z "$prev"; then case $p in -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; esac fi case $p in =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; esac if test no = "$pre_test_object_deps_done"; then case $prev 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 prev= ;; *.lto.$objext) ;; # Ignore GCC LTO objects *.$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 no = "$pre_test_object_deps_done"; 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 CFLAGS=$_lt_libdeps_save_CFLAGS # 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)= ;; 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_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_LANG_PUSH(Fortran 77) if test -z "$F77" || test no = "$F77"; then _lt_disable_F77=yes fi _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_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(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_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 yes != "$_lt_disable_F77"; 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 lt_save_CFLAGS=$CFLAGS CC=${F77-"f77"} CFLAGS=$FFLAGS 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 no = "$can_build_shared" && 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 yes = "$enable_shared" && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test ia64 != "$host_cpu"; then case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in yes,aix,yes) ;; # shared object as lib.so file only yes,svr4,*) ;; # shared object as lib.so archive member only yes,*) enable_static=no ;; # shared object in lib.a archive as well esac 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 yes = "$enable_shared" || 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 CFLAGS=$lt_save_CFLAGS fi # test yes != "$_lt_disable_F77" AC_LANG_POP ])# _LT_LANG_F77_CONFIG # _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_LANG_PUSH(Fortran) if test -z "$FC" || test no = "$FC"; then _lt_disable_FC=yes fi _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_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(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_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 yes != "$_lt_disable_FC"; 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 lt_save_CFLAGS=$CFLAGS CC=${FC-"f95"} CFLAGS=$FCFLAGS 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 no = "$can_build_shared" && 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 yes = "$enable_shared" && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test ia64 != "$host_cpu"; then case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in yes,aix,yes) ;; # shared object as lib.so file only yes,svr4,*) ;; # shared object as lib.so archive member only yes,*) enable_static=no ;; # shared object in lib.a archive as well esac 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 yes = "$enable_shared" || 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 CFLAGS=$lt_save_CFLAGS fi # test yes != "$_lt_disable_FC" 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_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC=yes CC=${GCJ-"gcj"} CFLAGS=$GCJFLAGS 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 _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... 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 CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_GCJ_CONFIG # _LT_LANG_GO_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for the GNU Go compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to 'libtool'. m4_defun([_LT_LANG_GO_CONFIG], [AC_REQUIRE([LT_PROG_GO])dnl AC_LANG_SAVE # Source file extension for Go test sources. ac_ext=go # Object file extension for compiled Go test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="package main; func main() { }" # Code to be used in simple link tests lt_simple_link_test_code='package main; func main() { }' # 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_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC=yes CC=${GOC-"gccgo"} CFLAGS=$GOFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)=$LD _LT_CC_BASENAME([$compiler]) # Go 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 _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... 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 CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_GO_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_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC= CC=${RC-"windres"} CFLAGS= 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 CFLAGS=$lt_save_CFLAGS ])# _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 set = "${GCJFLAGS+set}" || 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_GO # ---------- AC_DEFUN([LT_PROG_GO], [AC_CHECK_TOOL(GOC, gccgo,) ]) # 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_DLLTOOL # ---------------- # Ensure DLLTOOL variable is set. m4_defun([_LT_DECL_DLLTOOL], [AC_CHECK_TOOL(DLLTOOL, dlltool, false) test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [1], [DLL creation program]) AC_SUBST([DLLTOOL]) ]) # _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 10 -lt "$lt_ac_count" && 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], [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_PATH_CONVERSION_FUNCTIONS # ----------------------------- # Determine what file name conversion functions should be used by # func_to_host_file (and, implicitly, by func_to_host_path). These are needed # for certain cross-compile configurations and native mingw. m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl AC_MSG_CHECKING([how to convert $build file names to $host format]) AC_CACHE_VAL(lt_cv_to_host_file_cmd, [case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ;; esac ;; *-*-cygwin* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_noop ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ;; esac ;; * ) # unhandled hosts (and "normal" native builds) lt_cv_to_host_file_cmd=func_convert_file_noop ;; esac ]) to_host_file_cmd=$lt_cv_to_host_file_cmd AC_MSG_RESULT([$lt_cv_to_host_file_cmd]) _LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd], [0], [convert $build file names to $host format])dnl AC_MSG_CHECKING([how to convert $build file names to toolchain format]) AC_CACHE_VAL(lt_cv_to_tool_file_cmd, [#assume ordinary cross tools, or native build. lt_cv_to_tool_file_cmd=func_convert_file_noop case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ;; esac ;; esac ]) to_tool_file_cmd=$lt_cv_to_tool_file_cmd AC_MSG_RESULT([$lt_cv_to_tool_file_cmd]) _LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], [0], [convert $build files to toolchain format])dnl ])# _LT_PATH_CONVERSION_FUNCTIONS tcpcrypt-0.5/m4/lt~obsolete.m40000644000175200017520000001377412742073023015434 0ustar sorbosorbo# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- # # Copyright (C) 2004-2005, 2007, 2009, 2011-2015 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 5 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_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])]) m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) tcpcrypt-0.5/.dir-locals.el0000644000175200017520000000031312742073006014713 0ustar sorbosorbo;; emacs local configuration settings for tcpcrypt source ;; surmised by dkg on 2014-08-15 ((c-mode (indent-tabs-mode . t) (tab-width . 8) (c-file-style . "linux")) (nil (fill-column . 70)) ) tcpcrypt-0.5/INSTALL-Linux.markdown0000644000175200017520000000447712742073006016250 0ustar sorbosorboInstalling tcpcrypt on Linux ============================ Tcpcrypt has 2 separate Linux implementations: kernel and userland. These instructions cover only the userland tcpcrypt, which is easier to set up. Dependencies ============ * OpenSSL >= 0.9.8 * libnfnetlink >= 0.0.40 * libnetfilter_queue >= 0.0.16 * libnetfilter_conntrack >= 1.0.1 * libcap * Kernel divert socket support (NFQUEUE) Ubuntu and Debian package dependencies -------------------------------------- apt-get install iptables libcap-dev libssl-dev \ libnfnetlink-dev \ libnetfilter-queue-dev \ libnetfilter-conntrack-dev Arch Linux package dependencies ------------------------------- pacman -S --needed \ base-devel \ iptables \ openssl \ libnfnetlink \ libnetfilter_queue \ libcap \ libnetfilter_queue \ libnetfilter_conntrack Kernel divert sockets (NFQUEUE) ------------------------------- Installing your distribution's libnfnetfilter_queue package most likely handles this for you. If not, then you need to enable the following in `make menuconfig`: * Networking -> Networking options -> Network packet filtering framework (Netfilter) and the following suboptions * Core Netfilter Configuration -> Netfilter NFQUEUE over NFNETLINK interface * Core Netfilter Configuration -> Netfilter Xtables support -> "NFQUEUE" target Support The `.config` options for these are: CONFIG_NETFILTER_NETLINK CONFIG_NETFILTER_NETLINK_QUEUE CONFIG_NETFILTER_XT_TARGET_NFQUEUE Compiling --------- Run: cd tcpcrypt ./bootstrap.sh ./configure make Optional: running `make install` will install `libtcpcrypt` and tcpcrypt headers, for building apps that use tcpcrypt's session ID. Try it out ---------- See the included `README.markdown` file for ways to try out tcpcrypt. Reported issues --------------- Tcpcrypt is incompatible with ECN (explicit congestion notification, RFC 3168). To disable ECN (if you know what you're doing), run `sudo sysctl net.ipv4.tcp_ecn=0`. Reported by jech at https://github.com/sorbo/tcpcrypt/issues/7. iptables firewall setup ======================= The included `launch_tcpcryptd.sh` script adds iptable rules to divert all TCP traffic port 80 to tcpcryptd. See src/iptables.sh for details. tcpcrypt-0.5/shared/0000755000175200017520000000000012742073006013533 5ustar sorbosorbotcpcrypt-0.5/shared/socket_address.h0000644000175200017520000000155712742073006016711 0ustar sorbosorbo#ifndef __TCPCRYPT_SOCKET_ADDRESS_H__ #define __TCPCRYPT_SOCKET_ADDRESS_H__ #include "inc.h" union sockaddr_any { struct sockaddr sa; struct sockaddr_in in; #ifndef __WIN32__ struct sockaddr_un un; #endif }; struct socket_address { socklen_t addr_len; union sockaddr_any addr; }; #define SOCKET_ADDRESS_NULL { 0, {} } #define SOCKET_ADDRESS_ANY { (socklen_t) sizeof(union sockaddr_any), {} } extern int socket_address_is_null(const struct socket_address *sa); extern void socket_address_clear(struct socket_address *sa); extern const char *socket_address_pathname(const struct socket_address *sa); extern int socket_address_pretty(char *name, size_t size, const struct socket_address *sa); extern int resolve_socket_address_local(const char *descr, struct socket_address *sa, char *error, int error_len); #endif /* __TCPCRYPT_SOCKET_ADDRESS_H__ */ tcpcrypt-0.5/shared/socket_address.c0000644000175200017520000001010012742073006016664 0ustar sorbosorbo#include #include #include #include #include #include #include "inc.h" #include "socket_address.h" int socket_address_is_null(const struct socket_address *sa) { return sa->addr_len == 0; } void socket_address_clear(struct socket_address *sa) { sa->addr_len = 0; } int socket_address_pretty(char *name, size_t size, const struct socket_address *sa) { size_t n = 0; if (sa->addr_len == 0) { n = snprintf(name, size, ""); } else { switch (sa->addr.sa.sa_family) { #ifndef __WIN32__ case AF_UNIX: { size_t path_len = sa->addr_len - sizeof(sa_family_t) - 1; if (path_len == 0) { n = snprintf(name, size, ""); } else if (sa->addr.un.sun_path[0] == '\0') { n = snprintf(name, size, ""); } else { n = path_len; if (n > size) n = size; strncpy(name, sa->addr.un.sun_path, n); if (n < size) name[n++] = '\0'; } break; } #endif /* __WIN32__ */ case AF_INET: n = snprintf(name, size, "%s:%d", inet_ntoa(sa->addr.in.sin_addr), (int) ntohs(sa->addr.in.sin_port)); break; default: n = snprintf(name, size, ""); } } return n; } const char *socket_address_pathname(const struct socket_address *sa) { if (socket_address_is_null(sa)) return NULL; #ifndef __WIN32__ if (sa->addr.sa.sa_family == AF_UNIX && sa->addr_len > 0 && sa->addr.un.sun_path[0] == '/') return sa->addr.un.sun_path; #endif return NULL; } int resolve_socket_address_local(const char *descr, struct socket_address *sa, char *error, int error_len) { #define errx(...) \ { \ if (error) \ snprintf(error, error_len, __VA_ARGS__); \ return -1; \ } #define err(...) \ { \ if (error) { \ int n = snprintf(error, error_len, __VA_ARGS__); \ n += snprintf(error + n, error_len - n, ": "); \ strerror_r(errno, error + n, error_len - n); \ } \ return -1; \ }\ if (descr == NULL || descr[0] == '\0') errx("empty description"); #if 0 /* not tested */ /* file descriptor */ if (descr[0] == '&') { int s, r; const char *fd_str = &descr[1]; s = atoi(fd_str); if (s <= 0) errx("couldn't parse file-descriptor number from '%s'", fd_str); r = getsockname(s, &sa->addr.sa, &sa->addr_len); if (r != 0) err("getsockname"); return 0; } #endif #ifndef __WIN32__ /* path to a unix-domain socket */ if (descr[0] == '/') { size_t path_len; struct sockaddr_un *sun = &sa->addr.un; path_len = strlen(descr); if (path_len + 1 > sizeof(sun->sun_path)) errx("unix-domain path too long"); memset(sun, 0, sizeof(*sun)); sun->sun_family = AF_UNIX; memcpy(&sun->sun_path, descr, path_len); sa->addr_len = offsetof(struct sockaddr_un, sun_path) + path_len + 1; return 0; } /* abstract unix-domain socket (linux) */ if (descr[0] == '@') { const char *name; size_t len; struct sockaddr_un *sun = &sa->addr.un; name = &descr[1]; /* include trailing null for readability */ len = strlen(name) + 1; if (len + 1 > sizeof(sun->sun_path)) errx("unix-domain path too long"); memset(sun, 0, sizeof(*sun)); sun->sun_family = AF_UNIX; sun->sun_path[0] = '\0'; memcpy(&sun->sun_path[1], name, len); /* length includes leading null, the text, and trailing null */ sa->addr_len = offsetof(struct sockaddr_un, sun_path) + 1 + len + 1; return 0; } #endif /* ! __WIN32__ */ /* port number at localhost */ if (descr[0] == ':') { unsigned long port; const char *port_str = &descr[1]; char *d = NULL; errno = 0; port = strtoul(port_str, &d, 10); if (d && *d == '\0' && !errno && port == (uint16_t) port) { struct sockaddr_in *sin = &sa->addr.in; memset(sin, 0, sizeof(*sin)); sin->sin_family = AF_INET; sin->sin_addr.s_addr = inet_addr("127.0.0.1"); sin->sin_port = htons((uint16_t) port); sa->addr_len = sizeof(*sin); return 0; } else { errx("couldn't parse port number from '%s'", port_str); } } errx("couldn't understand socket description"); return -1; } tcpcrypt-0.5/autom4te.cache/0000755000175200017520000000000012742073030015066 5ustar sorbosorbotcpcrypt-0.5/autom4te.cache/requests0000644000175200017520000006300712742073030016672 0ustar sorbosorbo# This file was generated. # It contains the lists of macros which have been traced. # It can be safely removed. @request = ( bless( [ '0', 1, [ '/usr/share/autoconf' ], [ '/usr/share/autoconf/autoconf/autoconf.m4f', '-', '/usr/share/aclocal-1.15/internal/ac-config-macro-dirs.m4', '/usr/share/aclocal/libtool.m4', '/usr/share/aclocal/ltargz.m4', '/usr/share/aclocal/ltdl.m4', '/usr/share/aclocal/ltoptions.m4', '/usr/share/aclocal/ltsugar.m4', '/usr/share/aclocal/ltversion.m4', '/usr/share/aclocal/lt~obsolete.m4', '/usr/share/aclocal-1.15/amversion.m4', '/usr/share/aclocal-1.15/ar-lib.m4', '/usr/share/aclocal-1.15/as.m4', '/usr/share/aclocal-1.15/auxdir.m4', '/usr/share/aclocal-1.15/cond.m4', '/usr/share/aclocal-1.15/depend.m4', '/usr/share/aclocal-1.15/depout.m4', '/usr/share/aclocal-1.15/init.m4', '/usr/share/aclocal-1.15/install-sh.m4', '/usr/share/aclocal-1.15/lead-dot.m4', '/usr/share/aclocal-1.15/maintainer.m4', '/usr/share/aclocal-1.15/make.m4', '/usr/share/aclocal-1.15/missing.m4', '/usr/share/aclocal-1.15/options.m4', '/usr/share/aclocal-1.15/prog-cc-c-o.m4', '/usr/share/aclocal-1.15/runlog.m4', '/usr/share/aclocal-1.15/sanity.m4', '/usr/share/aclocal-1.15/silent.m4', '/usr/share/aclocal-1.15/strip.m4', '/usr/share/aclocal-1.15/substnot.m4', '/usr/share/aclocal-1.15/tar.m4', 'configure.ac' ], { '_LT_PREPARE_SED_QUOTE_VARS' => 1, '_LT_COMPILER_OPTION' => 1, '_LT_PROG_CXX' => 1, 'LT_AC_PROG_GCJ' => 1, 'AC_LTDL_OBJDIR' => 1, 'AC_LIBTOOL_PROG_CC_C_O' => 1, '_AC_AM_CONFIG_HEADER_HOOK' => 1, 'AM_PROG_INSTALL_SH' => 1, 'AC_LIB_LTDL' => 1, 'AC_LTDL_SYS_DLOPEN_DEPLIBS' => 1, 'AC_LIBTOOL_OBJDIR' => 1, 'LTOPTIONS_VERSION' => 1, 'AC_LTDL_PREOPEN' => 1, '_AM_SUBST_NOTMAKE' => 1, '_LT_AC_LANG_CXX' => 1, '_AM_PROG_CC_C_O' => 1, 'AM_MAKE_INCLUDE' => 1, 'AC_CONFIG_MACRO_DIR_TRACE' => 1, '_LT_AC_TRY_DLOPEN_SELF' => 1, 'LT_CMD_MAX_LEN' => 1, 'AC_LTDL_SYMBOL_USCORE' => 1, 'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1, 'AC_CHECK_LIBM' => 1, 'AM_RUN_LOG' => 1, 'AM_MISSING_HAS_RUN' => 1, 'AC_LIBTOOL_DLOPEN' => 1, 'AM_INIT_AUTOMAKE' => 1, '_LTDL_SETUP' => 1, '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, '_LT_AC_SYS_COMPILER' => 1, 'AC_LIBTOOL_SYS_OLD_ARCHIVE' => 1, 'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1, 'LT_SYS_SYMBOL_USCORE' => 1, '_AC_PROG_LIBTOOL' => 1, 'AM_SUBST_NOTMAKE' => 1, 'AC_LIBTOOL_SYS_LIB_STRIP' => 1, 'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1, 'AM_AUTOMAKE_VERSION' => 1, 'AC_LIBLTDL_CONVENIENCE' => 1, 'AC_DEPLIBS_CHECK_METHOD' => 1, 'AC_LIBTOOL_LANG_C_CONFIG' => 1, '_LT_LINKER_BOILERPLATE' => 1, 'AM_PROG_NM' => 1, 'AC_ENABLE_FAST_INSTALL' => 1, 'LT_FUNC_ARGZ' => 1, 'AC_LTDL_SHLIBEXT' => 1, 'AC_LIBTOOL_CONFIG' => 1, '_LT_WITH_SYSROOT' => 1, 'AM_PROG_LD' => 1, 'AC_LIBTOOL_F77' => 1, 'm4_pattern_forbid' => 1, 'include' => 1, 'AC_LIBTOOL_CXX' => 1, 'm4_include' => 1, '_LT_PROG_LTMAIN' => 1, 'AM_ENABLE_STATIC' => 1, '_LT_AC_TAGVAR' => 1, 'LT_CONFIG_LTDL_DIR' => 1, '_LT_AC_CHECK_DLFCN' => 1, 'AM_PROG_AR' => 1, 'LT_AC_PROG_RC' => 1, 'AC_LIBTOOL_PROG_LD_SHLIBS' => 1, 'AC_DISABLE_FAST_INSTALL' => 1, 'AC_PROG_LD_GNU' => 1, 'AC_LIBTOOL_FC' => 1, 'LT_LANG' => 1, '_LT_AC_LANG_CXX_CONFIG' => 1, 'AC_LIBTOOL_SETUP' => 1, 'AC_LIBTOOL_PROG_COMPILER_PIC' => 1, 'LTDL_CONVENIENCE' => 1, '_AM_AUTOCONF_VERSION' => 1, 'AC_PROG_LD' => 1, 'AM_SANITY_CHECK' => 1, 'LT_SYS_MODULE_PATH' => 1, 'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1, 'AM_DISABLE_STATIC' => 1, 'LT_PROG_GCJ' => 1, 'AC_DEFUN_ONCE' => 1, '_LT_LINKER_OPTION' => 1, 'LTDL_INSTALLABLE' => 1, 'AM_MISSING_PROG' => 1, 'LT_FUNC_DLSYM_USCORE' => 1, 'AC_LIBTOOL_LANG_CXX_CONFIG' => 1, '_LT_AC_LANG_F77' => 1, 'LT_SUPPORTED_TAG' => 1, 'LTVERSION_VERSION' => 1, 'AM_MAINTAINER_MODE' => 1, 'm4_pattern_allow' => 1, 'AM_DEP_TRACK' => 1, 'AM_PROG_INSTALL_STRIP' => 1, 'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1, 'AM_DISABLE_SHARED' => 1, 'AM_PROG_LIBTOOL' => 1, 'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1, 'AC_LIBTOOL_LANG_F77_CONFIG' => 1, '_LT_LIBOBJ' => 1, '_LT_AC_LANG_GCJ' => 1, 'AM_SET_LEADING_DOT' => 1, 'AC_DEFUN' => 1, '_m4_warn' => 1, 'AC_LIBTOOL_LINKER_OPTION' => 1, 'AC_LIBTOOL_POSTDEP_PREDEP' => 1, 'AC_WITH_LTDL' => 1, '_LT_CC_BASENAME' => 1, '_AM_MANGLE_OPTION' => 1, 'AC_LTDL_DLLIB' => 1, 'LTOBSOLETE_VERSION' => 1, 'LT_LIB_DLLOAD' => 1, '_AM_SET_OPTION' => 1, 'AC_LIBTOOL_WIN32_DLL' => 1, '_LT_AC_LANG_GCJ_CONFIG' => 1, 'AC_PROG_LIBTOOL' => 1, 'AC_PROG_LD_RELOAD_FLAG' => 1, '_LT_AC_SYS_LIBPATH_AIX' => 1, '_LT_AC_LOCK' => 1, 'LT_AC_PROG_EGREP' => 1, 'AC_LIBTOOL_GCJ' => 1, 'AC_LIBTOOL_RC' => 1, 'LT_INIT' => 1, 'LTSUGAR_VERSION' => 1, 'AM_CONDITIONAL' => 1, 'AC_LIBTOOL_LANG_RC_CONFIG' => 1, 'AC_PROG_EGREP' => 1, '_LT_PROG_F77' => 1, '_LT_AC_PROG_ECHO_BACKSLASH' => 1, 'AC_DISABLE_SHARED' => 1, '_LT_AC_LANG_F77_CONFIG' => 1, '_LT_PATH_TOOL_PREFIX' => 1, 'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, 'LT_AC_PROG_SED' => 1, '_AM_SET_OPTIONS' => 1, 'LT_SYS_DLOPEN_SELF' => 1, 'AC_ENABLE_STATIC' => 1, '_AM_CONFIG_MACRO_DIRS' => 1, 'AM_PROG_AS' => 1, '_LT_COMPILER_BOILERPLATE' => 1, 'AM_SET_DEPDIR' => 1, '_LT_AC_PROG_CXXCPP' => 1, 'LT_LIB_M' => 1, '_LT_PROG_FC' => 1, 'AC_PATH_MAGIC' => 1, 'AC_CONFIG_MACRO_DIR' => 1, 'AC_ENABLE_SHARED' => 1, 'LT_OUTPUT' => 1, '_AM_IF_OPTION' => 1, '_LT_PROG_ECHO_BACKSLASH' => 1, 'LT_SYS_MODULE_EXT' => 1, 'LT_SYS_DLOPEN_DEPLIBS' => 1, '_AM_PROG_TAR' => 1, 'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1, 'AC_PROG_NM' => 1, 'LT_SYS_DLSEARCH_PATH' => 1, 'AC_PATH_TOOL_PREFIX' => 1, '_LT_AC_LANG_C_CONFIG' => 1, 'LT_PROG_RC' => 1, '_LT_AC_LANG_RC_CONFIG' => 1, 'AC_DISABLE_STATIC' => 1, 'AC_LTDL_ENABLE_INSTALL' => 1, 'AC_LTDL_SHLIBPATH' => 1, 'AU_DEFUN' => 1, '_AM_DEPENDENCIES' => 1, '_LT_DLL_DEF_P' => 1, 'AC_LTDL_DLSYM_USCORE' => 1, '_LT_AC_SHELL_INIT' => 1, 'AM_SILENT_RULES' => 1, 'AM_PROG_CC_C_O' => 1, 'AC_LTDL_SYSSEARCHPATH' => 1, 'AM_AUX_DIR_EXPAND' => 1, 'AC_LIBTOOL_COMPILER_OPTION' => 1, 'AC_LIBLTDL_INSTALLABLE' => 1, 'AC_LIBTOOL_PICMODE' => 1, '_LT_AC_FILE_LTDLL_C' => 1, 'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1, 'LTDL_INIT' => 1, '_LT_REQUIRED_DARWIN_CHECKS' => 1, 'AC_LIBTOOL_DLOPEN_SELF' => 1, '_LT_AC_TAGCONFIG' => 1, 'LT_PATH_LD' => 1, 'LT_PROG_GO' => 1, 'LT_WITH_LTDL' => 1, 'LT_PATH_NM' => 1, 'AM_ENABLE_SHARED' => 1 } ], 'Autom4te::Request' ), bless( [ '1', 1, [ '/usr/share/autoconf' ], [ '/usr/share/autoconf/autoconf/autoconf.m4f', 'aclocal.m4', 'configure.ac' ], { 'AC_CANONICAL_TARGET' => 1, '_AM_SUBST_NOTMAKE' => 1, 'AM_PROG_AR' => 1, 'AC_FC_FREEFORM' => 1, 'm4_sinclude' => 1, 'AC_FC_SRCEXT' => 1, 'AM_PROG_FC_C_O' => 1, 'AC_FC_PP_SRCEXT' => 1, 'AM_ENABLE_MULTILIB' => 1, 'LT_CONFIG_LTDL_DIR' => 1, 'AC_REQUIRE_AUX_FILE' => 1, 'AC_CANONICAL_BUILD' => 1, '_AM_MAKEFILE_INCLUDE' => 1, 'AC_CONFIG_HEADERS' => 1, 'AM_PROG_MKDIR_P' => 1, 'AM_INIT_AUTOMAKE' => 1, 'sinclude' => 1, 'AC_PROG_LIBTOOL' => 1, 'AC_CONFIG_FILES' => 1, 'AC_FC_PP_DEFINE' => 1, 'AC_DEFINE_TRACE_LITERAL' => 1, 'AC_INIT' => 1, 'LT_INIT' => 1, 'AC_SUBST_TRACE' => 1, 'AM_PATH_GUILE' => 1, 'AC_CANONICAL_SYSTEM' => 1, 'AC_CONFIG_AUX_DIR' => 1, 'AM_PROG_CXX_C_O' => 1, 'AM_NLS' => 1, 'AC_SUBST' => 1, 'AM_PROG_CC_C_O' => 1, '_AM_COND_ENDIF' => 1, 'AM_MAINTAINER_MODE' => 1, 'm4_pattern_allow' => 1, 'LT_SUPPORTED_TAG' => 1, 'AM_SILENT_RULES' => 1, 'AC_CANONICAL_HOST' => 1, 'AM_AUTOMAKE_VERSION' => 1, '_AM_COND_IF' => 1, 'AM_CONDITIONAL' => 1, 'AM_GNU_GETTEXT_INTL_SUBDIR' => 1, 'AM_PROG_MOC' => 1, 'AM_PROG_F77_C_O' => 1, 'AH_OUTPUT' => 1, 'm4_pattern_forbid' => 1, 'include' => 1, 'AC_CONFIG_LINKS' => 1, '_LT_AC_TAGCONFIG' => 1, 'AM_EXTRA_RECURSIVE_TARGETS' => 1, '_AM_COND_ELSE' => 1, 'AM_GNU_GETTEXT' => 1, 'AC_CONFIG_LIBOBJ_DIR' => 1, 'AM_XGETTEXT_OPTION' => 1, 'AC_LIBSOURCE' => 1, 'AM_MAKEFILE_INCLUDE' => 1, 'AM_POT_TOOLS' => 1, 'AC_CONFIG_SUBDIRS' => 1, '_m4_warn' => 1, 'm4_include' => 1 } ], 'Autom4te::Request' ), bless( [ '2', 1, [ '/usr/share/autoconf' ], [ '/usr/share/autoconf/autoconf/autoconf.m4f', '-', '/usr/share/aclocal-1.15/internal/ac-config-macro-dirs.m4', '/usr/share/aclocal/ltargz.m4', '/usr/share/aclocal/ltdl.m4', '/usr/share/aclocal-1.15/amversion.m4', '/usr/share/aclocal-1.15/ar-lib.m4', '/usr/share/aclocal-1.15/as.m4', '/usr/share/aclocal-1.15/auxdir.m4', '/usr/share/aclocal-1.15/cond.m4', '/usr/share/aclocal-1.15/depend.m4', '/usr/share/aclocal-1.15/depout.m4', '/usr/share/aclocal-1.15/init.m4', '/usr/share/aclocal-1.15/install-sh.m4', '/usr/share/aclocal-1.15/lead-dot.m4', '/usr/share/aclocal-1.15/maintainer.m4', '/usr/share/aclocal-1.15/make.m4', '/usr/share/aclocal-1.15/missing.m4', '/usr/share/aclocal-1.15/options.m4', '/usr/share/aclocal-1.15/prog-cc-c-o.m4', '/usr/share/aclocal-1.15/runlog.m4', '/usr/share/aclocal-1.15/sanity.m4', '/usr/share/aclocal-1.15/silent.m4', '/usr/share/aclocal-1.15/strip.m4', '/usr/share/aclocal-1.15/substnot.m4', '/usr/share/aclocal-1.15/tar.m4', 'm4/libtool.m4', 'm4/ltoptions.m4', 'm4/ltsugar.m4', 'm4/ltversion.m4', 'm4/lt~obsolete.m4', 'configure.ac' ], { '_AM_PROG_TAR' => 1, 'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1, 'LT_SYS_DLOPEN_DEPLIBS' => 1, 'LT_SYS_MODULE_EXT' => 1, '_LT_PROG_ECHO_BACKSLASH' => 1, '_AM_IF_OPTION' => 1, 'LT_SYS_DLSEARCH_PATH' => 1, 'AC_PROG_NM' => 1, '_LT_AC_LANG_RC_CONFIG' => 1, 'LT_PROG_RC' => 1, '_LT_AC_LANG_C_CONFIG' => 1, 'AC_PATH_TOOL_PREFIX' => 1, 'AC_LTDL_DLSYM_USCORE' => 1, '_LT_DLL_DEF_P' => 1, '_AM_DEPENDENCIES' => 1, 'AU_DEFUN' => 1, 'AC_LTDL_SHLIBPATH' => 1, 'AC_LTDL_ENABLE_INSTALL' => 1, 'AC_DISABLE_STATIC' => 1, 'AM_AUX_DIR_EXPAND' => 1, 'AM_PROG_CC_C_O' => 1, 'AC_LTDL_SYSSEARCHPATH' => 1, 'AM_SILENT_RULES' => 1, '_LT_AC_SHELL_INIT' => 1, 'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1, '_LT_AC_FILE_LTDLL_C' => 1, 'AC_LIBTOOL_PICMODE' => 1, 'AC_LIBLTDL_INSTALLABLE' => 1, 'AC_LIBTOOL_COMPILER_OPTION' => 1, 'LT_PATH_NM' => 1, 'LT_PROG_GO' => 1, 'LT_PATH_LD' => 1, 'LT_WITH_LTDL' => 1, '_LT_AC_TAGCONFIG' => 1, 'AC_LIBTOOL_DLOPEN_SELF' => 1, '_LT_REQUIRED_DARWIN_CHECKS' => 1, 'LTDL_INIT' => 1, 'AM_ENABLE_SHARED' => 1, 'AC_LTDL_DLLIB' => 1, '_AM_MANGLE_OPTION' => 1, '_LT_CC_BASENAME' => 1, 'LT_LIB_DLLOAD' => 1, 'LTOBSOLETE_VERSION' => 1, 'AC_LIBTOOL_GCJ' => 1, 'LT_AC_PROG_EGREP' => 1, '_LT_AC_LOCK' => 1, '_LT_AC_SYS_LIBPATH_AIX' => 1, 'AC_PROG_LD_RELOAD_FLAG' => 1, 'AC_PROG_LIBTOOL' => 1, '_LT_AC_LANG_GCJ_CONFIG' => 1, '_AM_SET_OPTION' => 1, 'AC_LIBTOOL_WIN32_DLL' => 1, 'LT_INIT' => 1, 'AC_LIBTOOL_RC' => 1, '_LT_AC_LANG_F77_CONFIG' => 1, 'AC_DISABLE_SHARED' => 1, '_LT_AC_PROG_ECHO_BACKSLASH' => 1, '_LT_PROG_F77' => 1, 'AC_PROG_EGREP' => 1, 'AC_LIBTOOL_LANG_RC_CONFIG' => 1, 'AM_CONDITIONAL' => 1, 'LTSUGAR_VERSION' => 1, '_AM_CONFIG_MACRO_DIRS' => 1, 'AC_ENABLE_STATIC' => 1, 'LT_SYS_DLOPEN_SELF' => 1, '_AM_SET_OPTIONS' => 1, 'LT_AC_PROG_SED' => 1, 'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, '_LT_PATH_TOOL_PREFIX' => 1, 'LT_LIB_M' => 1, '_LT_AC_PROG_CXXCPP' => 1, '_LT_COMPILER_BOILERPLATE' => 1, 'AM_SET_DEPDIR' => 1, 'AM_PROG_AS' => 1, 'LT_OUTPUT' => 1, 'AC_ENABLE_SHARED' => 1, 'AC_CONFIG_MACRO_DIR' => 1, 'AC_PATH_MAGIC' => 1, '_LT_PROG_FC' => 1, 'AM_PROG_AR' => 1, '_LT_AC_CHECK_DLFCN' => 1, 'LT_CONFIG_LTDL_DIR' => 1, '_LT_AC_LANG_CXX_CONFIG' => 1, 'AC_LIBTOOL_SETUP' => 1, 'LT_LANG' => 1, 'AC_LIBTOOL_FC' => 1, 'AC_PROG_LD_GNU' => 1, 'AC_DISABLE_FAST_INSTALL' => 1, 'AC_LIBTOOL_PROG_LD_SHLIBS' => 1, 'LT_AC_PROG_RC' => 1, 'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1, 'AM_DISABLE_STATIC' => 1, 'LT_SYS_MODULE_PATH' => 1, 'AM_SANITY_CHECK' => 1, 'AC_PROG_LD' => 1, '_AM_AUTOCONF_VERSION' => 1, 'LTDL_CONVENIENCE' => 1, 'AC_LIBTOOL_PROG_COMPILER_PIC' => 1, 'LTDL_INSTALLABLE' => 1, '_LT_LINKER_OPTION' => 1, 'AC_DEFUN_ONCE' => 1, 'LT_PROG_GCJ' => 1, 'm4_pattern_allow' => 1, 'AM_MAINTAINER_MODE' => 1, 'LT_SUPPORTED_TAG' => 1, 'LTVERSION_VERSION' => 1, '_LT_AC_LANG_F77' => 1, 'AC_LIBTOOL_LANG_CXX_CONFIG' => 1, 'LT_FUNC_DLSYM_USCORE' => 1, 'AM_MISSING_PROG' => 1, 'AC_LIBTOOL_LANG_F77_CONFIG' => 1, 'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1, 'AM_PROG_LIBTOOL' => 1, 'AM_DISABLE_SHARED' => 1, 'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1, 'AM_DEP_TRACK' => 1, 'AM_PROG_INSTALL_STRIP' => 1, 'AM_SET_LEADING_DOT' => 1, '_LT_AC_LANG_GCJ' => 1, '_LT_LIBOBJ' => 1, 'AC_WITH_LTDL' => 1, 'AC_LIBTOOL_POSTDEP_PREDEP' => 1, 'AC_LIBTOOL_LINKER_OPTION' => 1, '_m4_warn' => 1, 'AC_DEFUN' => 1, '_AM_SUBST_NOTMAKE' => 1, 'LTOPTIONS_VERSION' => 1, 'AC_LTDL_PREOPEN' => 1, 'AC_LIBTOOL_OBJDIR' => 1, 'AC_LTDL_SYS_DLOPEN_DEPLIBS' => 1, 'AC_LIB_LTDL' => 1, '_AC_AM_CONFIG_HEADER_HOOK' => 1, 'AM_PROG_INSTALL_SH' => 1, 'AC_LIBTOOL_PROG_CC_C_O' => 1, 'AC_LTDL_OBJDIR' => 1, 'LT_AC_PROG_GCJ' => 1, '_LT_PROG_CXX' => 1, '_LT_COMPILER_OPTION' => 1, '_LT_PREPARE_SED_QUOTE_VARS' => 1, 'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1, 'LT_CMD_MAX_LEN' => 1, '_LT_AC_TRY_DLOPEN_SELF' => 1, 'AC_CONFIG_MACRO_DIR_TRACE' => 1, 'AC_LTDL_SYMBOL_USCORE' => 1, '_AM_PROG_CC_C_O' => 1, 'AM_MAKE_INCLUDE' => 1, '_LT_AC_LANG_CXX' => 1, '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, '_LTDL_SETUP' => 1, 'AC_LIBTOOL_DLOPEN' => 1, 'AM_INIT_AUTOMAKE' => 1, 'AM_MISSING_HAS_RUN' => 1, 'AM_RUN_LOG' => 1, 'AC_CHECK_LIBM' => 1, 'AM_SUBST_NOTMAKE' => 1, 'LT_SYS_SYMBOL_USCORE' => 1, '_AC_PROG_LIBTOOL' => 1, 'AC_LIBTOOL_SYS_OLD_ARCHIVE' => 1, 'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1, '_LT_AC_SYS_COMPILER' => 1, '_LT_LINKER_BOILERPLATE' => 1, 'AC_LIBTOOL_LANG_C_CONFIG' => 1, 'AC_DEPLIBS_CHECK_METHOD' => 1, 'AC_LIBLTDL_CONVENIENCE' => 1, 'AM_AUTOMAKE_VERSION' => 1, 'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1, 'AC_LIBTOOL_SYS_LIB_STRIP' => 1, 'AC_ENABLE_FAST_INSTALL' => 1, 'AM_PROG_NM' => 1, 'include' => 1, 'm4_pattern_forbid' => 1, 'AC_LIBTOOL_F77' => 1, 'AM_PROG_LD' => 1, 'AC_LTDL_SHLIBEXT' => 1, '_LT_WITH_SYSROOT' => 1, 'AC_LIBTOOL_CONFIG' => 1, 'LT_FUNC_ARGZ' => 1, '_LT_AC_TAGVAR' => 1, 'AM_ENABLE_STATIC' => 1, '_LT_PROG_LTMAIN' => 1, 'm4_include' => 1, 'AC_LIBTOOL_CXX' => 1 } ], 'Autom4te::Request' ) ); tcpcrypt-0.5/autom4te.cache/traces.00000644000175200017520000036132212742073022016440 0ustar sorbosorbom4trace:/usr/share/aclocal/libtool.m4:61: -1- AC_DEFUN([LT_INIT], [AC_PREREQ([2.62])dnl We use AC_PATH_PROGS_FEATURE_CHECK AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl 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 _LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) 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]) ]) m4trace:/usr/share/aclocal/libtool.m4:99: -1- AU_DEFUN([AC_PROG_LIBTOOL], [m4_if($#, 0, [LT_INIT], [LT_INIT($@)])]) m4trace:/usr/share/aclocal/libtool.m4:99: -1- AC_DEFUN([AC_PROG_LIBTOOL], [AC_DIAGNOSE([obsolete], [The macro `AC_PROG_LIBTOOL' is obsolete. You should run autoupdate.])dnl m4_if($#, 0, [LT_INIT], [LT_INIT($@)])]) m4trace:/usr/share/aclocal/libtool.m4:100: -1- AU_DEFUN([AM_PROG_LIBTOOL], [m4_if($#, 0, [LT_INIT], [LT_INIT($@)])]) m4trace:/usr/share/aclocal/libtool.m4:100: -1- AC_DEFUN([AM_PROG_LIBTOOL], [AC_DIAGNOSE([obsolete], [The macro `AM_PROG_LIBTOOL' is obsolete. You should run autoupdate.])dnl m4_if($#, 0, [LT_INIT], [LT_INIT($@)])]) m4trace:/usr/share/aclocal/libtool.m4:619: -1- AC_DEFUN([LT_OUTPUT], [: ${CONFIG_LT=./config.lt} AC_MSG_NOTICE([creating $CONFIG_LT]) _LT_GENERATED_FILE_INIT(["$CONFIG_LT"], [# Run this file to recreate a libtool stub with the current configuration.]) cat >>"$CONFIG_LT" <<\_LTEOF lt_cl_silent=false 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) 2011 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. lt_cl_success=: test yes = "$silent" && 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) ]) m4trace:/usr/share/aclocal/libtool.m4:812: -1- AC_DEFUN([LT_SUPPORTED_TAG], []) m4trace:/usr/share/aclocal/libtool.m4:823: -1- AC_DEFUN([LT_LANG], [AC_BEFORE([$0], [LT_OUTPUT])dnl m4_case([$1], [C], [_LT_LANG(C)], [C++], [_LT_LANG(CXX)], [Go], [_LT_LANG(GO)], [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 ]) m4trace:/usr/share/aclocal/libtool.m4:915: -1- AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) m4trace:/usr/share/aclocal/libtool.m4:915: -1- AC_DEFUN([AC_LIBTOOL_CXX], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_CXX' is obsolete. You should run autoupdate.])dnl LT_LANG(C++)]) m4trace:/usr/share/aclocal/libtool.m4:916: -1- AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) m4trace:/usr/share/aclocal/libtool.m4:916: -1- AC_DEFUN([AC_LIBTOOL_F77], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_F77' is obsolete. You should run autoupdate.])dnl LT_LANG(Fortran 77)]) m4trace:/usr/share/aclocal/libtool.m4:917: -1- AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) m4trace:/usr/share/aclocal/libtool.m4:917: -1- AC_DEFUN([AC_LIBTOOL_FC], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_FC' is obsolete. You should run autoupdate.])dnl LT_LANG(Fortran)]) m4trace:/usr/share/aclocal/libtool.m4:918: -1- AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) m4trace:/usr/share/aclocal/libtool.m4:918: -1- AC_DEFUN([AC_LIBTOOL_GCJ], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_GCJ' is obsolete. You should run autoupdate.])dnl LT_LANG(Java)]) m4trace:/usr/share/aclocal/libtool.m4:919: -1- AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) m4trace:/usr/share/aclocal/libtool.m4:919: -1- AC_DEFUN([AC_LIBTOOL_RC], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_RC' is obsolete. You should run autoupdate.])dnl LT_LANG(Windows Resource)]) m4trace:/usr/share/aclocal/libtool.m4:1247: -1- AC_DEFUN([_LT_WITH_SYSROOT], [AC_MSG_CHECKING([for sysroot]) AC_ARG_WITH([sysroot], [AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@], [Search for dependent libraries within DIR (or the compiler's sysroot if not specified).])], [], [with_sysroot=no]) dnl lt_sysroot will always be passed unquoted. We quote it here dnl in case the user passed a directory name. lt_sysroot= case $with_sysroot in #( yes) if test yes = "$GCC"; then lt_sysroot=`$CC --print-sysroot 2>/dev/null` fi ;; #( /*) lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` ;; #( no|'') ;; #( *) AC_MSG_RESULT([$with_sysroot]) AC_MSG_ERROR([The sysroot must be an absolute path.]) ;; esac AC_MSG_RESULT([${lt_sysroot:-no}]) _LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl [dependent libraries, and where our libraries should be installed.])]) m4trace:/usr/share/aclocal/libtool.m4:1578: -1- 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" ## exclude from sc_useless_quotes_in_assignment # 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:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:$LINENO: \$? = $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 "$_lt_compiler_boilerplate" | $SED '/^$/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 yes = "[$]$2"; then m4_if([$5], , :, [$5]) else m4_if([$6], , :, [$6]) fi ]) m4trace:/usr/share/aclocal/libtool.m4:1620: -1- AU_DEFUN([AC_LIBTOOL_COMPILER_OPTION], [m4_if($#, 0, [_LT_COMPILER_OPTION], [_LT_COMPILER_OPTION($@)])]) m4trace:/usr/share/aclocal/libtool.m4:1620: -1- AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_COMPILER_OPTION' is obsolete. You should run autoupdate.])dnl m4_if($#, 0, [_LT_COMPILER_OPTION], [_LT_COMPILER_OPTION($@)])]) m4trace:/usr/share/aclocal/libtool.m4:1629: -1- 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 "$_lt_linker_boilerplate" | $SED '/^$/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 yes = "[$]$2"; then m4_if([$4], , :, [$4]) else m4_if([$5], , :, [$5]) fi ]) m4trace:/usr/share/aclocal/libtool.m4:1664: -1- AU_DEFUN([AC_LIBTOOL_LINKER_OPTION], [m4_if($#, 0, [_LT_LINKER_OPTION], [_LT_LINKER_OPTION($@)])]) m4trace:/usr/share/aclocal/libtool.m4:1664: -1- AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_LINKER_OPTION' is obsolete. You should run autoupdate.])dnl m4_if($#, 0, [_LT_LINKER_OPTION], [_LT_LINKER_OPTION($@)])]) m4trace:/usr/share/aclocal/libtool.m4:1671: -1- 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; ;; mint*) # On MiNT this can take a long time and run out of memory. 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; ;; bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*) # 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 ;; os2*) # The test takes a long time on OS/2. lt_cv_sys_max_cmd_len=8192 ;; 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" && \ test undefined != "$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`env echo "$teststring$teststring" 2>/dev/null` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && test 17 != "$i" # 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?]) ]) m4trace:/usr/share/aclocal/libtool.m4:1810: -1- AU_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [m4_if($#, 0, [LT_CMD_MAX_LEN], [LT_CMD_MAX_LEN($@)])]) m4trace:/usr/share/aclocal/libtool.m4:1810: -1- AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_SYS_MAX_CMD_LEN' is obsolete. You should run autoupdate.])dnl m4_if($#, 0, [LT_CMD_MAX_LEN], [LT_CMD_MAX_LEN($@)])]) m4trace:/usr/share/aclocal/libtool.m4:1921: -1- AC_DEFUN([LT_SYS_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test yes != "$enable_dlopen"; 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 ]) ;; tpf*) # Don't try to run any link tests for TPF. We know it's impossible # because TPF is a cross-compiler, and we know how we open DSOs. lt_cv_dlopen=dlopen lt_cv_dlopen_libs= lt_cv_dlopen_self=no ;; *) 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 no = "$lt_cv_dlopen"; then enable_dlopen=no else enable_dlopen=yes fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS=$CPPFLAGS test yes = "$ac_cv_header_dlfcn_h" && 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 yes = "$lt_cv_dlopen_self"; 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]) ]) m4trace:/usr/share/aclocal/libtool.m4:2046: -1- AU_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [m4_if($#, 0, [LT_SYS_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF($@)])]) m4trace:/usr/share/aclocal/libtool.m4:2046: -1- AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_DLOPEN_SELF' is obsolete. You should run autoupdate.])dnl m4_if($#, 0, [LT_SYS_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF($@)])]) m4trace:/usr/share/aclocal/libtool.m4:3155: -1- 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 ]) m4trace:/usr/share/aclocal/libtool.m4:3217: -1- AU_DEFUN([AC_PATH_TOOL_PREFIX], [m4_if($#, 0, [_LT_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX($@)])]) m4trace:/usr/share/aclocal/libtool.m4:3217: -1- AC_DEFUN([AC_PATH_TOOL_PREFIX], [AC_DIAGNOSE([obsolete], [The macro `AC_PATH_TOOL_PREFIX' is obsolete. You should run autoupdate.])dnl m4_if($#, 0, [_LT_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX($@)])]) m4trace:/usr/share/aclocal/libtool.m4:3240: -1- 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 m4_require([_LT_PROG_ECHO_BACKSLASH])dnl AC_ARG_WITH([gnu-ld], [AS_HELP_STRING([--with-gnu-ld], [assume the C compiler uses GNU ld @<:@default=no@:>@])], [test no = "$withval" || with_gnu_ld=yes], [with_gnu_ld=no])dnl ac_prog=ld if test yes = "$GCC"; 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 yes = "$with_gnu_ld"; 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 | sed '1q'` in *$lt_bad_file* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break 2 ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break 2 ;; *) 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 no != "$lt_cv_path_NM"; then NM=$lt_cv_path_NM else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$DUMPBIN"; then : # Let the user override the test. else AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in *COFF*) DUMPBIN="$DUMPBIN -symbols -headers" ;; *) DUMPBIN=: ;; esac fi 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:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:$LINENO: $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:$LINENO: 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*]) ]) m4trace:/usr/share/aclocal/libtool.m4:3754: -1- AU_DEFUN([AM_PROG_NM], [m4_if($#, 0, [LT_PATH_NM], [LT_PATH_NM($@)])]) m4trace:/usr/share/aclocal/libtool.m4:3754: -1- AC_DEFUN([AM_PROG_NM], [AC_DIAGNOSE([obsolete], [The macro `AM_PROG_NM' is obsolete. You should run autoupdate.])dnl m4_if($#, 0, [LT_PATH_NM], [LT_PATH_NM($@)])]) m4trace:/usr/share/aclocal/libtool.m4:3755: -1- AU_DEFUN([AC_PROG_NM], [m4_if($#, 0, [LT_PATH_NM], [LT_PATH_NM($@)])]) m4trace:/usr/share/aclocal/libtool.m4:3755: -1- AC_DEFUN([AC_PROG_NM], [AC_DIAGNOSE([obsolete], [The macro `AC_PROG_NM' is obsolete. You should run autoupdate.])dnl m4_if($#, 0, [LT_PATH_NM], [LT_PATH_NM($@)])]) m4trace:/usr/share/aclocal/libtool.m4:3826: -1- AC_DEFUN([_LT_DLL_DEF_P], [dnl test DEF = "`$SED -n dnl -e '\''s/^[[ ]]*//'\'' dnl Strip leading whitespace -e '\''/^\(;.*\)*$/d'\'' dnl Delete empty lines and comments -e '\''s/^\(EXPORTS\|LIBRARY\)\([[ ]].*\)*$/DEF/p'\'' dnl -e q dnl Only consider the first "real" line $1`" dnl ]) m4trace:/usr/share/aclocal/libtool.m4:3840: -1- AC_DEFUN([LT_LIB_M], [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= case $host in *-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-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]) ]) m4trace:/usr/share/aclocal/libtool.m4:3859: -1- AU_DEFUN([AC_CHECK_LIBM], [m4_if($#, 0, [LT_LIB_M], [LT_LIB_M($@)])]) m4trace:/usr/share/aclocal/libtool.m4:3859: -1- AC_DEFUN([AC_CHECK_LIBM], [AC_DIAGNOSE([obsolete], [The macro `AC_CHECK_LIBM' is obsolete. You should run autoupdate.])dnl m4_if($#, 0, [LT_LIB_M], [LT_LIB_M($@)])]) m4trace:/usr/share/aclocal/libtool.m4:8122: -1- 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 set = "${GCJFLAGS+set}" || GCJFLAGS="-g -O2" AC_SUBST(GCJFLAGS)])])[]dnl ]) m4trace:/usr/share/aclocal/libtool.m4:8131: -1- AU_DEFUN([LT_AC_PROG_GCJ], [m4_if($#, 0, [LT_PROG_GCJ], [LT_PROG_GCJ($@)])]) m4trace:/usr/share/aclocal/libtool.m4:8131: -1- AC_DEFUN([LT_AC_PROG_GCJ], [AC_DIAGNOSE([obsolete], [The macro `LT_AC_PROG_GCJ' is obsolete. You should run autoupdate.])dnl m4_if($#, 0, [LT_PROG_GCJ], [LT_PROG_GCJ($@)])]) m4trace:/usr/share/aclocal/libtool.m4:8138: -1- AC_DEFUN([LT_PROG_GO], [AC_CHECK_TOOL(GOC, gccgo,) ]) m4trace:/usr/share/aclocal/libtool.m4:8145: -1- AC_DEFUN([LT_PROG_RC], [AC_CHECK_TOOL(RC, windres,) ]) m4trace:/usr/share/aclocal/libtool.m4:8150: -1- AU_DEFUN([LT_AC_PROG_RC], [m4_if($#, 0, [LT_PROG_RC], [LT_PROG_RC($@)])]) m4trace:/usr/share/aclocal/libtool.m4:8150: -1- AC_DEFUN([LT_AC_PROG_RC], [AC_DIAGNOSE([obsolete], [The macro `LT_AC_PROG_RC' is obsolete. You should run autoupdate.])dnl m4_if($#, 0, [LT_PROG_RC], [LT_PROG_RC($@)])]) m4trace:/usr/share/aclocal/libtool.m4:8270: -1- AU_DEFUN([LT_AC_PROG_SED], [m4_if($#, 0, [AC_PROG_SED], [AC_PROG_SED($@)])]) m4trace:/usr/share/aclocal/libtool.m4:8270: -1- AC_DEFUN([LT_AC_PROG_SED], [AC_DIAGNOSE([obsolete], [The macro `LT_AC_PROG_SED' is obsolete. You should run autoupdate.])dnl m4_if($#, 0, [AC_PROG_SED], [AC_PROG_SED($@)])]) m4trace:/usr/share/aclocal/ltargz.m4:12: -1- AC_DEFUN([LT_FUNC_ARGZ], [ AC_CHECK_HEADERS([argz.h], [], [], [AC_INCLUDES_DEFAULT]) AC_CHECK_TYPES([error_t], [], [AC_DEFINE([error_t], [int], [Define to a type to use for 'error_t' if it is not otherwise available.]) AC_DEFINE([__error_t_defined], [1], [Define so that glibc/gnulib argp.h does not typedef error_t.])], [#if defined(HAVE_ARGZ_H) # include #endif]) LT_ARGZ_H= AC_CHECK_FUNCS([argz_add argz_append argz_count argz_create_sep argz_insert \ argz_next argz_stringify], [], [LT_ARGZ_H=lt__argz.h; AC_LIBOBJ([lt__argz])]) dnl if have system argz functions, allow forced use of dnl libltdl-supplied implementation (and default to do so dnl on "known bad" systems). Could use a runtime check, but dnl (a) detecting malloc issues is notoriously unreliable dnl (b) only known system that declares argz functions, dnl provides them, yet they are broken, is cygwin dnl releases prior to 16-Mar-2007 (1.5.24 and earlier) dnl So, it's more straightforward simply to special case dnl this for known bad systems. AS_IF([test -z "$LT_ARGZ_H"], [AC_CACHE_CHECK( [if argz actually works], [lt_cv_sys_argz_works], [[case $host_os in #( *cygwin*) lt_cv_sys_argz_works=no if test no != "$cross_compiling"; then lt_cv_sys_argz_works="guessing no" else lt_sed_extract_leading_digits='s/^\([0-9\.]*\).*/\1/' save_IFS=$IFS IFS=-. set x `uname -r | sed -e "$lt_sed_extract_leading_digits"` IFS=$save_IFS lt_os_major=${2-0} lt_os_minor=${3-0} lt_os_micro=${4-0} if test 1 -lt "$lt_os_major" \ || { test 1 -eq "$lt_os_major" \ && { test 5 -lt "$lt_os_minor" \ || { test 5 -eq "$lt_os_minor" \ && test 24 -lt "$lt_os_micro"; }; }; }; then lt_cv_sys_argz_works=yes fi fi ;; #( *) lt_cv_sys_argz_works=yes ;; esac]]) AS_IF([test yes = "$lt_cv_sys_argz_works"], [AC_DEFINE([HAVE_WORKING_ARGZ], 1, [This value is set to 1 to indicate that the system argz facility works])], [LT_ARGZ_H=lt__argz.h AC_LIBOBJ([lt__argz])])]) AC_SUBST([LT_ARGZ_H]) ]) m4trace:/usr/share/aclocal/ltdl.m4:16: -1- AC_DEFUN([LT_CONFIG_LTDL_DIR], [AC_BEFORE([$0], [LTDL_INIT]) _$0($*) ]) m4trace:/usr/share/aclocal/ltdl.m4:68: -1- AC_DEFUN([LTDL_CONVENIENCE], [AC_BEFORE([$0], [LTDL_INIT])dnl dnl Although the argument is deprecated and no longer documented, dnl LTDL_CONVENIENCE used to take a DIRECTORY orgument, if we have one dnl here make sure it is the same as any other declaration of libltdl's dnl location! This also ensures lt_ltdl_dir is set when configure.ac is dnl not yet using an explicit LT_CONFIG_LTDL_DIR. m4_ifval([$1], [_LT_CONFIG_LTDL_DIR([$1])])dnl _$0() ]) m4trace:/usr/share/aclocal/ltdl.m4:81: -1- AU_DEFUN([AC_LIBLTDL_CONVENIENCE], [_LT_CONFIG_LTDL_DIR([m4_default([$1], [libltdl])]) _LTDL_CONVENIENCE]) m4trace:/usr/share/aclocal/ltdl.m4:81: -1- AC_DEFUN([AC_LIBLTDL_CONVENIENCE], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBLTDL_CONVENIENCE' is obsolete. You should run autoupdate.])dnl _LT_CONFIG_LTDL_DIR([m4_default([$1], [libltdl])]) _LTDL_CONVENIENCE]) m4trace:/usr/share/aclocal/ltdl.m4:124: -1- AC_DEFUN([LTDL_INSTALLABLE], [AC_BEFORE([$0], [LTDL_INIT])dnl dnl Although the argument is deprecated and no longer documented, dnl LTDL_INSTALLABLE used to take a DIRECTORY orgument, if we have one dnl here make sure it is the same as any other declaration of libltdl's dnl location! This also ensures lt_ltdl_dir is set when configure.ac is dnl not yet using an explicit LT_CONFIG_LTDL_DIR. m4_ifval([$1], [_LT_CONFIG_LTDL_DIR([$1])])dnl _$0() ]) m4trace:/usr/share/aclocal/ltdl.m4:137: -1- AU_DEFUN([AC_LIBLTDL_INSTALLABLE], [_LT_CONFIG_LTDL_DIR([m4_default([$1], [libltdl])]) _LTDL_INSTALLABLE]) m4trace:/usr/share/aclocal/ltdl.m4:137: -1- AC_DEFUN([AC_LIBLTDL_INSTALLABLE], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBLTDL_INSTALLABLE' is obsolete. You should run autoupdate.])dnl _LT_CONFIG_LTDL_DIR([m4_default([$1], [libltdl])]) _LTDL_INSTALLABLE]) m4trace:/usr/share/aclocal/ltdl.m4:213: -1- AC_DEFUN([_LT_LIBOBJ], [ m4_pattern_allow([^_LT_LIBOBJS$]) _LT_LIBOBJS="$_LT_LIBOBJS $1.$ac_objext" ]) m4trace:/usr/share/aclocal/ltdl.m4:226: -1- AC_DEFUN([LTDL_INIT], [dnl Parse OPTIONS _LT_SET_OPTIONS([$0], [$1]) dnl We need to keep our own list of libobjs separate from our parent project, dnl and the easiest way to do that is redefine the AC_LIBOBJs macro while dnl we look for our own LIBOBJs. m4_pushdef([AC_LIBOBJ], m4_defn([_LT_LIBOBJ])) m4_pushdef([AC_LIBSOURCES]) dnl If not otherwise defined, default to the 1.5.x compatible subproject mode: m4_if(_LTDL_MODE, [], [m4_define([_LTDL_MODE], m4_default([$2], [subproject])) m4_if([-1], [m4_bregexp(_LTDL_MODE, [\(subproject\|\(non\)?recursive\)])], [m4_fatal([unknown libltdl mode: ]_LTDL_MODE)])]) AC_ARG_WITH([included_ltdl], [AS_HELP_STRING([--with-included-ltdl], [use the GNU ltdl sources included here])]) if test yes != "$with_included_ltdl"; then # We are not being forced to use the included libltdl sources, so # decide whether there is a useful installed version we can use. AC_CHECK_HEADER([ltdl.h], [AC_CHECK_DECL([lt_dlinterface_register], [AC_CHECK_LIB([ltdl], [lt_dladvise_preload], [with_included_ltdl=no], [with_included_ltdl=yes])], [with_included_ltdl=yes], [AC_INCLUDES_DEFAULT #include ])], [with_included_ltdl=yes], [AC_INCLUDES_DEFAULT] ) fi dnl If neither LT_CONFIG_LTDL_DIR, LTDL_CONVENIENCE nor LTDL_INSTALLABLE dnl was called yet, then for old times' sake, we assume libltdl is in an dnl eponymous directory: AC_PROVIDE_IFELSE([LT_CONFIG_LTDL_DIR], [], [_LT_CONFIG_LTDL_DIR([libltdl])]) AC_ARG_WITH([ltdl_include], [AS_HELP_STRING([--with-ltdl-include=DIR], [use the ltdl headers installed in DIR])]) if test -n "$with_ltdl_include"; then if test -f "$with_ltdl_include/ltdl.h"; then : else AC_MSG_ERROR([invalid ltdl include directory: '$with_ltdl_include']) fi else with_ltdl_include=no fi AC_ARG_WITH([ltdl_lib], [AS_HELP_STRING([--with-ltdl-lib=DIR], [use the libltdl.la installed in DIR])]) if test -n "$with_ltdl_lib"; then if test -f "$with_ltdl_lib/libltdl.la"; then : else AC_MSG_ERROR([invalid ltdl library directory: '$with_ltdl_lib']) fi else with_ltdl_lib=no fi case ,$with_included_ltdl,$with_ltdl_include,$with_ltdl_lib, in ,yes,no,no,) m4_case(m4_default(_LTDL_TYPE, [convenience]), [convenience], [_LTDL_CONVENIENCE], [installable], [_LTDL_INSTALLABLE], [m4_fatal([unknown libltdl build type: ]_LTDL_TYPE)]) ;; ,no,no,no,) # If the included ltdl is not to be used, then use the # preinstalled libltdl we found. AC_DEFINE([HAVE_LTDL], [1], [Define this if a modern libltdl is already installed]) LIBLTDL=-lltdl LTDLDEPS= LTDLINCL= ;; ,no*,no,*) AC_MSG_ERROR(['--with-ltdl-include' and '--with-ltdl-lib' options must be used together]) ;; *) with_included_ltdl=no LIBLTDL="-L$with_ltdl_lib -lltdl" LTDLDEPS= LTDLINCL=-I$with_ltdl_include ;; esac INCLTDL=$LTDLINCL # Report our decision... AC_MSG_CHECKING([where to find libltdl headers]) AC_MSG_RESULT([$LTDLINCL]) AC_MSG_CHECKING([where to find libltdl library]) AC_MSG_RESULT([$LIBLTDL]) _LTDL_SETUP dnl restore autoconf definition. m4_popdef([AC_LIBOBJ]) m4_popdef([AC_LIBSOURCES]) AC_CONFIG_COMMANDS_PRE([ _ltdl_libobjs= _ltdl_ltlibobjs= if test -n "$_LT_LIBOBJS"; then # Remove the extension. _lt_sed_drop_objext='s/\.o$//;s/\.obj$//' for i in `for i in $_LT_LIBOBJS; do echo "$i"; done | sed "$_lt_sed_drop_objext" | sort -u`; do _ltdl_libobjs="$_ltdl_libobjs $lt_libobj_prefix$i.$ac_objext" _ltdl_ltlibobjs="$_ltdl_ltlibobjs $lt_libobj_prefix$i.lo" done fi AC_SUBST([ltdl_LIBOBJS], [$_ltdl_libobjs]) AC_SUBST([ltdl_LTLIBOBJS], [$_ltdl_ltlibobjs]) ]) # Only expand once: m4_define([LTDL_INIT]) ]) m4trace:/usr/share/aclocal/ltdl.m4:352: -1- AU_DEFUN([AC_LIB_LTDL], [LTDL_INIT($@)]) m4trace:/usr/share/aclocal/ltdl.m4:352: -1- AC_DEFUN([AC_LIB_LTDL], [AC_DIAGNOSE([obsolete], [The macro `AC_LIB_LTDL' is obsolete. You should run autoupdate.])dnl LTDL_INIT($@)]) m4trace:/usr/share/aclocal/ltdl.m4:353: -1- AU_DEFUN([AC_WITH_LTDL], [LTDL_INIT($@)]) m4trace:/usr/share/aclocal/ltdl.m4:353: -1- AC_DEFUN([AC_WITH_LTDL], [AC_DIAGNOSE([obsolete], [The macro `AC_WITH_LTDL' is obsolete. You should run autoupdate.])dnl LTDL_INIT($@)]) m4trace:/usr/share/aclocal/ltdl.m4:354: -1- AU_DEFUN([LT_WITH_LTDL], [LTDL_INIT($@)]) m4trace:/usr/share/aclocal/ltdl.m4:354: -1- AC_DEFUN([LT_WITH_LTDL], [AC_DIAGNOSE([obsolete], [The macro `LT_WITH_LTDL' is obsolete. You should run autoupdate.])dnl LTDL_INIT($@)]) m4trace:/usr/share/aclocal/ltdl.m4:367: -1- AC_DEFUN([_LTDL_SETUP], [AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([LT_SYS_MODULE_EXT])dnl AC_REQUIRE([LT_SYS_MODULE_PATH])dnl AC_REQUIRE([LT_SYS_DLSEARCH_PATH])dnl AC_REQUIRE([LT_LIB_DLLOAD])dnl AC_REQUIRE([LT_SYS_SYMBOL_USCORE])dnl AC_REQUIRE([LT_FUNC_DLSYM_USCORE])dnl AC_REQUIRE([LT_SYS_DLOPEN_DEPLIBS])dnl AC_REQUIRE([LT_FUNC_ARGZ])dnl m4_require([_LT_CHECK_OBJDIR])dnl m4_require([_LT_HEADER_DLFCN])dnl m4_require([_LT_CHECK_DLPREOPEN])dnl m4_require([_LT_DECL_SED])dnl dnl Don't require this, or it will be expanded earlier than the code dnl that sets the variables it relies on: _LT_ENABLE_INSTALL dnl _LTDL_MODE specific code must be called at least once: _LTDL_MODE_DISPATCH # In order that ltdl.c can compile, find out the first AC_CONFIG_HEADERS # the user used. This is so that ltdl.h can pick up the parent projects # config.h file, The first file in AC_CONFIG_HEADERS must contain the # definitions required by ltdl.c. # FIXME: Remove use of undocumented AC_LIST_HEADERS (2.59 compatibility). AC_CONFIG_COMMANDS_PRE([dnl m4_pattern_allow([^LT_CONFIG_H$])dnl m4_ifset([AH_HEADER], [LT_CONFIG_H=AH_HEADER], [m4_ifset([AC_LIST_HEADERS], [LT_CONFIG_H=`echo "AC_LIST_HEADERS" | $SED 's|^[[ ]]*||;s|[[ :]].*$||'`], [])])]) AC_SUBST([LT_CONFIG_H]) AC_CHECK_HEADERS([unistd.h dl.h sys/dl.h dld.h mach-o/dyld.h dirent.h], [], [], [AC_INCLUDES_DEFAULT]) AC_CHECK_FUNCS([closedir opendir readdir], [], [AC_LIBOBJ([lt__dirent])]) AC_CHECK_FUNCS([strlcat strlcpy], [], [AC_LIBOBJ([lt__strl])]) m4_pattern_allow([LT_LIBEXT])dnl AC_DEFINE_UNQUOTED([LT_LIBEXT],["$libext"],[The archive extension]) name= eval "lt_libprefix=\"$libname_spec\"" m4_pattern_allow([LT_LIBPREFIX])dnl AC_DEFINE_UNQUOTED([LT_LIBPREFIX],["$lt_libprefix"],[The archive prefix]) name=ltdl eval "LTDLOPEN=\"$libname_spec\"" AC_SUBST([LTDLOPEN]) ]) m4trace:/usr/share/aclocal/ltdl.m4:443: -1- AC_DEFUN([LT_SYS_DLOPEN_DEPLIBS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_CACHE_CHECK([whether deplibs are loaded by dlopen], [lt_cv_sys_dlopen_deplibs], [# PORTME does your system automatically load deplibs for dlopen? # or its logical equivalent (e.g. shl_load for HP-UX < 11) # For now, we just catch OSes we know something about -- in the # future, we'll try test this programmatically. lt_cv_sys_dlopen_deplibs=unknown case $host_os in aix3*|aix4.1.*|aix4.2.*) # Unknown whether this is true for these versions of AIX, but # we want this 'case' here to explicitly catch those versions. lt_cv_sys_dlopen_deplibs=unknown ;; aix[[4-9]]*) lt_cv_sys_dlopen_deplibs=yes ;; amigaos*) case $host_cpu in powerpc) lt_cv_sys_dlopen_deplibs=no ;; esac ;; bitrig*) lt_cv_sys_dlopen_deplibs=yes ;; darwin*) # Assuming the user has installed a libdl from somewhere, this is true # If you are looking for one http://www.opendarwin.org/projects/dlcompat lt_cv_sys_dlopen_deplibs=yes ;; freebsd* | dragonfly*) lt_cv_sys_dlopen_deplibs=yes ;; gnu* | linux* | k*bsd*-gnu | kopensolaris*-gnu) # GNU and its variants, using gnu ld.so (Glibc) lt_cv_sys_dlopen_deplibs=yes ;; hpux10*|hpux11*) lt_cv_sys_dlopen_deplibs=yes ;; interix*) lt_cv_sys_dlopen_deplibs=yes ;; irix[[12345]]*|irix6.[[01]]*) # Catch all versions of IRIX before 6.2, and indicate that we don't # know how it worked for any of those versions. lt_cv_sys_dlopen_deplibs=unknown ;; irix*) # The case above catches anything before 6.2, and it's known that # at 6.2 and later dlopen does load deplibs. lt_cv_sys_dlopen_deplibs=yes ;; netbsd*) lt_cv_sys_dlopen_deplibs=yes ;; openbsd*) lt_cv_sys_dlopen_deplibs=yes ;; osf[[1234]]*) # dlopen did load deplibs (at least at 4.x), but until the 5.x series, # it did *not* use an RPATH in a shared library to find objects the # library depends on, so we explicitly say 'no'. lt_cv_sys_dlopen_deplibs=no ;; osf5.0|osf5.0a|osf5.1) # dlopen *does* load deplibs and with the right loader patch applied # it even uses RPATH in a shared library to search for shared objects # that the library depends on, but there's no easy way to know if that # patch is installed. Since this is the case, all we can really # say is unknown -- it depends on the patch being installed. If # it is, this changes to 'yes'. Without it, it would be 'no'. lt_cv_sys_dlopen_deplibs=unknown ;; osf*) # the two cases above should catch all versions of osf <= 5.1. Read # the comments above for what we know about them. # At > 5.1, deplibs are loaded *and* any RPATH in a shared library # is used to find them so we can finally say 'yes'. lt_cv_sys_dlopen_deplibs=yes ;; qnx*) lt_cv_sys_dlopen_deplibs=yes ;; solaris*) lt_cv_sys_dlopen_deplibs=yes ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) libltdl_cv_sys_dlopen_deplibs=yes ;; esac ]) if test yes != "$lt_cv_sys_dlopen_deplibs"; then AC_DEFINE([LTDL_DLOPEN_DEPLIBS], [1], [Define if the OS needs help to load dependent libraries for dlopen().]) fi ]) m4trace:/usr/share/aclocal/ltdl.m4:545: -1- AU_DEFUN([AC_LTDL_SYS_DLOPEN_DEPLIBS], [m4_if($#, 0, [LT_SYS_DLOPEN_DEPLIBS], [LT_SYS_DLOPEN_DEPLIBS($@)])]) m4trace:/usr/share/aclocal/ltdl.m4:545: -1- AC_DEFUN([AC_LTDL_SYS_DLOPEN_DEPLIBS], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_SYS_DLOPEN_DEPLIBS' is obsolete. You should run autoupdate.])dnl m4_if($#, 0, [LT_SYS_DLOPEN_DEPLIBS], [LT_SYS_DLOPEN_DEPLIBS($@)])]) m4trace:/usr/share/aclocal/ltdl.m4:552: -1- AC_DEFUN([LT_SYS_MODULE_EXT], [m4_require([_LT_SYS_DYNAMIC_LINKER])dnl AC_CACHE_CHECK([what extension is used for runtime loadable modules], [libltdl_cv_shlibext], [ module=yes eval libltdl_cv_shlibext=$shrext_cmds module=no eval libltdl_cv_shrext=$shrext_cmds ]) if test -n "$libltdl_cv_shlibext"; then m4_pattern_allow([LT_MODULE_EXT])dnl AC_DEFINE_UNQUOTED([LT_MODULE_EXT], ["$libltdl_cv_shlibext"], [Define to the extension used for runtime loadable modules, say, ".so".]) fi if test "$libltdl_cv_shrext" != "$libltdl_cv_shlibext"; then m4_pattern_allow([LT_SHARED_EXT])dnl AC_DEFINE_UNQUOTED([LT_SHARED_EXT], ["$libltdl_cv_shrext"], [Define to the shared library suffix, say, ".dylib".]) fi if test -n "$shared_archive_member_spec"; then m4_pattern_allow([LT_SHARED_LIB_MEMBER])dnl AC_DEFINE_UNQUOTED([LT_SHARED_LIB_MEMBER], ["($shared_archive_member_spec.o)"], [Define to the shared archive member specification, say "(shr.o)".]) fi ]) m4trace:/usr/share/aclocal/ltdl.m4:580: -1- AU_DEFUN([AC_LTDL_SHLIBEXT], [m4_if($#, 0, [LT_SYS_MODULE_EXT], [LT_SYS_MODULE_EXT($@)])]) m4trace:/usr/share/aclocal/ltdl.m4:580: -1- AC_DEFUN([AC_LTDL_SHLIBEXT], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_SHLIBEXT' is obsolete. You should run autoupdate.])dnl m4_if($#, 0, [LT_SYS_MODULE_EXT], [LT_SYS_MODULE_EXT($@)])]) m4trace:/usr/share/aclocal/ltdl.m4:587: -1- AC_DEFUN([LT_SYS_MODULE_PATH], [m4_require([_LT_SYS_DYNAMIC_LINKER])dnl AC_CACHE_CHECK([what variable specifies run-time module search path], [lt_cv_module_path_var], [lt_cv_module_path_var=$shlibpath_var]) if test -n "$lt_cv_module_path_var"; then m4_pattern_allow([LT_MODULE_PATH_VAR])dnl AC_DEFINE_UNQUOTED([LT_MODULE_PATH_VAR], ["$lt_cv_module_path_var"], [Define to the name of the environment variable that determines the run-time module search path.]) fi ]) m4trace:/usr/share/aclocal/ltdl.m4:599: -1- AU_DEFUN([AC_LTDL_SHLIBPATH], [m4_if($#, 0, [LT_SYS_MODULE_PATH], [LT_SYS_MODULE_PATH($@)])]) m4trace:/usr/share/aclocal/ltdl.m4:599: -1- AC_DEFUN([AC_LTDL_SHLIBPATH], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_SHLIBPATH' is obsolete. You should run autoupdate.])dnl m4_if($#, 0, [LT_SYS_MODULE_PATH], [LT_SYS_MODULE_PATH($@)])]) m4trace:/usr/share/aclocal/ltdl.m4:606: -1- AC_DEFUN([LT_SYS_DLSEARCH_PATH], [m4_require([_LT_SYS_DYNAMIC_LINKER])dnl AC_CACHE_CHECK([for the default library search path], [lt_cv_sys_dlsearch_path], [lt_cv_sys_dlsearch_path=$sys_lib_dlsearch_path_spec]) if test -n "$lt_cv_sys_dlsearch_path"; then sys_dlsearch_path= for dir in $lt_cv_sys_dlsearch_path; do if test -z "$sys_dlsearch_path"; then sys_dlsearch_path=$dir else sys_dlsearch_path=$sys_dlsearch_path$PATH_SEPARATOR$dir fi done m4_pattern_allow([LT_DLSEARCH_PATH])dnl AC_DEFINE_UNQUOTED([LT_DLSEARCH_PATH], ["$sys_dlsearch_path"], [Define to the system default library search path.]) fi ]) m4trace:/usr/share/aclocal/ltdl.m4:627: -1- AU_DEFUN([AC_LTDL_SYSSEARCHPATH], [m4_if($#, 0, [LT_SYS_DLSEARCH_PATH], [LT_SYS_DLSEARCH_PATH($@)])]) m4trace:/usr/share/aclocal/ltdl.m4:627: -1- AC_DEFUN([AC_LTDL_SYSSEARCHPATH], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_SYSSEARCHPATH' is obsolete. You should run autoupdate.])dnl m4_if($#, 0, [LT_SYS_DLSEARCH_PATH], [LT_SYS_DLSEARCH_PATH($@)])]) m4trace:/usr/share/aclocal/ltdl.m4:653: -1- AC_DEFUN([LT_LIB_DLLOAD], [m4_pattern_allow([^LT_DLLOADERS$]) LT_DLLOADERS= AC_SUBST([LT_DLLOADERS]) AC_LANG_PUSH([C]) lt_dlload_save_LIBS=$LIBS LIBADD_DLOPEN= AC_SEARCH_LIBS([dlopen], [dl], [AC_DEFINE([HAVE_LIBDL], [1], [Define if you have the libdl library or equivalent.]) if test "$ac_cv_search_dlopen" != "none required"; then LIBADD_DLOPEN=-ldl fi libltdl_cv_lib_dl_dlopen=yes LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dlopen.la"], [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#if HAVE_DLFCN_H # include #endif ]], [[dlopen(0, 0);]])], [AC_DEFINE([HAVE_LIBDL], [1], [Define if you have the libdl library or equivalent.]) libltdl_cv_func_dlopen=yes LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dlopen.la"], [AC_CHECK_LIB([svld], [dlopen], [AC_DEFINE([HAVE_LIBDL], [1], [Define if you have the libdl library or equivalent.]) LIBADD_DLOPEN=-lsvld libltdl_cv_func_dlopen=yes LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dlopen.la"])])]) if test yes = "$libltdl_cv_func_dlopen" || test yes = "$libltdl_cv_lib_dl_dlopen" then lt_save_LIBS=$LIBS LIBS="$LIBS $LIBADD_DLOPEN" AC_CHECK_FUNCS([dlerror]) LIBS=$lt_save_LIBS fi AC_SUBST([LIBADD_DLOPEN]) LIBADD_SHL_LOAD= AC_CHECK_FUNC([shl_load], [AC_DEFINE([HAVE_SHL_LOAD], [1], [Define if you have the shl_load function.]) LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}shl_load.la"], [AC_CHECK_LIB([dld], [shl_load], [AC_DEFINE([HAVE_SHL_LOAD], [1], [Define if you have the shl_load function.]) LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}shl_load.la" LIBADD_SHL_LOAD=-ldld])]) AC_SUBST([LIBADD_SHL_LOAD]) case $host_os in darwin[[1567]].*) # We only want this for pre-Mac OS X 10.4. AC_CHECK_FUNC([_dyld_func_lookup], [AC_DEFINE([HAVE_DYLD], [1], [Define if you have the _dyld_func_lookup function.]) LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dyld.la"]) ;; beos*) LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}load_add_on.la" ;; cygwin* | mingw* | pw32*) AC_CHECK_DECLS([cygwin_conv_path], [], [], [[#include ]]) LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}loadlibrary.la" ;; esac AC_CHECK_LIB([dld], [dld_link], [AC_DEFINE([HAVE_DLD], [1], [Define if you have the GNU dld library.]) LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dld_link.la"]) AC_SUBST([LIBADD_DLD_LINK]) m4_pattern_allow([^LT_DLPREOPEN$]) LT_DLPREOPEN= if test -n "$LT_DLLOADERS" then for lt_loader in $LT_DLLOADERS; do LT_DLPREOPEN="$LT_DLPREOPEN-dlpreopen $lt_loader " done AC_DEFINE([HAVE_LIBDLLOADER], [1], [Define if libdlloader will be built on this platform]) fi AC_SUBST([LT_DLPREOPEN]) dnl This isn't used anymore, but set it for backwards compatibility LIBADD_DL="$LIBADD_DLOPEN $LIBADD_SHL_LOAD" AC_SUBST([LIBADD_DL]) LIBS=$lt_dlload_save_LIBS AC_LANG_POP ]) m4trace:/usr/share/aclocal/ltdl.m4:748: -1- AU_DEFUN([AC_LTDL_DLLIB], [m4_if($#, 0, [LT_LIB_DLLOAD], [LT_LIB_DLLOAD($@)])]) m4trace:/usr/share/aclocal/ltdl.m4:748: -1- AC_DEFUN([AC_LTDL_DLLIB], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_DLLIB' is obsolete. You should run autoupdate.])dnl m4_if($#, 0, [LT_LIB_DLLOAD], [LT_LIB_DLLOAD($@)])]) m4trace:/usr/share/aclocal/ltdl.m4:756: -1- AC_DEFUN([LT_SYS_SYMBOL_USCORE], [m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl AC_CACHE_CHECK([for _ prefix in compiled symbols], [lt_cv_sys_symbol_underscore], [lt_cv_sys_symbol_underscore=no cat > conftest.$ac_ext <<_LT_EOF void nm_test_func(){} int main(){nm_test_func;return 0;} _LT_EOF if AC_TRY_EVAL(ac_compile); then # Now try to grab the symbols. ac_nlist=conftest.nm if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $ac_nlist) && test -s "$ac_nlist"; then # See whether the symbols have a leading underscore. if grep '^. _nm_test_func' "$ac_nlist" >/dev/null; then lt_cv_sys_symbol_underscore=yes else if grep '^. nm_test_func ' "$ac_nlist" >/dev/null; then : else echo "configure: cannot find nm_test_func in $ac_nlist" >&AS_MESSAGE_LOG_FD fi fi else echo "configure: cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD fi else echo "configure: failed program was:" >&AS_MESSAGE_LOG_FD cat conftest.c >&AS_MESSAGE_LOG_FD fi rm -rf conftest* ]) sys_symbol_underscore=$lt_cv_sys_symbol_underscore AC_SUBST([sys_symbol_underscore]) ]) m4trace:/usr/share/aclocal/ltdl.m4:793: -1- AU_DEFUN([AC_LTDL_SYMBOL_USCORE], [m4_if($#, 0, [LT_SYS_SYMBOL_USCORE], [LT_SYS_SYMBOL_USCORE($@)])]) m4trace:/usr/share/aclocal/ltdl.m4:793: -1- AC_DEFUN([AC_LTDL_SYMBOL_USCORE], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_SYMBOL_USCORE' is obsolete. You should run autoupdate.])dnl m4_if($#, 0, [LT_SYS_SYMBOL_USCORE], [LT_SYS_SYMBOL_USCORE($@)])]) m4trace:/usr/share/aclocal/ltdl.m4:800: -1- AC_DEFUN([LT_FUNC_DLSYM_USCORE], [AC_REQUIRE([_LT_COMPILER_PIC])dnl for lt_prog_compiler_wl AC_REQUIRE([LT_SYS_SYMBOL_USCORE])dnl for lt_cv_sys_symbol_underscore AC_REQUIRE([LT_SYS_MODULE_EXT])dnl for libltdl_cv_shlibext if test yes = "$lt_cv_sys_symbol_underscore"; then if test yes = "$libltdl_cv_func_dlopen" || test yes = "$libltdl_cv_lib_dl_dlopen"; then AC_CACHE_CHECK([whether we have to add an underscore for dlsym], [libltdl_cv_need_uscore], [libltdl_cv_need_uscore=unknown dlsym_uscore_save_LIBS=$LIBS LIBS="$LIBS $LIBADD_DLOPEN" libname=conftmod # stay within 8.3 filename limits! cat >$libname.$ac_ext <<_LT_EOF [#line $LINENO "configure" #include "confdefs.h" /* When -fvisibility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 42; }] _LT_EOF # ltfn_module_cmds module_cmds # Execute tilde-delimited MODULE_CMDS with environment primed for # $module_cmds or $archive_cmds type content. ltfn_module_cmds () {( # subshell avoids polluting parent global environment module_cmds_save_ifs=$IFS; IFS='~' for cmd in @S|@1; do IFS=$module_cmds_save_ifs libobjs=$libname.$ac_objext; lib=$libname$libltdl_cv_shlibext rpath=/not-exists; soname=$libname$libltdl_cv_shlibext; output_objdir=. major=; versuffix=; verstring=; deplibs= ECHO=echo; wl=$lt_prog_compiler_wl; allow_undefined_flag= eval $cmd done IFS=$module_cmds_save_ifs )} # Compile a loadable module using libtool macro expansion results. $CC $pic_flag -c $libname.$ac_ext ltfn_module_cmds "${module_cmds:-$archive_cmds}" # Try to fetch fnord with dlsym(). libltdl_dlunknown=0; libltdl_dlnouscore=1; libltdl_dluscore=2 cat >conftest.$ac_ext <<_LT_EOF [#line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifndef RTLD_GLOBAL # ifdef DL_GLOBAL # define RTLD_GLOBAL DL_GLOBAL # else # define RTLD_GLOBAL 0 # endif #endif #ifndef RTLD_NOW # ifdef DL_NOW # define RTLD_NOW DL_NOW # else # define RTLD_NOW 0 # endif #endif int main () { void *handle = dlopen ("`pwd`/$libname$libltdl_cv_shlibext", RTLD_GLOBAL|RTLD_NOW); int status = $libltdl_dlunknown; if (handle) { if (dlsym (handle, "fnord")) status = $libltdl_dlnouscore; else { if (dlsym (handle, "_fnord")) status = $libltdl_dluscore; else puts (dlerror ()); } dlclose (handle); } 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 libltdl_status=$? case x$libltdl_status in x$libltdl_dlnouscore) libltdl_cv_need_uscore=no ;; x$libltdl_dluscore) libltdl_cv_need_uscore=yes ;; x*) libltdl_cv_need_uscore=unknown ;; esac fi rm -rf conftest* $libname* LIBS=$dlsym_uscore_save_LIBS ]) fi fi if test yes = "$libltdl_cv_need_uscore"; then AC_DEFINE([NEED_USCORE], [1], [Define if dlsym() requires a leading underscore in symbol names.]) fi ]) m4trace:/usr/share/aclocal/ltdl.m4:907: -1- AU_DEFUN([AC_LTDL_DLSYM_USCORE], [m4_if($#, 0, [LT_FUNC_DLSYM_USCORE], [LT_FUNC_DLSYM_USCORE($@)])]) m4trace:/usr/share/aclocal/ltdl.m4:907: -1- AC_DEFUN([AC_LTDL_DLSYM_USCORE], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_DLSYM_USCORE' is obsolete. You should run autoupdate.])dnl m4_if($#, 0, [LT_FUNC_DLSYM_USCORE], [LT_FUNC_DLSYM_USCORE($@)])]) m4trace:/usr/share/aclocal/ltoptions.m4:14: -1- AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) m4trace:/usr/share/aclocal/ltoptions.m4:113: -1- 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.]) ]) m4trace:/usr/share/aclocal/ltoptions.m4:113: -1- AC_DEFUN([AC_LIBTOOL_DLOPEN], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_DLOPEN' is obsolete. You should run autoupdate.])dnl _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.]) ]) m4trace:/usr/share/aclocal/ltoptions.m4:148: -1- 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.]) ]) m4trace:/usr/share/aclocal/ltoptions.m4:148: -1- AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_WIN32_DLL' is obsolete. You should run autoupdate.])dnl 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.]) ]) m4trace:/usr/share/aclocal/ltoptions.m4:197: -1- AC_DEFUN([AC_ENABLE_SHARED], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) ]) m4trace:/usr/share/aclocal/ltoptions.m4:201: -1- AC_DEFUN([AC_DISABLE_SHARED], [_LT_SET_OPTION([LT_INIT], [disable-shared]) ]) m4trace:/usr/share/aclocal/ltoptions.m4:205: -1- AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) m4trace:/usr/share/aclocal/ltoptions.m4:205: -1- AC_DEFUN([AM_ENABLE_SHARED], [AC_DIAGNOSE([obsolete], [The macro `AM_ENABLE_SHARED' is obsolete. You should run autoupdate.])dnl AC_ENABLE_SHARED($@)]) m4trace:/usr/share/aclocal/ltoptions.m4:206: -1- AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) m4trace:/usr/share/aclocal/ltoptions.m4:206: -1- AC_DEFUN([AM_DISABLE_SHARED], [AC_DIAGNOSE([obsolete], [The macro `AM_DISABLE_SHARED' is obsolete. You should run autoupdate.])dnl AC_DISABLE_SHARED($@)]) m4trace:/usr/share/aclocal/ltoptions.m4:251: -1- AC_DEFUN([AC_ENABLE_STATIC], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) ]) m4trace:/usr/share/aclocal/ltoptions.m4:255: -1- AC_DEFUN([AC_DISABLE_STATIC], [_LT_SET_OPTION([LT_INIT], [disable-static]) ]) m4trace:/usr/share/aclocal/ltoptions.m4:259: -1- AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) m4trace:/usr/share/aclocal/ltoptions.m4:259: -1- AC_DEFUN([AM_ENABLE_STATIC], [AC_DIAGNOSE([obsolete], [The macro `AM_ENABLE_STATIC' is obsolete. You should run autoupdate.])dnl AC_ENABLE_STATIC($@)]) m4trace:/usr/share/aclocal/ltoptions.m4:260: -1- AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) m4trace:/usr/share/aclocal/ltoptions.m4:260: -1- AC_DEFUN([AM_DISABLE_STATIC], [AC_DIAGNOSE([obsolete], [The macro `AM_DISABLE_STATIC' is obsolete. You should run autoupdate.])dnl AC_DISABLE_STATIC($@)]) m4trace:/usr/share/aclocal/ltoptions.m4:305: -1- 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.]) ]) m4trace:/usr/share/aclocal/ltoptions.m4:305: -1- AC_DEFUN([AC_ENABLE_FAST_INSTALL], [AC_DIAGNOSE([obsolete], [The macro `AC_ENABLE_FAST_INSTALL' is obsolete. You should run autoupdate.])dnl _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.]) ]) m4trace:/usr/share/aclocal/ltoptions.m4:312: -1- 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.]) ]) m4trace:/usr/share/aclocal/ltoptions.m4:312: -1- AC_DEFUN([AC_DISABLE_FAST_INSTALL], [AC_DIAGNOSE([obsolete], [The macro `AC_DISABLE_FAST_INSTALL' is obsolete. You should run autoupdate.])dnl _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.]) ]) m4trace:/usr/share/aclocal/ltoptions.m4:411: -1- 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.]) ]) m4trace:/usr/share/aclocal/ltoptions.m4:411: -1- AC_DEFUN([AC_LIBTOOL_PICMODE], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_PICMODE' is obsolete. You should run autoupdate.])dnl _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.]) ]) m4trace:/usr/share/aclocal/ltsugar.m4:14: -1- AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) m4trace:/usr/share/aclocal/ltversion.m4:18: -1- AC_DEFUN([LTVERSION_VERSION], [macro_version='2.4.6' macro_revision='2.4.6' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) m4trace:/usr/share/aclocal/lt~obsolete.m4:37: -1- AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) m4trace:/usr/share/aclocal/lt~obsolete.m4:41: -1- AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH]) m4trace:/usr/share/aclocal/lt~obsolete.m4:42: -1- AC_DEFUN([_LT_AC_SHELL_INIT]) m4trace:/usr/share/aclocal/lt~obsolete.m4:43: -1- AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX]) m4trace:/usr/share/aclocal/lt~obsolete.m4:45: -1- AC_DEFUN([_LT_AC_TAGVAR]) m4trace:/usr/share/aclocal/lt~obsolete.m4:46: -1- AC_DEFUN([AC_LTDL_ENABLE_INSTALL]) m4trace:/usr/share/aclocal/lt~obsolete.m4:47: -1- AC_DEFUN([AC_LTDL_PREOPEN]) m4trace:/usr/share/aclocal/lt~obsolete.m4:48: -1- AC_DEFUN([_LT_AC_SYS_COMPILER]) m4trace:/usr/share/aclocal/lt~obsolete.m4:49: -1- AC_DEFUN([_LT_AC_LOCK]) m4trace:/usr/share/aclocal/lt~obsolete.m4:50: -1- AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE]) m4trace:/usr/share/aclocal/lt~obsolete.m4:51: -1- AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF]) m4trace:/usr/share/aclocal/lt~obsolete.m4:52: -1- AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O]) m4trace:/usr/share/aclocal/lt~obsolete.m4:53: -1- AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS]) m4trace:/usr/share/aclocal/lt~obsolete.m4:54: -1- AC_DEFUN([AC_LIBTOOL_OBJDIR]) m4trace:/usr/share/aclocal/lt~obsolete.m4:55: -1- AC_DEFUN([AC_LTDL_OBJDIR]) m4trace:/usr/share/aclocal/lt~obsolete.m4:56: -1- AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH]) m4trace:/usr/share/aclocal/lt~obsolete.m4:57: -1- AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP]) m4trace:/usr/share/aclocal/lt~obsolete.m4:58: -1- AC_DEFUN([AC_PATH_MAGIC]) m4trace:/usr/share/aclocal/lt~obsolete.m4:59: -1- AC_DEFUN([AC_PROG_LD_GNU]) m4trace:/usr/share/aclocal/lt~obsolete.m4:60: -1- AC_DEFUN([AC_PROG_LD_RELOAD_FLAG]) m4trace:/usr/share/aclocal/lt~obsolete.m4:61: -1- AC_DEFUN([AC_DEPLIBS_CHECK_METHOD]) m4trace:/usr/share/aclocal/lt~obsolete.m4:62: -1- AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI]) m4trace:/usr/share/aclocal/lt~obsolete.m4:63: -1- AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE]) m4trace:/usr/share/aclocal/lt~obsolete.m4:64: -1- AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC]) m4trace:/usr/share/aclocal/lt~obsolete.m4:65: -1- AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS]) m4trace:/usr/share/aclocal/lt~obsolete.m4:66: -1- AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP]) m4trace:/usr/share/aclocal/lt~obsolete.m4:67: -1- AC_DEFUN([LT_AC_PROG_EGREP]) m4trace:/usr/share/aclocal/lt~obsolete.m4:72: -1- AC_DEFUN([_AC_PROG_LIBTOOL]) m4trace:/usr/share/aclocal/lt~obsolete.m4:73: -1- AC_DEFUN([AC_LIBTOOL_SETUP]) m4trace:/usr/share/aclocal/lt~obsolete.m4:74: -1- AC_DEFUN([_LT_AC_CHECK_DLFCN]) m4trace:/usr/share/aclocal/lt~obsolete.m4:75: -1- AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER]) m4trace:/usr/share/aclocal/lt~obsolete.m4:76: -1- AC_DEFUN([_LT_AC_TAGCONFIG]) m4trace:/usr/share/aclocal/lt~obsolete.m4:78: -1- AC_DEFUN([_LT_AC_LANG_CXX]) m4trace:/usr/share/aclocal/lt~obsolete.m4:79: -1- AC_DEFUN([_LT_AC_LANG_F77]) m4trace:/usr/share/aclocal/lt~obsolete.m4:80: -1- AC_DEFUN([_LT_AC_LANG_GCJ]) m4trace:/usr/share/aclocal/lt~obsolete.m4:81: -1- AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG]) m4trace:/usr/share/aclocal/lt~obsolete.m4:82: -1- AC_DEFUN([_LT_AC_LANG_C_CONFIG]) m4trace:/usr/share/aclocal/lt~obsolete.m4:83: -1- AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG]) m4trace:/usr/share/aclocal/lt~obsolete.m4:84: -1- AC_DEFUN([_LT_AC_LANG_CXX_CONFIG]) m4trace:/usr/share/aclocal/lt~obsolete.m4:85: -1- AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG]) m4trace:/usr/share/aclocal/lt~obsolete.m4:86: -1- AC_DEFUN([_LT_AC_LANG_F77_CONFIG]) m4trace:/usr/share/aclocal/lt~obsolete.m4:87: -1- AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG]) m4trace:/usr/share/aclocal/lt~obsolete.m4:88: -1- AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG]) m4trace:/usr/share/aclocal/lt~obsolete.m4:89: -1- AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG]) m4trace:/usr/share/aclocal/lt~obsolete.m4:90: -1- AC_DEFUN([_LT_AC_LANG_RC_CONFIG]) m4trace:/usr/share/aclocal/lt~obsolete.m4:91: -1- AC_DEFUN([AC_LIBTOOL_CONFIG]) m4trace:/usr/share/aclocal/lt~obsolete.m4:92: -1- AC_DEFUN([_LT_AC_FILE_LTDLL_C]) m4trace:/usr/share/aclocal/lt~obsolete.m4:94: -1- AC_DEFUN([_LT_AC_PROG_CXXCPP]) m4trace:/usr/share/aclocal/lt~obsolete.m4:97: -1- AC_DEFUN([_LT_PROG_F77]) m4trace:/usr/share/aclocal/lt~obsolete.m4:98: -1- AC_DEFUN([_LT_PROG_FC]) m4trace:/usr/share/aclocal/lt~obsolete.m4:99: -1- AC_DEFUN([_LT_PROG_CXX]) m4trace:/usr/share/aclocal-1.15/amversion.m4:14: -1- AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.15' 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.15], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) m4trace:/usr/share/aclocal-1.15/amversion.m4:33: -1- AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.15])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) m4trace:/usr/share/aclocal-1.15/ar-lib.m4:13: -1- AC_DEFUN([AM_PROG_AR], [AC_BEFORE([$0], [LT_INIT])dnl AC_BEFORE([$0], [AC_PROG_LIBTOOL])dnl AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([ar-lib])dnl AC_CHECK_TOOLS([AR], [ar lib "link -lib"], [false]) : ${AR=ar} AC_CACHE_CHECK([the archiver ($AR) interface], [am_cv_ar_interface], [AC_LANG_PUSH([C]) am_cv_ar_interface=ar AC_COMPILE_IFELSE([AC_LANG_SOURCE([[int some_variable = 0;]])], [am_ar_try='$AR cru libconftest.a conftest.$ac_objext >&AS_MESSAGE_LOG_FD' AC_TRY_EVAL([am_ar_try]) if test "$ac_status" -eq 0; then am_cv_ar_interface=ar else am_ar_try='$AR -NOLOGO -OUT:conftest.lib conftest.$ac_objext >&AS_MESSAGE_LOG_FD' AC_TRY_EVAL([am_ar_try]) if test "$ac_status" -eq 0; then am_cv_ar_interface=lib else am_cv_ar_interface=unknown fi fi rm -f conftest.lib libconftest.a ]) AC_LANG_POP([C])]) case $am_cv_ar_interface in ar) ;; lib) # Microsoft lib, so override with the ar-lib wrapper script. # FIXME: It is wrong to rewrite AR. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__AR in this case, # and then we could set am__AR="$am_aux_dir/ar-lib \$(AR)" or something # similar. AR="$am_aux_dir/ar-lib $AR" ;; unknown) m4_default([$1], [AC_MSG_ERROR([could not determine $AR interface])]) ;; esac AC_SUBST([AR])dnl ]) m4trace:/usr/share/aclocal-1.15/as.m4:11: -1- AC_DEFUN([AM_PROG_AS], [# By default we simply use the C compiler to build assembly code. AC_REQUIRE([AC_PROG_CC]) test "${CCAS+set}" = set || CCAS=$CC test "${CCASFLAGS+set}" = set || CCASFLAGS=$CFLAGS AC_ARG_VAR([CCAS], [assembler compiler command (defaults to CC)]) AC_ARG_VAR([CCASFLAGS], [assembler compiler flags (defaults to CFLAGS)]) _AM_IF_OPTION([no-dependencies],, [_AM_DEPENDENCIES([CCAS])])dnl ]) m4trace:/usr/share/aclocal-1.15/auxdir.m4:47: -1- AC_DEFUN([AM_AUX_DIR_EXPAND], [AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl # Expand $ac_aux_dir to an absolute path. am_aux_dir=`cd "$ac_aux_dir" && pwd` ]) m4trace:/usr/share/aclocal-1.15/cond.m4:12: -1- AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ([2.52])dnl m4_if([$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])]) m4trace:/usr/share/aclocal-1.15/depend.m4:26: -1- 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 m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], [$1], [CXX], [depcc="$CXX" am_compiler_list=], [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], [OBJCXX], [depcc="$OBJCXX" 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". rm -rf conftest.dir 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 10 /bin/sh. echo '/* dummy */' > 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 ;; msvc7 | msvc7msys | 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]) ]) m4trace:/usr/share/aclocal-1.15/depend.m4:163: -1- AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ]) m4trace:/usr/share/aclocal-1.15/depend.m4:171: -1- AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE([dependency-tracking], [dnl AS_HELP_STRING( [--enable-dependency-tracking], [do not reject slow dependency extractors]) AS_HELP_STRING( [--disable-dependency-tracking], [speeds up one-time build])]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' am__nodep='_no' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl AC_SUBST([am__nodep])dnl _AM_SUBST_NOTMAKE([am__nodep])dnl ]) m4trace:/usr/share/aclocal-1.15/depout.m4:12: -1- AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ # Older Autoconf 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"` # 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'`; 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 } ]) m4trace:/usr/share/aclocal-1.15/depout.m4:71: -1- 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"]) ]) m4trace:/usr/share/aclocal-1.15/init.m4:29: -1- AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.65])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], [AC_DIAGNOSE([obsolete], [$0: two- and three-arguments forms are deprecated.]) 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], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), [ok:ok],, [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([AC_PROG_MKDIR_P])dnl # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: # # AC_SUBST([mkdir_p], ['$(MKDIR_P)']) # We need awk for the "check" target (and possibly the TAP driver). 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])], [m4_define([AC_PROG_CC], m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES([CXX])], [m4_define([AC_PROG_CXX], m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES([OBJC])], [m4_define([AC_PROG_OBJC], m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], [_AM_DEPENDENCIES([OBJCXX])], [m4_define([AC_PROG_OBJCXX], m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl ]) AC_REQUIRE([AM_SILENT_RULES])dnl dnl The testsuite driver may need to know about EXEEXT, so add the dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This dnl macro 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 # POSIX will say in a future version that running "rm -f" with no argument # is OK; and we want to be able to make that assumption in our Makefile # recipes. So use an aggressive probe to check that the usage we want is # actually supported "in the wild" to an acceptable degree. # See automake bug#10828. # To make any issue more visible, cause the running configure to be aborted # by default if the 'rm' program in use doesn't match our expectations; the # user can still override this though. if rm -f && rm -fr && rm -rf; then : OK; else cat >&2 <<'END' Oops! Your 'rm' program seems unable to run without file operands specified on the command line, even when the '-f' option is present. This is contrary to the behaviour of most rm programs out there, and not conforming with the upcoming POSIX standard: Please tell bug-automake@gnu.org about your system, including the value of your $PATH and any error possibly output before this message. This can help us improve future automake versions. END if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then echo 'Configuration will proceed anyway, since you have set the' >&2 echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 echo >&2 else cat >&2 <<'END' Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation that behaves properly: . If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM to "yes", and re-run configure. END AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) fi fi dnl The trailing newline in this macro's definition is deliberate, for dnl backward compatibility and to allow trailing 'dnl'-style comments dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841. ]) m4trace:/usr/share/aclocal-1.15/init.m4:186: -1- 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]) m4trace:/usr/share/aclocal-1.15/install-sh.m4:11: -1- AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl if test x"${install_sh+set}" != 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])]) m4trace:/usr/share/aclocal-1.15/lead-dot.m4:10: -1- 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])]) m4trace:/usr/share/aclocal-1.15/maintainer.m4:16: -1- AC_DEFUN([AM_MAINTAINER_MODE], [m4_case(m4_default([$1], [disable]), [enable], [m4_define([am_maintainer_other], [disable])], [disable], [m4_define([am_maintainer_other], [enable])], [m4_define([am_maintainer_other], [enable]) m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) dnl maintainer-mode's default is 'disable' unless 'enable' is passed AC_ARG_ENABLE([maintainer-mode], [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode], am_maintainer_other[ make rules and dependencies not useful (and sometimes confusing) to the casual installer])], [USE_MAINTAINER_MODE=$enableval], [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) AC_MSG_RESULT([$USE_MAINTAINER_MODE]) AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) MAINT=$MAINTAINER_MODE_TRUE AC_SUBST([MAINT])dnl ]) m4trace:/usr/share/aclocal-1.15/make.m4:12: -1- 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 ]) m4trace:/usr/share/aclocal-1.15/missing.m4:11: -1- AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) m4trace:/usr/share/aclocal-1.15/missing.m4:20: -1- 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 --is-lightweight"; then am_missing_run="$MISSING " else am_missing_run= AC_MSG_WARN(['missing' script is too old or missing]) fi ]) m4trace:/usr/share/aclocal-1.15/options.m4:11: -1- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) m4trace:/usr/share/aclocal-1.15/options.m4:17: -1- AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), [1])]) m4trace:/usr/share/aclocal-1.15/options.m4:23: -1- AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) m4trace:/usr/share/aclocal-1.15/options.m4:29: -1- AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) m4trace:/usr/share/aclocal-1.15/prog-cc-c-o.m4:12: -1- AC_DEFUN([_AM_PROG_CC_C_O], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([compile])dnl AC_LANG_PUSH([C])dnl AC_CACHE_CHECK( [whether $CC understands -c and -o together], [am_cv_prog_cc_c_o], [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])]) # Make sure it works both with $CC and with simple cc. # Following AC_PROG_CC_C_O, we do the test twice because some # compilers refuse to overwrite an existing .o file with -o, # though they will create one. am_cv_prog_cc_c_o=yes for am_i in 1 2; do if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \ && test -f conftest2.$ac_objext; then : OK else am_cv_prog_cc_c_o=no break fi done rm -f core conftest* unset am_i]) if test "$am_cv_prog_cc_c_o" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" fi AC_LANG_POP([C])]) m4trace:/usr/share/aclocal-1.15/prog-cc-c-o.m4:47: -1- AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) m4trace:/usr/share/aclocal-1.15/runlog.m4:12: -1- AC_DEFUN([AM_RUN_LOG], [{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD (exit $ac_status); }]) m4trace:/usr/share/aclocal-1.15/sanity.m4:11: -1- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # 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 ( am_has_slept=no for am_try in 1 2; do echo "timestamp, slept: $am_has_slept" > conftest.file 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 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 if test "$[2]" = conftest.file || test $am_try -eq 2; then break fi # Just in case. sleep 1 am_has_slept=yes done 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]) # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= if grep 'slept: no' conftest.file >/dev/null 2>&1; then ( sleep 1 ) & am_sleep_pid=$! fi AC_CONFIG_COMMANDS_PRE( [AC_MSG_CHECKING([that generated files are newer than configure]) if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi AC_MSG_RESULT([done])]) rm -f conftest.file ]) m4trace:/usr/share/aclocal-1.15/silent.m4:12: -1- AC_DEFUN([AM_SILENT_RULES], [AC_ARG_ENABLE([silent-rules], [dnl AS_HELP_STRING( [--enable-silent-rules], [less verbose build output (undo: "make V=1")]) AS_HELP_STRING( [--disable-silent-rules], [verbose build output (undo: "make V=0")])dnl ]) case $enable_silent_rules in @%:@ ((( yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; esac dnl dnl A few 'make' implementations (e.g., NonStop OS and NextStep) dnl do not support nested variable expansions. dnl See automake bug#9928 and bug#10237. am_make=${MAKE-make} AC_CACHE_CHECK([whether $am_make supports nested variables], [am_cv_make_support_nested_variables], [if AS_ECHO([['TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 am__doit: @$(TRUE) .PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no fi]) if test $am_cv_make_support_nested_variables = yes; then dnl Using '$V' instead of '$(V)' breaks IRIX make. AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi AC_SUBST([AM_V])dnl AM_SUBST_NOTMAKE([AM_V])dnl AC_SUBST([AM_DEFAULT_V])dnl AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl AC_SUBST([AM_DEFAULT_VERBOSITY])dnl AM_BACKSLASH='\' AC_SUBST([AM_BACKSLASH])dnl _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl ]) m4trace:/usr/share/aclocal-1.15/strip.m4:17: -1- 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])]) m4trace:/usr/share/aclocal-1.15/substnot.m4:12: -1- AC_DEFUN([_AM_SUBST_NOTMAKE]) m4trace:/usr/share/aclocal-1.15/substnot.m4:17: -1- AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) m4trace:/usr/share/aclocal-1.15/tar.m4:23: -1- AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AC_SUBST([AMTAR], ['$${TAR-tar}']) # We'll loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' m4_if([$1], [v7], [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], [m4_case([$1], [ustar], [# The POSIX 1988 'ustar' format is defined with fixed-size fields. # There is notably a 21 bits limit for the UID and the GID. In fact, # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 # and bug#13588). am_max_uid=2097151 # 2^21 - 1 am_max_gid=$am_max_uid # The $UID and $GID variables are not portable, so we need to resort # to the POSIX-mandated id(1) utility. Errors in the 'id' calls # below are definitely unexpected, so allow the users to see them # (that is, avoid stderr redirection). am_uid=`id -u || echo unknown` am_gid=`id -g || echo unknown` AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) if test $am_uid -le $am_max_uid; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) _am_tools=none fi AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) if test $am_gid -le $am_max_gid; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) _am_tools=none fi], [pax], [], [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Go ahead even if we have the value already cached. We do so because we # need to set the values for the 'am__tar' and 'am__untar' variables. _am_tools=${am_cv_prog_tar_$1-$_am_tools} 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]) ]) m4trace:configure.ac:4: -1- m4_pattern_forbid([^_?A[CHUM]_]) m4trace:configure.ac:4: -1- m4_pattern_forbid([_AC_]) m4trace:configure.ac:4: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS']) m4trace:configure.ac:4: -1- m4_pattern_allow([^AS_FLAGS$]) m4trace:configure.ac:4: -1- m4_pattern_forbid([^_?m4_]) m4trace:configure.ac:4: -1- m4_pattern_forbid([^dnl$]) m4trace:configure.ac:4: -1- m4_pattern_forbid([^_?AS_]) m4trace:configure.ac:4: -1- m4_pattern_allow([^SHELL$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^PATH_SEPARATOR$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^PACKAGE_NAME$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^PACKAGE_TARNAME$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^PACKAGE_VERSION$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^PACKAGE_STRING$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^PACKAGE_URL$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^exec_prefix$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^prefix$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^program_transform_name$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^bindir$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^sbindir$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^libexecdir$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^datarootdir$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^datadir$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^sysconfdir$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^sharedstatedir$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^localstatedir$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^includedir$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^oldincludedir$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^docdir$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^infodir$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^htmldir$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^dvidir$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^pdfdir$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^psdir$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^libdir$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^localedir$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^mandir$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^PACKAGE_NAME$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^PACKAGE_TARNAME$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^PACKAGE_VERSION$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^PACKAGE_STRING$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^PACKAGE_URL$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^DEFS$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^ECHO_C$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^ECHO_N$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^ECHO_T$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^LIBS$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^build_alias$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^host_alias$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^target_alias$]) m4trace:configure.ac:8: -1- AC_CONFIG_MACRO_DIR([m4]) m4trace:configure.ac:10: -1- AM_INIT_AUTOMAKE([1.9 foreign dist-xz -Wall subdir-objects]) m4trace:configure.ac:10: -1- m4_pattern_allow([^AM_[A-Z]+FLAGS$]) m4trace:configure.ac:10: -1- AM_SET_CURRENT_AUTOMAKE_VERSION m4trace:configure.ac:10: -1- AM_AUTOMAKE_VERSION([1.15]) m4trace:configure.ac:10: -1- _AM_AUTOCONF_VERSION([2.69]) m4trace:configure.ac:10: -1- m4_pattern_allow([^INSTALL_PROGRAM$]) m4trace:configure.ac:10: -1- m4_pattern_allow([^INSTALL_SCRIPT$]) m4trace:configure.ac:10: -1- m4_pattern_allow([^INSTALL_DATA$]) m4trace:configure.ac:10: -1- m4_pattern_allow([^am__isrc$]) m4trace:configure.ac:10: -1- _AM_SUBST_NOTMAKE([am__isrc]) m4trace:configure.ac:10: -1- m4_pattern_allow([^CYGPATH_W$]) m4trace:configure.ac:10: -1- _AM_SET_OPTIONS([1.9 foreign dist-xz -Wall subdir-objects]) m4trace:configure.ac:10: -1- _AM_SET_OPTION([1.9]) m4trace:configure.ac:10: -2- _AM_MANGLE_OPTION([1.9]) m4trace:configure.ac:10: -1- _AM_SET_OPTION([foreign]) m4trace:configure.ac:10: -2- _AM_MANGLE_OPTION([foreign]) m4trace:configure.ac:10: -1- _AM_SET_OPTION([dist-xz]) m4trace:configure.ac:10: -2- _AM_MANGLE_OPTION([dist-xz]) m4trace:configure.ac:10: -1- _AM_SET_OPTION([-Wall]) m4trace:configure.ac:10: -2- _AM_MANGLE_OPTION([-Wall]) m4trace:configure.ac:10: -1- _AM_SET_OPTION([subdir-objects]) m4trace:configure.ac:10: -2- _AM_MANGLE_OPTION([subdir-objects]) m4trace:configure.ac:10: -1- m4_pattern_allow([^PACKAGE$]) m4trace:configure.ac:10: -1- m4_pattern_allow([^VERSION$]) m4trace:configure.ac:10: -1- _AM_IF_OPTION([no-define], [], [AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])]) m4trace:configure.ac:10: -2- _AM_MANGLE_OPTION([no-define]) m4trace:configure.ac:10: -1- m4_pattern_allow([^PACKAGE$]) m4trace:configure.ac:10: -1- m4_pattern_allow([^VERSION$]) m4trace:configure.ac:10: -1- AM_SANITY_CHECK m4trace:configure.ac:10: -1- AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) m4trace:configure.ac:10: -1- AM_MISSING_HAS_RUN m4trace:configure.ac:10: -1- AM_AUX_DIR_EXPAND m4trace:configure.ac:10: -1- m4_pattern_allow([^ACLOCAL$]) m4trace:configure.ac:10: -1- AM_MISSING_PROG([AUTOCONF], [autoconf]) m4trace:configure.ac:10: -1- m4_pattern_allow([^AUTOCONF$]) m4trace:configure.ac:10: -1- AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) m4trace:configure.ac:10: -1- m4_pattern_allow([^AUTOMAKE$]) m4trace:configure.ac:10: -1- AM_MISSING_PROG([AUTOHEADER], [autoheader]) m4trace:configure.ac:10: -1- m4_pattern_allow([^AUTOHEADER$]) m4trace:configure.ac:10: -1- AM_MISSING_PROG([MAKEINFO], [makeinfo]) m4trace:configure.ac:10: -1- m4_pattern_allow([^MAKEINFO$]) m4trace:configure.ac:10: -1- AM_PROG_INSTALL_SH m4trace:configure.ac:10: -1- m4_pattern_allow([^install_sh$]) m4trace:configure.ac:10: -1- AM_PROG_INSTALL_STRIP m4trace:configure.ac:10: -1- m4_pattern_allow([^STRIP$]) m4trace:configure.ac:10: -1- m4_pattern_allow([^INSTALL_STRIP_PROGRAM$]) m4trace:configure.ac:10: -1- m4_pattern_allow([^MKDIR_P$]) m4trace:configure.ac:10: -1- m4_pattern_allow([^mkdir_p$]) m4trace:configure.ac:10: -1- m4_pattern_allow([^AWK$]) m4trace:configure.ac:10: -1- m4_pattern_allow([^SET_MAKE$]) m4trace:configure.ac:10: -1- AM_SET_LEADING_DOT m4trace:configure.ac:10: -1- m4_pattern_allow([^am__leading_dot$]) m4trace:configure.ac:10: -1- _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) m4trace:configure.ac:10: -2- _AM_MANGLE_OPTION([tar-ustar]) m4trace:configure.ac:10: -1- _AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])]) m4trace:configure.ac:10: -2- _AM_MANGLE_OPTION([tar-pax]) m4trace:configure.ac:10: -1- _AM_PROG_TAR([v7]) m4trace:configure.ac:10: -1- m4_pattern_allow([^AMTAR$]) m4trace:configure.ac:10: -1- m4_pattern_allow([^am__tar$]) m4trace:configure.ac:10: -1- m4_pattern_allow([^am__untar$]) m4trace:configure.ac:10: -1- _AM_IF_OPTION([no-dependencies], [], [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES([CC])], [m4_define([AC_PROG_CC], m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES([CXX])], [m4_define([AC_PROG_CXX], m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES([OBJC])], [m4_define([AC_PROG_OBJC], m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], [_AM_DEPENDENCIES([OBJCXX])], [m4_define([AC_PROG_OBJCXX], m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl ]) m4trace:configure.ac:10: -2- _AM_MANGLE_OPTION([no-dependencies]) m4trace:configure.ac:10: -1- AM_SILENT_RULES m4trace:configure.ac:10: -1- m4_pattern_allow([^AM_V$]) m4trace:configure.ac:10: -1- AM_SUBST_NOTMAKE([AM_V]) m4trace:configure.ac:10: -1- _AM_SUBST_NOTMAKE([AM_V]) m4trace:configure.ac:10: -1- m4_pattern_allow([^AM_DEFAULT_V$]) m4trace:configure.ac:10: -1- AM_SUBST_NOTMAKE([AM_DEFAULT_V]) m4trace:configure.ac:10: -1- _AM_SUBST_NOTMAKE([AM_DEFAULT_V]) m4trace:configure.ac:10: -1- m4_pattern_allow([^AM_DEFAULT_VERBOSITY$]) m4trace:configure.ac:10: -1- m4_pattern_allow([^AM_BACKSLASH$]) m4trace:configure.ac:10: -1- _AM_SUBST_NOTMAKE([AM_BACKSLASH]) m4trace:configure.ac:11: -1- AM_MAINTAINER_MODE([disable]) m4trace:configure.ac:11: -1- AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) m4trace:configure.ac:11: -1- m4_pattern_allow([^MAINTAINER_MODE_TRUE$]) m4trace:configure.ac:11: -1- m4_pattern_allow([^MAINTAINER_MODE_FALSE$]) m4trace:configure.ac:11: -1- _AM_SUBST_NOTMAKE([MAINTAINER_MODE_TRUE]) m4trace:configure.ac:11: -1- _AM_SUBST_NOTMAKE([MAINTAINER_MODE_FALSE]) m4trace:configure.ac:11: -1- m4_pattern_allow([^MAINT$]) m4trace:configure.ac:13: -1- m4_pattern_allow([^DIVERT_PORT$]) m4trace:configure.ac:15: -1- m4_pattern_allow([^TCPCRYPTD_DIVERT_PORT$]) m4trace:configure.ac:17: -1- m4_pattern_allow([^TCPCRYPTD_DIVERT_PORT$]) m4trace:configure.ac:20: -1- m4_pattern_allow([^CONTROL_SOCKET$]) m4trace:configure.ac:23: -1- m4_pattern_allow([^TCPCRYPTD_CONTROL_SOCKET$]) m4trace:configure.ac:26: -1- m4_pattern_allow([^TCPCRYPTD_CONTROL_SOCKET$]) m4trace:configure.ac:30: -1- m4_pattern_allow([^JAIL_DIR$]) m4trace:configure.ac:32: -1- m4_pattern_allow([^TCPCRYPTD_JAIL_DIR$]) m4trace:configure.ac:34: -1- m4_pattern_allow([^TCPCRYPTD_JAIL_DIR$]) m4trace:configure.ac:37: -1- m4_pattern_allow([^JAIL_USER$]) m4trace:configure.ac:39: -1- m4_pattern_allow([^TCPCRYPTD_JAIL_USER$]) m4trace:configure.ac:41: -1- m4_pattern_allow([^TCPCRYPTD_JAIL_USER$]) m4trace:configure.ac:44: -1- m4_pattern_allow([^TEST_SERVER$]) m4trace:configure.ac:46: -1- m4_pattern_allow([^TCPCRYPTD_TEST_SERVER$]) m4trace:configure.ac:48: -1- m4_pattern_allow([^TCPCRYPTD_TEST_SERVER$]) m4trace:configure.ac:52: -1- m4_pattern_allow([^CC$]) m4trace:configure.ac:52: -1- m4_pattern_allow([^CFLAGS$]) m4trace:configure.ac:52: -1- m4_pattern_allow([^LDFLAGS$]) m4trace:configure.ac:52: -1- m4_pattern_allow([^LIBS$]) m4trace:configure.ac:52: -1- m4_pattern_allow([^CPPFLAGS$]) m4trace:configure.ac:52: -1- m4_pattern_allow([^CC$]) m4trace:configure.ac:52: -1- m4_pattern_allow([^CC$]) m4trace:configure.ac:52: -1- m4_pattern_allow([^CC$]) m4trace:configure.ac:52: -1- m4_pattern_allow([^CC$]) m4trace:configure.ac:52: -1- m4_pattern_allow([^ac_ct_CC$]) m4trace:configure.ac:52: -1- m4_pattern_allow([^EXEEXT$]) m4trace:configure.ac:52: -1- m4_pattern_allow([^OBJEXT$]) m4trace:configure.ac:52: -1- _AM_PROG_CC_C_O m4trace:configure.ac:52: -1- AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) m4trace:configure.ac:52: -1- _AM_DEPENDENCIES([CC]) m4trace:configure.ac:52: -1- AM_SET_DEPDIR m4trace:configure.ac:52: -1- m4_pattern_allow([^DEPDIR$]) m4trace:configure.ac:52: -1- AM_OUTPUT_DEPENDENCY_COMMANDS m4trace:configure.ac:52: -1- AM_MAKE_INCLUDE m4trace:configure.ac:52: -1- m4_pattern_allow([^am__include$]) m4trace:configure.ac:52: -1- m4_pattern_allow([^am__quote$]) m4trace:configure.ac:52: -1- AM_DEP_TRACK m4trace:configure.ac:52: -1- AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) m4trace:configure.ac:52: -1- m4_pattern_allow([^AMDEP_TRUE$]) m4trace:configure.ac:52: -1- m4_pattern_allow([^AMDEP_FALSE$]) m4trace:configure.ac:52: -1- _AM_SUBST_NOTMAKE([AMDEP_TRUE]) m4trace:configure.ac:52: -1- _AM_SUBST_NOTMAKE([AMDEP_FALSE]) m4trace:configure.ac:52: -1- m4_pattern_allow([^AMDEPBACKSLASH$]) m4trace:configure.ac:52: -1- _AM_SUBST_NOTMAKE([AMDEPBACKSLASH]) m4trace:configure.ac:52: -1- m4_pattern_allow([^am__nodep$]) m4trace:configure.ac:52: -1- _AM_SUBST_NOTMAKE([am__nodep]) m4trace:configure.ac:52: -1- m4_pattern_allow([^CCDEPMODE$]) m4trace:configure.ac:52: -1- AM_CONDITIONAL([am__fastdepCC], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3]) m4trace:configure.ac:52: -1- m4_pattern_allow([^am__fastdepCC_TRUE$]) m4trace:configure.ac:52: -1- m4_pattern_allow([^am__fastdepCC_FALSE$]) m4trace:configure.ac:52: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_TRUE]) m4trace:configure.ac:52: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_FALSE]) m4trace:configure.ac:53: -1- m4_pattern_allow([^LN_S$]) m4trace:configure.ac:54: -1- AM_PROG_AR m4trace:configure.ac:54: -1- m4_pattern_allow([^AR$]) m4trace:configure.ac:54: -1- m4_pattern_allow([^ac_ct_AR$]) m4trace:configure.ac:54: -1- m4_pattern_allow([^AR$]) m4trace:configure.ac:55: -1- LT_INIT m4trace:configure.ac:55: -1- m4_pattern_forbid([^_?LT_[A-Z_]+$]) m4trace:configure.ac:55: -1- m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$]) m4trace:configure.ac:55: -1- LTOPTIONS_VERSION m4trace:configure.ac:55: -1- LTSUGAR_VERSION m4trace:configure.ac:55: -1- LTVERSION_VERSION m4trace:configure.ac:55: -1- LTOBSOLETE_VERSION m4trace:configure.ac:55: -1- _LT_PROG_LTMAIN m4trace:configure.ac:55: -1- m4_pattern_allow([^LIBTOOL$]) m4trace:configure.ac:55: -1- m4_pattern_allow([^build$]) m4trace:configure.ac:55: -1- m4_pattern_allow([^build_cpu$]) m4trace:configure.ac:55: -1- m4_pattern_allow([^build_vendor$]) m4trace:configure.ac:55: -1- m4_pattern_allow([^build_os$]) m4trace:configure.ac:55: -1- m4_pattern_allow([^host$]) m4trace:configure.ac:55: -1- m4_pattern_allow([^host_cpu$]) m4trace:configure.ac:55: -1- m4_pattern_allow([^host_vendor$]) m4trace:configure.ac:55: -1- m4_pattern_allow([^host_os$]) m4trace:configure.ac:55: -1- _LT_PREPARE_SED_QUOTE_VARS m4trace:configure.ac:55: -1- _LT_PROG_ECHO_BACKSLASH m4trace:configure.ac:55: -1- LT_PATH_LD m4trace:configure.ac:55: -1- m4_pattern_allow([^SED$]) m4trace:configure.ac:55: -1- AC_PROG_EGREP m4trace:configure.ac:55: -1- m4_pattern_allow([^GREP$]) m4trace:configure.ac:55: -1- m4_pattern_allow([^EGREP$]) m4trace:configure.ac:55: -1- m4_pattern_allow([^FGREP$]) m4trace:configure.ac:55: -1- m4_pattern_allow([^GREP$]) m4trace:configure.ac:55: -1- m4_pattern_allow([^LD$]) m4trace:configure.ac:55: -1- LT_PATH_NM m4trace:configure.ac:55: -1- m4_pattern_allow([^DUMPBIN$]) m4trace:configure.ac:55: -1- m4_pattern_allow([^ac_ct_DUMPBIN$]) m4trace:configure.ac:55: -1- m4_pattern_allow([^DUMPBIN$]) m4trace:configure.ac:55: -1- m4_pattern_allow([^NM$]) m4trace:configure.ac:55: -1- LT_CMD_MAX_LEN m4trace:configure.ac:55: -1- m4_pattern_allow([^OBJDUMP$]) m4trace:configure.ac:55: -1- m4_pattern_allow([^OBJDUMP$]) m4trace:configure.ac:55: -1- m4_pattern_allow([^DLLTOOL$]) m4trace:configure.ac:55: -1- m4_pattern_allow([^DLLTOOL$]) m4trace:configure.ac:55: -1- m4_pattern_allow([^AR$]) m4trace:configure.ac:55: -1- m4_pattern_allow([^ac_ct_AR$]) m4trace:configure.ac:55: -1- m4_pattern_allow([^STRIP$]) m4trace:configure.ac:55: -1- m4_pattern_allow([^RANLIB$]) m4trace:configure.ac:55: -1- _LT_WITH_SYSROOT m4trace:configure.ac:55: -1- m4_pattern_allow([LT_OBJDIR]) m4trace:configure.ac:55: -1- m4_pattern_allow([^LT_OBJDIR$]) m4trace:configure.ac:55: -1- _LT_CC_BASENAME([$compiler]) m4trace:configure.ac:55: -1- _LT_PATH_TOOL_PREFIX([${ac_tool_prefix}file], [/usr/bin$PATH_SEPARATOR$PATH]) m4trace:configure.ac:55: -1- _LT_PATH_TOOL_PREFIX([file], [/usr/bin$PATH_SEPARATOR$PATH]) m4trace:configure.ac:55: -1- LT_SUPPORTED_TAG([CC]) m4trace:configure.ac:55: -1- _LT_COMPILER_BOILERPLATE m4trace:configure.ac:55: -1- _LT_LINKER_BOILERPLATE m4trace:configure.ac:55: -1- _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, )="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, ) -fno-rtti -fno-exceptions"]) m4trace:configure.ac:55: -1- _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, ) works], [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, )], [$_LT_TAGVAR(lt_prog_compiler_pic, )@&t@m4_if([],[],[ -DPIC],[m4_if([],[CXX],[ -DPIC],[])])], [], [case $_LT_TAGVAR(lt_prog_compiler_pic, ) in "" | " "*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, )=" $_LT_TAGVAR(lt_prog_compiler_pic, )" ;; esac], [_LT_TAGVAR(lt_prog_compiler_pic, )= _LT_TAGVAR(lt_prog_compiler_can_build_shared, )=no]) m4trace:configure.ac:55: -1- _LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], [lt_cv_prog_compiler_static_works], [$lt_tmp_static_flag], [], [_LT_TAGVAR(lt_prog_compiler_static, )=]) m4trace:configure.ac:55: -1- m4_pattern_allow([^MANIFEST_TOOL$]) m4trace:configure.ac:55: -1- _LT_DLL_DEF_P([$export_symbols]) m4trace:configure.ac:55: -1- _LT_DLL_DEF_P([$export_symbols]) m4trace:configure.ac:55: -1- _LT_REQUIRED_DARWIN_CHECKS m4trace:configure.ac:55: -1- m4_pattern_allow([^DSYMUTIL$]) m4trace:configure.ac:55: -1- m4_pattern_allow([^NMEDIT$]) m4trace:configure.ac:55: -1- m4_pattern_allow([^LIPO$]) m4trace:configure.ac:55: -1- m4_pattern_allow([^OTOOL$]) m4trace:configure.ac:55: -1- m4_pattern_allow([^OTOOL64$]) m4trace:configure.ac:55: -1- _LT_LINKER_OPTION([if $CC understands -b], [lt_cv_prog_compiler__b], [-b], [_LT_TAGVAR(archive_cmds, )='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], [_LT_TAGVAR(archive_cmds, )='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags']) m4trace:configure.ac:55: -1- m4_pattern_allow([^LT_SYS_LIBRARY_PATH$]) m4trace:configure.ac:55: -1- LT_SYS_DLOPEN_SELF m4trace:configure.ac:55: -1- m4_pattern_allow([^CPP$]) m4trace:configure.ac:55: -1- m4_pattern_allow([^CPPFLAGS$]) m4trace:configure.ac:55: -1- m4_pattern_allow([^CPP$]) m4trace:configure.ac:55: -1- m4_pattern_allow([^STDC_HEADERS$]) m4trace:configure.ac:55: -1- m4_pattern_allow([^HAVE_DLFCN_H$]) m4trace:configure.ac:56: -1- AM_PROG_AS m4trace:configure.ac:56: -1- m4_pattern_allow([^CCAS$]) m4trace:configure.ac:56: -1- m4_pattern_allow([^CCASFLAGS$]) m4trace:configure.ac:56: -1- _AM_IF_OPTION([no-dependencies], [], [_AM_DEPENDENCIES([CCAS])]) m4trace:configure.ac:56: -2- _AM_MANGLE_OPTION([no-dependencies]) m4trace:configure.ac:56: -1- _AM_DEPENDENCIES([CCAS]) m4trace:configure.ac:56: -1- m4_pattern_allow([^CCASDEPMODE$]) m4trace:configure.ac:56: -1- AM_CONDITIONAL([am__fastdepCCAS], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CCAS_dependencies_compiler_type" = gcc3]) m4trace:configure.ac:56: -1- m4_pattern_allow([^am__fastdepCCAS_TRUE$]) m4trace:configure.ac:56: -1- m4_pattern_allow([^am__fastdepCCAS_FALSE$]) m4trace:configure.ac:56: -1- _AM_SUBST_NOTMAKE([am__fastdepCCAS_TRUE]) m4trace:configure.ac:56: -1- _AM_SUBST_NOTMAKE([am__fastdepCCAS_FALSE]) m4trace:configure.ac:66: -1- AM_CONDITIONAL([OS_LINUX], [test "$os_linux" -eq 1]) m4trace:configure.ac:66: -1- m4_pattern_allow([^OS_LINUX_TRUE$]) m4trace:configure.ac:66: -1- m4_pattern_allow([^OS_LINUX_FALSE$]) m4trace:configure.ac:66: -1- _AM_SUBST_NOTMAKE([OS_LINUX_TRUE]) m4trace:configure.ac:66: -1- _AM_SUBST_NOTMAKE([OS_LINUX_FALSE]) m4trace:configure.ac:67: -1- AM_CONDITIONAL([OS_BSD], [echo $host_os | grep -E 'darwin|freebsd']) m4trace:configure.ac:67: -1- m4_pattern_allow([^OS_BSD_TRUE$]) m4trace:configure.ac:67: -1- m4_pattern_allow([^OS_BSD_FALSE$]) m4trace:configure.ac:67: -1- _AM_SUBST_NOTMAKE([OS_BSD_TRUE]) m4trace:configure.ac:67: -1- _AM_SUBST_NOTMAKE([OS_BSD_FALSE]) m4trace:configure.ac:68: -1- AM_CONDITIONAL([OS_MINGW], [echo $host_os | grep mingw]) m4trace:configure.ac:68: -1- m4_pattern_allow([^OS_MINGW_TRUE$]) m4trace:configure.ac:68: -1- m4_pattern_allow([^OS_MINGW_FALSE$]) m4trace:configure.ac:68: -1- _AM_SUBST_NOTMAKE([OS_MINGW_TRUE]) m4trace:configure.ac:68: -1- _AM_SUBST_NOTMAKE([OS_MINGW_FALSE]) m4trace:configure.ac:70: -1- m4_pattern_allow([^OS_LINUX$]) m4trace:configure.ac:70: -1- m4_pattern_allow([^OS_LINUX$]) m4trace:configure.ac:86: -1- m4_pattern_allow([^CXXFLAGS$]) m4trace:configure.ac:87: -1- m4_pattern_allow([^CFLAGS$]) m4trace:configure.ac:101: -1- m4_pattern_allow([^NO_ASM$]) m4trace:configure.ac:103: -1- AM_CONDITIONAL([NO_ASM], [test x$enable_asm = xno]) m4trace:configure.ac:103: -1- m4_pattern_allow([^NO_ASM_TRUE$]) m4trace:configure.ac:103: -1- m4_pattern_allow([^NO_ASM_FALSE$]) m4trace:configure.ac:103: -1- _AM_SUBST_NOTMAKE([NO_ASM_TRUE]) m4trace:configure.ac:103: -1- _AM_SUBST_NOTMAKE([NO_ASM_FALSE]) m4trace:configure.ac:105: -1- AM_CONDITIONAL([HAVE_NI], [false]) m4trace:configure.ac:105: -1- m4_pattern_allow([^HAVE_NI_TRUE$]) m4trace:configure.ac:105: -1- m4_pattern_allow([^HAVE_NI_FALSE$]) m4trace:configure.ac:105: -1- _AM_SUBST_NOTMAKE([HAVE_NI_TRUE]) m4trace:configure.ac:105: -1- _AM_SUBST_NOTMAKE([HAVE_NI_FALSE]) m4trace:configure.ac:115: -1- m4_pattern_allow([^HAVE_LIBPTHREAD$]) m4trace:configure.ac:116: -1- m4_pattern_allow([^HAVE_LIBWSOCK32$]) m4trace:configure.ac:117: -1- m4_pattern_allow([^HAVE_LIBIPHLPAPI$]) m4trace:configure.ac:118: -1- m4_pattern_allow([^tcpcryptd_LDADD$]) m4trace:configure.ac:119: -1- m4_pattern_allow([^crypto_LDADD$]) m4trace:configure.ac:126: -1- m4_pattern_allow([^mode_t$]) m4trace:configure.ac:127: -1- m4_pattern_allow([^size_t$]) m4trace:configure.ac:128: -1- m4_pattern_allow([^ssize_t$]) m4trace:configure.ac:129: -1- m4_pattern_allow([^uint16_t$]) m4trace:configure.ac:130: -1- m4_pattern_allow([^_UINT32_T$]) m4trace:configure.ac:130: -1- m4_pattern_allow([^uint32_t$]) m4trace:configure.ac:131: -1- m4_pattern_allow([^_UINT64_T$]) m4trace:configure.ac:131: -1- m4_pattern_allow([^uint64_t$]) m4trace:configure.ac:132: -1- m4_pattern_allow([^_UINT8_T$]) m4trace:configure.ac:132: -1- m4_pattern_allow([^uint8_t$]) m4trace:configure.ac:133: -1- m4_pattern_allow([^HAVE_PTRDIFF_T$]) m4trace:configure.ac:140: -1- m4_pattern_allow([^HAVE_ALLOCA_H$]) m4trace:configure.ac:140: -1- m4_pattern_allow([^HAVE_ALLOCA$]) m4trace:configure.ac:140: -1- m4_pattern_allow([^ALLOCA$]) m4trace:configure.ac:140: -1- m4_pattern_allow([^C_ALLOCA$]) m4trace:configure.ac:140: -1- m4_pattern_allow([^CRAY_STACKSEG_END$]) m4trace:configure.ac:140: -1- m4_pattern_allow([^STACK_DIRECTION$]) m4trace:configure.ac:141: -1- m4_pattern_allow([^pid_t$]) m4trace:configure.ac:141: -1- m4_pattern_allow([^HAVE_VFORK_H$]) m4trace:configure.ac:141: -1- m4_pattern_allow([^HAVE_WORKING_VFORK$]) m4trace:configure.ac:141: -1- m4_pattern_allow([^vfork$]) m4trace:configure.ac:141: -1- m4_pattern_allow([^HAVE_WORKING_FORK$]) m4trace:configure.ac:142: -1- m4_pattern_allow([^HAVE_STDLIB_H$]) m4trace:configure.ac:142: -1- m4_pattern_allow([^HAVE_MALLOC$]) m4trace:configure.ac:142: -1- m4_pattern_allow([^HAVE_MALLOC$]) m4trace:configure.ac:142: -1- m4_pattern_allow([^LIB@&t@OBJS$]) m4trace:configure.ac:142: -1- m4_pattern_allow([^malloc$]) m4trace:configure.ac:146: -1- m4_pattern_allow([^LIB@&t@OBJS$]) m4trace:configure.ac:146: -1- m4_pattern_allow([^LTLIBOBJS$]) m4trace:configure.ac:146: -1- AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"]) m4trace:configure.ac:146: -1- m4_pattern_allow([^am__EXEEXT_TRUE$]) m4trace:configure.ac:146: -1- m4_pattern_allow([^am__EXEEXT_FALSE$]) m4trace:configure.ac:146: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_TRUE]) m4trace:configure.ac:146: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_FALSE]) m4trace:configure.ac:146: -1- _AC_AM_CONFIG_HEADER_HOOK(["$ac_file"]) m4trace:configure.ac:146: -1- _AM_OUTPUT_DEPENDENCY_COMMANDS m4trace:configure.ac:146: -1- _LT_PROG_LTMAIN tcpcrypt-0.5/autom4te.cache/output.20000644000175200017520000164447012742073026016536 0ustar sorbosorbo@%:@! /bin/sh @%:@ Guess values for system-dependent variables and create Makefiles. @%:@ Generated by GNU Autoconf 2.69 for tcpcrypt 0.5. @%:@ @%:@ Report bugs to . @%:@ @%:@ @%:@ Copyright (C) 1992-1996, 1998-2012 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. as_myself= 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 # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then _as_can_reexec=no; export _as_can_reexec; # 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. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in @%:@ (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 as_fn_exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} 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 test -x / || 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 -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO PATH=/empty FPATH=/empty; export PATH FPATH test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || 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 : export CONFIG_SHELL # 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. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in @%:@ (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 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 and $0: tcpcrypt-users@lists.stanford.edu 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 @S|@? 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 "@S|@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_executable_p FILE @%:@ ----------------------- @%:@ Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } @%:@ as_fn_executable_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 @S|@as_val. Take advantage of shells that can avoid forks. The arguments @%:@ must be portable across @S|@(()) 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 STATUS ERROR [LINENO LOG_FD] @%:@ ---------------------------------------- @%:@ Output "`basename @S|@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=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&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; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall # in an infinite loop. This has already happened in practice. _as_can_reexec=no; export _as_can_reexec # 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 -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' 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 as_test_x='test -x' as_executable_p=as_fn_executable_p # 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'" SHELL=${CONFIG_SHELL-/bin/sh} test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/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=. LIB@&t@OBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='tcpcrypt' PACKAGE_TARNAME='tcpcrypt' PACKAGE_VERSION='0.5' PACKAGE_STRING='tcpcrypt 0.5' PACKAGE_BUGREPORT='tcpcrypt-users@lists.stanford.edu' PACKAGE_URL='http://tcpcrypt.org' ac_unique_file="src/tcpcryptd.c" # 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 LIB@&t@OBJS ALLOCA crypto_LDADD tcpcryptd_LDADD HAVE_NI_FALSE HAVE_NI_TRUE NO_ASM_FALSE NO_ASM_TRUE CXXFLAGS OS_MINGW_FALSE OS_MINGW_TRUE OS_BSD_FALSE OS_BSD_TRUE OS_LINUX_FALSE OS_LINUX_TRUE am__fastdepCCAS_FALSE am__fastdepCCAS_TRUE CCASDEPMODE CCASFLAGS CCAS CPP LT_SYS_LIBRARY_PATH OTOOL64 OTOOL LIPO NMEDIT DSYMUTIL MANIFEST_TOOL RANLIB DLLTOOL OBJDUMP 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 ac_ct_AR AR LN_S am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE am__nodep AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE am__quote am__include DEPDIR OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC TEST_SERVER JAIL_USER JAIL_DIR CONTROL_SOCKET DIVERT_PORT MAINT MAINTAINER_MODE_FALSE MAINTAINER_MODE_TRUE AM_BACKSLASH AM_DEFAULT_VERBOSITY AM_DEFAULT_V AM_V 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_silent_rules enable_maintainer_mode enable_dependency_tracking enable_shared enable_static with_pic enable_fast_install with_aix_soname with_gnu_ld with_sysroot enable_libtool_lock enable_debug enable_asm ' ac_precious_vars='build_alias host_alias target_alias DIVERT_PORT CONTROL_SOCKET JAIL_DIR JAIL_USER TEST_SERVER CC CFLAGS LDFLAGS LIBS CPPFLAGS LT_SYS_LIBRARY_PATH CPP CCAS CCASFLAGS' # 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= ;; *) 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 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 tcpcrypt 0.5 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 @<:@@S|@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/tcpcrypt@:>@ --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 tcpcrypt 0.5:";; 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] --enable-silent-rules less verbose build output (undo: "make V=1") --disable-silent-rules verbose build output (undo: "make V=0") --enable-maintainer-mode enable make rules and dependencies not useful (and sometimes confusing) to the casual installer --enable-dependency-tracking do not reject slow dependency extractors --disable-dependency-tracking speeds up one-time build --enable-shared@<:@=PKGS@:>@ build shared libraries @<:@default=yes@:>@ --enable-static@<:@=PKGS@:>@ build static libraries @<:@default=yes@:>@ --enable-fast-install@<:@=PKGS@:>@ optimize for fast installation @<:@default=yes@:>@ --disable-libtool-lock avoid locking (might break parallel builds) --enable-debug enable tracing and debugging flags for all components --enable-asm use asm checksum routine Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-pic@<:@=PKGS@:>@ try to use only PIC/non-PIC objects @<:@default=use both@:>@ --with-aix-soname=aix|svr4|both shared library versioning (aka "SONAME") variant to provide on AIX, @<:@default=aix@:>@. --with-gnu-ld assume the C compiler uses GNU ld @<:@default=no@:>@ --with-sysroot@<:@=DIR@:>@ Search for dependent libraries within DIR (or the compiler's sysroot if not specified). Some influential environment variables: DIVERT_PORT Default divert port for tcpcryptd CONTROL_SOCKET Default local control socket for tcpcryptd: unix-domain path or localhost port-number JAIL_DIR Default jail directory for tcpcryptd JAIL_USER Default jail username for tcpcryptd TEST_SERVER Default network test server for tcpcryptd 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 LT_SYS_LIBRARY_PATH User-defined run-time library search path. CPP C preprocessor CCAS assembler compiler command (defaults to CC) CCASFLAGS assembler compiler flags (defaults to CFLAGS) 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 . tcpcrypt home page: . _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 tcpcrypt configure 0.5 generated by GNU Autoconf 2.69 Copyright (C) 2012 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.@S|@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; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } @%:@ ac_fn_c_try_compile @%:@ ac_fn_c_try_link LINENO @%:@ ----------------------- @%:@ Try to link conftest.@S|@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 || 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; ${as_lineno_stack:+:} 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 eval \${$3+:} false; 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; ${as_lineno_stack:+:} unset as_lineno } @%:@ ac_fn_c_check_header_compile @%:@ ac_fn_c_try_cpp LINENO @%:@ ---------------------- @%:@ Try to preprocess conftest.@S|@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; } > conftest.i && { 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; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } @%:@ ac_fn_c_try_cpp @%:@ ac_fn_c_try_run LINENO @%:@ ---------------------- @%:@ Try to link conftest.@S|@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; ${as_lineno_stack:+:} 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 eval \${$3+:} false; 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; ${as_lineno_stack:+:} 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 eval \${$3+:} false; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; 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.i 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;} ( $as_echo "## ------------------------------------------------ ## ## Report this to tcpcrypt-users@lists.stanford.edu ## ## ------------------------------------------------ ##" ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; 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; ${as_lineno_stack:+:} unset as_lineno } @%:@ ac_fn_c_check_header_mongrel @%:@ ac_fn_c_check_type LINENO TYPE VAR INCLUDES @%:@ ------------------------------------------- @%:@ Tests whether TYPE exists after having included INCLUDES, setting cache @%:@ variable VAR accordingly. ac_fn_c_check_type () { 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 eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=no" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof ($2)) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof (($2))) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else eval "$3=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 eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } @%:@ ac_fn_c_check_type @%:@ ac_fn_c_find_uintX_t LINENO BITS VAR @%:@ ------------------------------------ @%:@ Finds an unsigned integer type with width BITS, setting cache variable VAR @%:@ accordingly. ac_fn_c_find_uintX_t () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uint$2_t" >&5 $as_echo_n "checking for uint$2_t... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=no" # Order is important - never check a type that is potentially smaller # than half of the expected target width. for ac_type in uint$2_t 'unsigned int' 'unsigned long int' \ 'unsigned long long int' 'unsigned short int' 'unsigned char'; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { static int test_array @<:@1 - 2 * !((($ac_type) -1 >> ($2 / 2 - 1)) >> ($2 / 2 - 1) == 3)@:>@; test_array @<:@0@:>@ = 0; return test_array @<:@0@:>@; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : case $ac_type in @%:@( uint$2_t) : eval "$3=yes" ;; @%:@( *) : eval "$3=\$ac_type" ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if eval test \"x\$"$3"\" = x"no"; then : else break fi done 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; ${as_lineno_stack:+:} unset as_lineno } @%:@ ac_fn_c_find_uintX_t 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 tcpcrypt $as_me 0.5, which was generated by GNU Autoconf 2.69. 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 $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" 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 $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" 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 $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" 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 $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" 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 # We do not want a PATH search for config.site. case $CONFIG_SITE in @%:@(( -*) ac_site_file1=./$CONFIG_SITE;; */*) ac_site_file1=$CONFIG_SITE;; *) ac_site_file1=./$CONFIG_SITE;; esac 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" \ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } 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" ac_aux_dir= for ac_dir in config "$srcdir"/config; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then as_fn_error $? "cannot find install-sh, install.sh, or shtool in config \"$srcdir\"/config" "$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. am__api_version='1.15' # 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 ${ac_cv_path_install+:} false; 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 as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else 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; } # 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 ( am_has_slept=no for am_try in 1 2; do echo "timestamp, slept: $am_has_slept" > conftest.file 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 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 if test "$2" = conftest.file || test $am_try -eq 2; then break fi # Just in case. sleep 1 am_has_slept=yes done 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; } # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= if grep 'slept: no' conftest.file >/dev/null 2>&1; then ( sleep 1 ) & am_sleep_pid=$! fi rm -f conftest.file 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 --is-lightweight"; then am_missing_run="$MISSING " 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+set}" != 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 ${ac_cv_prog_STRIP+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_ac_ct_STRIP+:} false; 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 as_fn_executable_p "$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 ${ac_cv_path_mkdir+:} false; 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 as_fn_executable_p "$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; } 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 ${ac_cv_prog_AWK+:} false; 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 as_fn_executable_p "$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 eval \${ac_cv_prog_make_${ac_make}_set+:} false; 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 @%:@ Check whether --enable-silent-rules was given. if test "${enable_silent_rules+set}" = set; then : enableval=$enable_silent_rules; fi case $enable_silent_rules in @%:@ ((( yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=1;; esac am_make=${MAKE-make} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 $as_echo_n "checking whether $am_make supports nested variables... " >&6; } if ${am_cv_make_support_nested_variables+:} false; then : $as_echo_n "(cached) " >&6 else if $as_echo 'TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 am__doit: @$(TRUE) .PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 $as_echo "$am_cv_make_support_nested_variables" >&6; } if test $am_cv_make_support_nested_variables = yes; then AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi AM_BACKSLASH='\' 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='tcpcrypt' VERSION='0.5' 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"} # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: # # mkdir_p='$(MKDIR_P)' # We need awk for the "check" target (and possibly the TAP driver). The # system "awk" is bad on some platforms. # Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AMTAR='$${TAR-tar}' # We'll loop over all known methods to create a tar archive until one works. _am_tools='gnutar pax cpio none' am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' # POSIX will say in a future version that running "rm -f" with no argument # is OK; and we want to be able to make that assumption in our Makefile # recipes. So use an aggressive probe to check that the usage we want is # actually supported "in the wild" to an acceptable degree. # See automake bug#10828. # To make any issue more visible, cause the running configure to be aborted # by default if the 'rm' program in use doesn't match our expectations; the # user can still override this though. if rm -f && rm -fr && rm -rf; then : OK; else cat >&2 <<'END' Oops! Your 'rm' program seems unable to run without file operands specified on the command line, even when the '-f' option is present. This is contrary to the behaviour of most rm programs out there, and not conforming with the upcoming POSIX standard: Please tell bug-automake@gnu.org about your system, including the value of your $PATH and any error possibly output before this message. This can help us improve future automake versions. END if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then echo 'Configuration will proceed anyway, since you have set the' >&2 echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 echo >&2 else cat >&2 <<'END' Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation that behaves properly: . If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM to "yes", and re-run configure. END as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 $as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } @%:@ Check whether --enable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then : enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval else USE_MAINTAINER_MODE=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 $as_echo "$USE_MAINTAINER_MODE" >&6; } if test $USE_MAINTAINER_MODE = yes; then MAINTAINER_MODE_TRUE= MAINTAINER_MODE_FALSE='#' else MAINTAINER_MODE_TRUE='#' MAINTAINER_MODE_FALSE= fi MAINT=$MAINTAINER_MODE_TRUE if test -n "$DIVERT_PORT"; then cat >>confdefs.h <<_ACEOF @%:@define TCPCRYPTD_DIVERT_PORT $DIVERT_PORT _ACEOF else $as_echo "@%:@define TCPCRYPTD_DIVERT_PORT 666" >>confdefs.h fi if test -n "$CONTROL_SOCKET"; then cat >>confdefs.h <<_ACEOF @%:@define TCPCRYPTD_CONTROL_SOCKET $CONTROL_SOCKET _ACEOF else $as_echo "@%:@define TCPCRYPTD_CONTROL_SOCKET \"/var/run/tcpcryptd.control\"" >>confdefs.h fi if test -n "$JAIL_DIR"; then cat >>confdefs.h <<_ACEOF @%:@define TCPCRYPTD_JAIL_DIR "$JAIL_DIR" _ACEOF else $as_echo "@%:@define TCPCRYPTD_JAIL_DIR \"/var/run/tcpcryptd\"" >>confdefs.h fi if test -n "$JAIL_USER"; then cat >>confdefs.h <<_ACEOF @%:@define TCPCRYPTD_JAIL_USER "$JAIL_USER" _ACEOF else $as_echo "@%:@define TCPCRYPTD_JAIL_USER \"tcpcryptd\"" >>confdefs.h fi if test -n "$TEST_SERVER"; then cat >>confdefs.h <<_ACEOF @%:@define TCPCRYPTD_TEST_SERVER "$TEST_SERVER" _ACEOF else $as_echo "@%:@define TCPCRYPTD_TEST_SERVER \"check.tcpcrypt.org\"" >>confdefs.h fi # Checks for programs. 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 ${ac_cv_prog_CC+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_ac_ct_CC+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_CC+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_CC+:} false; 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $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 ${ac_cv_prog_CC+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_ac_ct_CC+:} false; 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 as_fn_executable_p "$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_error 77 "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 ${ac_cv_objext+:} false; 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 ${ac_cv_c_compiler_gnu+:} false; 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 ${ac_cv_prog_cc_g+:} false; 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 ${ac_cv_prog_cc_c89+:} false; 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 struct stat; /* 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 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 whether $CC understands -c and -o together" >&5 $as_echo_n "checking whether $CC understands -c and -o together... " >&6; } if ${am_cv_prog_cc_c_o+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF # Make sure it works both with $CC and with simple cc. # Following AC_PROG_CC_C_O, we do the test twice because some # compilers refuse to overwrite an existing .o file with -o, # though they will create one. am_cv_prog_cc_c_o=yes for am_i in 1 2; do if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } \ && test -f conftest2.$ac_objext; then : OK else am_cv_prog_cc_c_o=no break fi done rm -f core conftest* unset am_i fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 $as_echo "$am_cv_prog_cc_c_o" >&6; } if test "$am_cv_prog_cc_c_o" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" 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='\' am__nodep='_no' 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 ${am_cv_CC_dependencies_compiler_type+:} false; 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". rm -rf conftest.dir 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 10 /bin/sh. echo '/* dummy */' > 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 ;; msvc7 | msvc7msys | 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 { $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 if test -n "$ac_tool_prefix"; then for ac_prog in ar lib "link -lib" 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 ${ac_cv_prog_AR+:} false; 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AR="$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 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 test -n "$AR" && break done fi if test -z "$AR"; then ac_ct_AR=$AR for ac_prog in ar lib "link -lib" 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 ${ac_cv_prog_ac_ct_AR+:} false; 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="$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_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 test -n "$ac_ct_AR" && break done 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 fi : ${AR=ar} { $as_echo "$as_me:${as_lineno-$LINENO}: checking the archiver ($AR) interface" >&5 $as_echo_n "checking the archiver ($AR) interface... " >&6; } if ${am_cv_ar_interface+:} false; 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 am_cv_ar_interface=ar cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int some_variable = 0; _ACEOF if ac_fn_c_try_compile "$LINENO"; then : am_ar_try='$AR cru libconftest.a conftest.$ac_objext >&5' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$am_ar_try\""; } >&5 (eval $am_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test "$ac_status" -eq 0; then am_cv_ar_interface=ar else am_ar_try='$AR -NOLOGO -OUT:conftest.lib conftest.$ac_objext >&5' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$am_ar_try\""; } >&5 (eval $am_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test "$ac_status" -eq 0; then am_cv_ar_interface=lib else am_cv_ar_interface=unknown fi fi rm -f conftest.lib libconftest.a fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_ar_interface" >&5 $as_echo "$am_cv_ar_interface" >&6; } case $am_cv_ar_interface in ar) ;; lib) # Microsoft lib, so override with the ar-lib wrapper script. # FIXME: It is wrong to rewrite AR. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__AR in this case, # and then we could set am__AR="$am_aux_dir/ar-lib \$(AR)" or something # similar. AR="$am_aux_dir/ar-lib $AR" ;; unknown) as_fn_error $? "could not determine $AR interface" "$LINENO" 5 ;; esac 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.4.6' macro_revision='2.4.6' 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 ${ac_cv_build+:} false; 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 ${ac_cv_host+:} false; 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 # Backslashify 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' ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 $as_echo_n "checking how to print strings... " >&6; } # Test print first, because it will be a builtin if present. if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='print -r --' elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='printf %s\n' else # Use this function as a fallback that always works. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $1 _LTECHO_EOF' } ECHO='func_fallback_echo' fi # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "" } case $ECHO in printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5 $as_echo "printf" >&6; } ;; print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 $as_echo "print -r" >&6; } ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5 $as_echo "cat" >&6; } ;; 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 ${ac_cv_path_SED+:} false; 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" as_fn_executable_p "$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 ${ac_cv_path_GREP+:} false; 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" as_fn_executable_p "$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 ${ac_cv_path_EGREP+:} false; 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" as_fn_executable_p "$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 ${ac_cv_path_FGREP+:} false; 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" as_fn_executable_p "$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 no = "$withval" || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld if test yes = "$GCC"; 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 yes = "$with_gnu_ld"; 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 ${lt_cv_path_LD+:} false; 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 ${lt_cv_prog_gnu_ld+:} false; 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 ${lt_cv_path_NM+:} false; 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 # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty case $build_os in mingw*) lt_bad_file=conftest.nm/nofile ;; *) lt_bad_file=/dev/null ;; esac case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in *$lt_bad_file* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break 2 ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break 2 ;; *) 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 no != "$lt_cv_path_NM"; then NM=$lt_cv_path_NM else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$DUMPBIN"; then : # Let the user override the test. else if test -n "$ac_tool_prefix"; then for ac_prog in dumpbin "link -dump" 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 ${ac_cv_prog_DUMPBIN+:} false; 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 as_fn_executable_p "$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 "link -dump" 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 ${ac_cv_prog_ac_ct_DUMPBIN+:} false; 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 as_fn_executable_p "$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 case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in *COFF*) DUMPBIN="$DUMPBIN -symbols -headers" ;; *) DUMPBIN=: ;; esac 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 ${lt_cv_nm_interface+:} false; 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:$LINENO: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 (eval echo "\"\$as_me:$LINENO: 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; } # 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 ${lt_cv_sys_max_cmd_len+:} false; 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; ;; mint*) # On MiNT this can take a long time and run out of memory. 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; ;; bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*) # 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 ;; os2*) # The test takes a long time on OS/2. lt_cv_sys_max_cmd_len=8192 ;; 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" && \ test undefined != "$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`env echo "$teststring$teststring" 2>/dev/null` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && test 17 != "$i" # 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"} 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 how to convert $build file names to $host format" >&5 $as_echo_n "checking how to convert $build file names to $host format... " >&6; } if ${lt_cv_to_host_file_cmd+:} false; then : $as_echo_n "(cached) " >&6 else case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ;; esac ;; *-*-cygwin* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_noop ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ;; esac ;; * ) # unhandled hosts (and "normal" native builds) lt_cv_to_host_file_cmd=func_convert_file_noop ;; esac fi to_host_file_cmd=$lt_cv_to_host_file_cmd { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 $as_echo "$lt_cv_to_host_file_cmd" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 $as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } if ${lt_cv_to_tool_file_cmd+:} false; then : $as_echo_n "(cached) " >&6 else #assume ordinary cross tools, or native build. lt_cv_to_tool_file_cmd=func_convert_file_noop case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ;; esac ;; esac fi to_tool_file_cmd=$lt_cv_to_tool_file_cmd { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 $as_echo "$lt_cv_to_tool_file_cmd" >&6; } { $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 ${lt_cv_ld_reload_flag+:} false; 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 cygwin* | mingw* | pw32* | cegcc*) if test yes != "$GCC"; then reload_cmds=false fi ;; darwin*) if test yes = "$GCC"; 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 ${ac_cv_prog_OBJDUMP+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_ac_ct_OBJDUMP+:} false; 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 as_fn_executable_p "$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 ${lt_cv_deplibs_check_method+:} false; 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 # that 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 # Keep this pattern in sync with the one in func_win32_libid. lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' 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 ;; haiku*) 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])(-bit)?( [LM]SB)? 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 glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) lt_cv_deplibs_check_method=pass_all ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd* | bitrig*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; 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 ;; os2*) 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_glob= want_nocaseglob=no if test "$build" = "$host"; then case $host_os in mingw* | pw32*) if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then want_nocaseglob=yes else file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` fi ;; esac fi 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}dlltool", so it can be a program name with args. set dummy ${ac_tool_prefix}dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DLLTOOL"; then ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" $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 DLLTOOL=$ac_cv_prog_DLLTOOL if test -n "$DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 $as_echo "$DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DLLTOOL"; then ac_ct_DLLTOOL=$DLLTOOL # Extract the first word of "dlltool", so it can be a program name with args. set dummy dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DLLTOOL"; then ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DLLTOOL="dlltool" $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_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL if test -n "$ac_ct_DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 $as_echo "$ac_ct_DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DLLTOOL" = x; then DLLTOOL="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 DLLTOOL=$ac_ct_DLLTOOL fi else DLLTOOL="$ac_cv_prog_DLLTOOL" fi test -z "$DLLTOOL" && DLLTOOL=dlltool { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 $as_echo_n "checking how to associate runtime and link libraries... " >&6; } if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_sharedlib_from_linklib_cmd='unknown' case $host_os in cygwin* | mingw* | pw32* | cegcc*) # two different shell functions defined in ltmain.sh; # decide which one to use based on capabilities of $DLLTOOL case `$DLLTOOL --help 2>&1` in *--identify-strict*) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ;; *) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ;; esac ;; *) # fallback: assume linklib IS sharedlib lt_cv_sharedlib_from_linklib_cmd=$ECHO ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 $as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO if test -n "$ac_tool_prefix"; then for ac_prog in ar 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 ${ac_cv_prog_AR+:} false; 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AR="$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 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 test -n "$AR" && break done fi if test -z "$AR"; then ac_ct_AR=$AR for ac_prog in ar 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 ${ac_cv_prog_ac_ct_AR+:} false; 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="$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_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 test -n "$ac_ct_AR" && break done 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 fi : ${AR=ar} : ${AR_FLAGS=cru} { $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 $as_echo_n "checking for archiver @FILE support... " >&6; } if ${lt_cv_ar_at_file+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ar_at_file=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : echo conftest.$ac_objext > conftest.lst lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 (eval $lt_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test 0 -eq "$ac_status"; then # Ensure the archiver fails upon bogus file names. rm -f conftest.$ac_objext libconftest.a { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 (eval $lt_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test 0 -ne "$ac_status"; then lt_cv_ar_at_file=@ fi fi rm -f conftest.* libconftest.a fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 $as_echo "$lt_cv_ar_at_file" >&6; } if test no = "$lt_cv_ar_at_file"; then archiver_list_spec= else archiver_list_spec=$lt_cv_ar_at_file fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_STRIP+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_ac_ct_STRIP+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_RANLIB+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_ac_ct_RANLIB+:} false; 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 as_fn_executable_p "$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 bitrig* | openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" fi case $host_os in darwin*) lock_old_archive_extraction=yes ;; *) lock_old_archive_extraction=no ;; esac # 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 ${lt_cv_sys_global_symbol_pipe+:} false; 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 ia64 = "$host_cpu"; 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 if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Gets list of data symbols to import. lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'" # Adjust the below global symbol transforms to fixup imported variables. lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" lt_c_name_lib_hook="\ -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\ -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'" else # Disable hooks by default. lt_cv_sys_global_symbol_to_import= lt_cdecl_hook= lt_c_name_hook= lt_c_name_lib_hook= fi # 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"\ $lt_cdecl_hook\ " -e 's/^T .* \(.*\)$/extern int \1();/p'"\ " -e 's/^$symcode$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"\ $lt_c_name_hook\ " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" # Transform an extracted symbol line into symbol name with lib prefix and # symbol address. lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\ $lt_c_name_lib_hook\ " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ " -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/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, # D for any global variable and I for any imported 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};"\ " /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\ " /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\ " /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\ " {split(\$ 0,a,/\||\r/); split(a[2],s)};"\ " s[1]~/^[@?]/{print f,s[1],s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print f,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 lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" # 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 /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE /* DATA imports from DLLs on WIN32 can't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT@&t@_DLSYM_CONST #elif defined __osf__ /* This system does not cope well with relocations in const data. */ # define LT@&t@_DLSYM_CONST #else # define LT@&t@_DLSYM_CONST const #endif #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. */ LT@&t@_DLSYM_CONST struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$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_globsym_save_LIBS=$LIBS lt_globsym_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_globsym_save_LIBS CFLAGS=$lt_globsym_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 yes = "$pipe_works"; 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 # Response file support. if test "$lt_cv_nm_interface" = "MS dumpbin"; then nm_file_list_spec='@' elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then nm_file_list_spec='@' fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 $as_echo_n "checking for sysroot... " >&6; } @%:@ Check whether --with-sysroot was given. if test "${with_sysroot+set}" = set; then : withval=$with_sysroot; else with_sysroot=no fi lt_sysroot= case $with_sysroot in #( yes) if test yes = "$GCC"; then lt_sysroot=`$CC --print-sysroot 2>/dev/null` fi ;; #( /*) lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` ;; #( no|'') ;; #( *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5 $as_echo "$with_sysroot" >&6; } as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 $as_echo "${lt_sysroot:-no}" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5 $as_echo_n "checking for a working dd... " >&6; } if ${ac_cv_path_lt_DD+:} false; then : $as_echo_n "(cached) " >&6 else printf 0123456789abcdef0123456789abcdef >conftest.i cat conftest.i conftest.i >conftest2.i : ${lt_DD:=$DD} if test -z "$lt_DD"; then ac_path_lt_DD_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 dd; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_lt_DD="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_lt_DD" || continue if "$ac_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then cmp -s conftest.i conftest.out \ && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=: fi $ac_path_lt_DD_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_lt_DD"; then : fi else ac_cv_path_lt_DD=$lt_DD fi rm -f conftest.i conftest2.i conftest.out fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5 $as_echo "$ac_cv_path_lt_DD" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5 $as_echo_n "checking how to truncate binary pipes... " >&6; } if ${lt_cv_truncate_bin+:} false; then : $as_echo_n "(cached) " >&6 else printf 0123456789abcdef0123456789abcdef >conftest.i cat conftest.i conftest.i >conftest2.i lt_cv_truncate_bin= if "$ac_cv_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then cmp -s conftest.i conftest.out \ && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1" fi rm -f conftest.i conftest2.i conftest.out test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5 $as_echo "$lt_cv_truncate_bin" >&6; } # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. func_cc_basename () { for cc_temp in @S|@*""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` } @%:@ Check whether --enable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then : enableval=$enable_libtool_lock; fi test no = "$enable_libtool_lock" || 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 what ABI is being produced by ac_compile, and set mode # options accordingly. 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 what ABI is being produced by ac_compile, and set linker # options accordingly. echo '#line '$LINENO' "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 yes = "$lt_cv_prog_gnu_ld"; 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* ;; mips64*-*linux*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. echo '#line '$LINENO' "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 emul=elf case `/usr/bin/file conftest.$ac_objext` in *32-bit*) emul="${emul}32" ;; *64-bit*) emul="${emul}64" ;; esac case `/usr/bin/file conftest.$ac_objext` in *MSB*) emul="${emul}btsmip" ;; *LSB*) emul="${emul}ltsmip" ;; esac case `/usr/bin/file conftest.$ac_objext` in *N32*) emul="${emul}n32" ;; esac LD="${LD-ld} -m $emul" fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. Note that the listed cases only cover the # situations where additional linker options are needed (such as when # doing 32-bit compilation for a host where ld defaults to 64-bit, or # vice versa); the common cases where no linker options are needed do # not appear in the list. 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*) case `/usr/bin/file conftest.o` in *x86-64*) LD="${LD-ld} -m elf32_x86_64" ;; *) LD="${LD-ld} -m elf_i386" ;; esac ;; powerpc64le-*linux*) LD="${LD-ld} -m elf32lppclinux" ;; 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" ;; powerpcle-*linux*) LD="${LD-ld} -m elf64lppc" ;; 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 ${lt_cv_cc_needs_belf+:} false; 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 yes != "$lt_cv_cc_needs_belf"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS=$SAVE_CFLAGS fi ;; *-*solaris*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. 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*) case $host in i?86-*-solaris*|x86_64-*-solaris*) LD="${LD-ld} -m elf_x86_64" ;; sparc*-*-solaris*) LD="${LD-ld} -m elf64_sparc" ;; esac # GNU ld 2.21 introduced _sol2 emulations. Use them if available. if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then LD=${LD-ld}_sol2 fi ;; *) 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 if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. set dummy ${ac_tool_prefix}mt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$MANIFEST_TOOL"; then ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" $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 MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL if test -n "$MANIFEST_TOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 $as_echo "$MANIFEST_TOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_MANIFEST_TOOL"; then ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL # Extract the first word of "mt", so it can be a program name with args. set dummy mt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_MANIFEST_TOOL"; then ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" $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_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL if test -n "$ac_ct_MANIFEST_TOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 $as_echo "$ac_ct_MANIFEST_TOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_MANIFEST_TOOL" = x; then MANIFEST_TOOL=":" 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 MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL fi else MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" fi test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 $as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } if ${lt_cv_path_mainfest_tool+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_path_mainfest_tool=no echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out cat conftest.err >&5 if $GREP 'Manifest Tool' conftest.out > /dev/null; then lt_cv_path_mainfest_tool=yes fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 $as_echo "$lt_cv_path_mainfest_tool" >&6; } if test yes != "$lt_cv_path_mainfest_tool"; then MANIFEST_TOOL=: fi 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 ${ac_cv_prog_DSYMUTIL+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_NMEDIT+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_ac_ct_NMEDIT+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_LIPO+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_ac_ct_LIPO+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_OTOOL+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_ac_ct_OTOOL+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_OTOOL64+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_ac_ct_OTOOL64+:} false; 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 as_fn_executable_p "$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 ${lt_cv_apple_cc_single_mod+:} false; 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 there is a non-empty error log, and "single_module" # appears in it, assume the flag caused a linker warning if test -s conftest.err && $GREP single_module conftest.err; then cat conftest.err >&5 # Otherwise, if the output was created with a 0 exit code from # the compiler, it worked. elif test -f libconftest.dylib && test 0 = "$_lt_result"; 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 ${lt_cv_ld_exported_symbols_list+:} false; 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; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 $as_echo_n "checking for -force_load linker flag... " >&6; } if ${lt_cv_ld_force_load+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 echo "$AR cru libconftest.a conftest.o" >&5 $AR cru libconftest.a conftest.o 2>&5 echo "$RANLIB libconftest.a" >&5 $RANLIB libconftest.a 2>&5 cat > conftest.c << _LT_EOF int main() { return 0;} _LT_EOF echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err _lt_result=$? if test -s conftest.err && $GREP force_load conftest.err; then cat conftest.err >&5 elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then lt_cv_ld_force_load=yes else cat conftest.err >&5 fi rm -f conftest.err libconftest.a conftest conftest.c rm -rf conftest.dSYM fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 $as_echo "$lt_cv_ld_force_load" >&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 yes = "$lt_cv_apple_cc_single_mod"; then _lt_dar_single_mod='$single_module' fi if test yes = "$lt_cv_ld_exported_symbols_list"; 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" && test no = "$lt_cv_ld_force_load"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac # func_munge_path_list VARIABLE PATH # ----------------------------------- # VARIABLE is name of variable containing _space_ separated list of # directories to be munged by the contents of PATH, which is string # having a format: # "DIR[:DIR]:" # string "DIR[ DIR]" will be prepended to VARIABLE # ":DIR[:DIR]" # string "DIR[ DIR]" will be appended to VARIABLE # "DIRP[:DIRP]::[DIRA:]DIRA" # string "DIRP[ DIRP]" will be prepended to VARIABLE and string # "DIRA[ DIRA]" will be appended to VARIABLE # "DIR[:DIR]" # VARIABLE will be replaced by "DIR[ DIR]" func_munge_path_list () { case x@S|@2 in x) ;; *:) eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'` \@S|@@S|@1\" ;; x:*) eval @S|@1=\"\@S|@@S|@1 `$ECHO @S|@2 | $SED 's/:/ /g'`\" ;; *::*) eval @S|@1=\"\@S|@@S|@1\ `$ECHO @S|@2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" eval @S|@1=\"`$ECHO @S|@2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \@S|@@S|@1\" ;; *) eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'`\" ;; 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 ${ac_cv_prog_CPP+:} false; 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.i 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.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i 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.i 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.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i 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 ${ac_cv_header_stdc+:} false; 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 " if eval test \"x\$"$as_ac_Header"\" = 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" = xyes; 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 --enable-static was given. if test "${enable_static+set}" = set; then : enableval=$enable_static; p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for pkg in $enableval; do IFS=$lt_save_ifs if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS=$lt_save_ifs ;; esac else enable_static=yes fi @%:@ Check whether --with-pic was given. if test "${with_pic+set}" = set; then : withval=$with_pic; lt_p=${PACKAGE-default} case $withval in yes|no) pic_mode=$withval ;; *) pic_mode=default # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for lt_pkg in $withval; do IFS=$lt_save_ifs if test "X$lt_pkg" = "X$lt_p"; then pic_mode=yes fi done IFS=$lt_save_ifs ;; esac else pic_mode=default fi @%:@ Check whether --enable-fast-install was given. if test "${enable_fast_install+set}" = set; then : enableval=$enable_fast_install; p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for pkg in $enableval; do IFS=$lt_save_ifs if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS=$lt_save_ifs ;; esac else enable_fast_install=yes fi shared_archive_member_spec= case $host,$enable_shared in power*-*-aix[5-9]*,yes) { $as_echo "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5 $as_echo_n "checking which variant of shared library versioning to provide... " >&6; } @%:@ Check whether --with-aix-soname was given. if test "${with_aix_soname+set}" = set; then : withval=$with_aix_soname; case $withval in aix|svr4|both) ;; *) as_fn_error $? "Unknown argument to --with-aix-soname" "$LINENO" 5 ;; esac lt_cv_with_aix_soname=$with_aix_soname else if ${lt_cv_with_aix_soname+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_with_aix_soname=aix fi with_aix_soname=$lt_cv_with_aix_soname fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5 $as_echo "$with_aix_soname" >&6; } if test aix != "$with_aix_soname"; then # For the AIX way of multilib, we name the shared archive member # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o', # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File. # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag, # the AIX toolchain works better with OBJECT_MODE set (default 32). if test 64 = "${OBJECT_MODE-32}"; then shared_archive_member_spec=shr_64 else shared_archive_member_spec=shr fi fi ;; *) with_aix_soname=aix ;; esac # 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 ${lt_cv_objdir+:} false; 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 set != "${COLLECT_NAMES+set}"; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # 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 func_cc_basename $compiler cc_basename=$func_cc_basename_result # 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 ${lt_cv_path_MAGIC_CMD+:} false; 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 ${lt_cv_path_MAGIC_CMD+:} false; 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* ## 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... if test -n "$compiler"; then lt_prog_compiler_no_builtin_flag= if test yes = "$GCC"; then case $cc_basename in nvcc*) lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; *) lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; esac { $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 ${lt_cv_prog_compiler_rtti_exceptions+:} false; 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" ## exclude from sc_useless_quotes_in_assignment # 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:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $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 "$_lt_compiler_boilerplate" | $SED '/^$/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 yes = "$lt_cv_prog_compiler_rtti_exceptions"; 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= if test yes = "$GCC"; then lt_prog_compiler_wl='-Wl,' lt_prog_compiler_static='-static' case $host_os in aix*) # All AIX code is PIC. if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' fi lt_prog_compiler_pic='-fPIC' ;; 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' case $host_os in os2*) lt_prog_compiler_static='$wl-static' ;; esac ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. lt_prog_compiler_static= ;; 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 case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 lt_prog_compiler_wl='-Xlinker ' if test -n "$lt_prog_compiler_pic"; then lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic" fi ;; 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 ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' else lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' fi ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' case $cc_basename in nagfor*) # NAG Fortran compiler lt_prog_compiler_wl='-Wl,-Wl,,' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; esac ;; 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' case $host_os in os2*) lt_prog_compiler_static='$wl-static' ;; esac ;; 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 | 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' ;; nagfor*) # NAG Fortran compiler lt_prog_compiler_wl='-Wl,-Wl,,' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; tcc*) # Fabrice Bellard et al's Tiny C Compiler lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # 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* | bgxl* | bgf* | mpixl*) # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-qpic' lt_prog_compiler_static='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) # 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='' ;; *Sun\ F* | *Sun*Fortran*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Qoption ld ' ;; *Sun\ C*) # Sun C 5.9 lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Wl,' ;; *Intel*\ [CF]*Compiler*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; *Portland\ Group*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; 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* | sunf77* | sunf90* | sunf95*) 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 that do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic= ;; *) lt_prog_compiler_pic="$lt_prog_compiler_pic@&t@ -DPIC" ;; esac { $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 ${lt_cv_prog_compiler_pic+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic=$lt_prog_compiler_pic fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 $as_echo "$lt_cv_prog_compiler_pic" >&6; } lt_prog_compiler_pic=$lt_cv_prog_compiler_pic # # 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 ${lt_cv_prog_compiler_pic_works+:} false; 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@&t@ -DPIC" ## exclude from sc_useless_quotes_in_assignment # 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:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $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 "$_lt_compiler_boilerplate" | $SED '/^$/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 yes = "$lt_cv_prog_compiler_pic_works"; 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 ${lt_cv_prog_compiler_static_works+:} false; 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 "$_lt_linker_boilerplate" | $SED '/^$/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 yes = "$lt_cv_prog_compiler_static_works"; 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 ${lt_cv_prog_compiler_c_o+:} false; 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:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $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 "$_lt_compiler_boilerplate" | $SED '/^$/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 ${lt_cv_prog_compiler_c_o+:} false; 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:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $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 "$_lt_compiler_boilerplate" | $SED '/^$/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 no = "$lt_cv_prog_compiler_c_o" && test no != "$need_locks"; 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 no = "$hard_links"; 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_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 yes != "$GCC"; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd* | bitrig*) with_gnu_ld=no ;; esac ld_shlibs=yes # On some targets, GNU ld is compatible enough with the native linker # that we're better off using the native interface for both. lt_use_gnu_ld_interface=no if test yes = "$with_gnu_ld"; then case $host_os in aix*) # The AIX port of GNU ld has always aspired to compatibility # with the native linker. However, as the warning in the GNU ld # block says, versions before 2.19.5* couldn't really create working # shared libraries, regardless of the interface used. case `$LD -v 2>&1` in *\ \(GNU\ Binutils\)\ 2.19.5*) ;; *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; *\ \(GNU\ Binutils\)\ [3-9]*) ;; *) lt_use_gnu_ld_interface=yes ;; esac ;; *) lt_use_gnu_ld_interface=yes ;; esac fi if test yes = "$lt_use_gnu_ld_interface"; 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 | $SED -e 's/(^)\+)\s\+//' 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 ia64 != "$host_cpu"; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.19, 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 install binutils *** 2.20 or above, or modify your PATH so that a non-GNU linker is found. *** You will then need to restart the configuration process. _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' export_dynamic_flag_spec='$wl--export-all-symbols' 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/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' 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, use it as # is; otherwise, prepend EXPORTS... archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; 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 ;; haiku*) archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' link_all_deplibs=yes ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported shrext_cmds=.dll archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ prefix_cmds="$SED"~ if test EXPORTS = "`$SED 1q $export_symbols`"; then prefix_cmds="$prefix_cmds -e 1d"; fi~ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' enable_shared_with_static_runtimes=yes ;; 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 linux-dietlibc = "$host_os"; 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 no = "$tmp_diet" then tmp_addflag=' $pic_flag' 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; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95* | pgfortran*) # 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; func_echo_all \"$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' ;; nagfor*) # NAGFOR 5.3 tmp_sharedflag='-Wl,-shared' ;; xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; nvcc*) # Cuda Compiler Driver 2.2 whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' compiler_needs_object=yes ;; 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; func_echo_all \"$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 yes = "$supports_anon_versioning"; 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 tcc*) export_dynamic_flag_spec='-rdynamic' ;; xlf* | bgf* | bgxlf* | mpixlf*) # 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='$wl-rpath $wl$libdir' archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test yes = "$supports_anon_versioning"; 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 $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else ld_shlibs=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $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 $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $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 cannot *** 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 $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $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 no = "$ld_shlibs"; 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 yes = "$GCC" && 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 ia64 = "$host_cpu"; 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 GNU nm, but means don't demangle to AIX nm. # Without the "-l" option, or with the "-B" option, AIX nm treats # weak defined symbols like other global defined symbols, whereas # GNU nm marks them as "W". # While the 'weak' keyword is ignored in the Export File, we need # it in the Import File for the 'aix-soname' feature, so we have # to replace the "-B" option with "-P" for AIX 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") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' else export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | 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 # have runtime linking enabled, and use it for executables. # For shared libraries, we enable/disable runtime linking # depending on the kind of the shared library created - # when "with_aix_soname,aix_use_runtimelinking" is: # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables # "aix,yes" lib.so shared, rtl:yes, for executables # lib.a static archive # "both,no" lib.so.V(shr.o) shared, rtl:yes # lib.a(lib.so.V) shared, rtl:no, for executables # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a(lib.so.V) shared, rtl:no # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a static archive case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then aix_use_runtimelinking=yes break fi done if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then # With aix-soname=svr4, we create the lib.so.V shared archives only, # so we don't have lib.a shared libs to link our executables. # We have to force runtime linking in this case. aix_use_runtimelinking=yes LDFLAGS="$LDFLAGS -Wl,-brtl" fi ;; 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,' case $with_aix_soname,$aix_use_runtimelinking in aix,*) ;; # traditional, no import file svr4,* | *,yes) # use import file # The Import File defines what to hardcode. hardcode_direct=no hardcode_direct_absolute=no ;; esac if test yes = "$GCC"; 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 yes = "$aix_use_runtimelinking"; then shared_flag="$shared_flag "'$wl-G' fi # Need to ensure runtime linking is disabled for the traditional # shared library, or the linker may eventually find shared libraries # /with/ Import File - we do not want to mix them. shared_flag_aix='-shared' shared_flag_svr4='-shared $wl-G' else # not using gcc if test ia64 = "$host_cpu"; 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 yes = "$aix_use_runtimelinking"; then shared_flag='$wl-G' else shared_flag='$wl-bM:SRE' fi shared_flag_aix='$wl-bM:SRE' shared_flag_svr4='$wl-G' 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,yes = "$with_aix_soname,$aix_use_runtimelinking"; 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. if test set = "${lt_cv_aix_libpath+set}"; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath_+:} false; then : $as_echo_n "(cached) " >&6 else 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 } }' lt_cv_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 "$lt_cv_aix_libpath_"; then lt_cv_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 "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=/usr/lib:/lib fi fi aix_libpath=$lt_cv_aix_libpath_ 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 -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag else if test ia64 = "$host_cpu"; 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. if test set = "${lt_cv_aix_libpath+set}"; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath_+:} false; then : $as_echo_n "(cached) " >&6 else 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 } }' lt_cv_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 "$lt_cv_aix_libpath_"; then lt_cv_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 "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=/usr/lib:/lib fi fi aix_libpath=$lt_cv_aix_libpath_ 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' if test yes = "$with_gnu_ld"; then # We only use this code for GNU lds that support --whole-archive. whole_archive_flag_spec='$wl--whole-archive$convenience $wl--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec='$convenience' fi archive_cmds_need_lc=yes archive_expsym_cmds='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' # -brtl affects multiple linker settings, -berok does not and is overridden later compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([, ]\\)%-berok\\1%g"`' if test svr4 != "$with_aix_soname"; then # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' fi if test aix != "$with_aix_soname"; then archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' else # used by -dlpreopen to get the symbols archive_expsym_cmds="$archive_expsym_cmds"'~$MV $output_objdir/$realname.d/$soname $output_objdir' fi archive_expsym_cmds="$archive_expsym_cmds"'~$RM -r $output_objdir/$realname.d' 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. case $cc_basename in cl*) # Native MSVC hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported always_export_symbols=yes file_list_spec='@' # 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 $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then cp "$export_symbols" "$output_objdir/$soname.def"; echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; else $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, )='true' enable_shared_with_static_runtimes=yes exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' # Don't use ranlib old_postinstall_cmds='chmod 644 $oldlib' postlink_cmds='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile=$lt_outputfile.exe lt_tool_outputfile=$lt_tool_outputfile.exe ;; esac~ if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # Assume MSVC wrapper 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 `func_echo_all "$deplibs" | $SED '\''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' enable_shared_with_static_runtimes=yes ;; esac ;; darwin* | rhapsody*) archive_cmds_need_lc=no hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported if test yes = "$lt_cv_ld_force_load"; then whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' else whole_archive_flag_spec='' fi link_all_deplibs=yes allow_undefined_flag=$_lt_dar_allow_undefined case $cc_basename in ifort*|nagfor*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test yes = "$_lt_dar_can_shared"; then output_verbose_link_cmd=func_echo_all 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 ;; # 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 $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; hpux9*) if test yes = "$GCC"; then archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$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 "x$output_objdir/$soname" = "x$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 yes,no = "$GCC,$with_gnu_ld"; then archive_cmds='$CC -shared $pic_flag $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 no = "$with_gnu_ld"; then hardcode_libdir_flag_spec='$wl+b $wl$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 yes,no = "$GCC,$with_gnu_ld"; 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 $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -shared $pic_flag $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' ;; *) # Older versions of the 11.00 compiler do not understand -b yet # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 $as_echo_n "checking if $CC understands -b... " >&6; } if ${lt_cv_prog_compiler__b+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler__b=no save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -b" 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 "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler__b=yes fi else lt_cv_prog_compiler__b=yes fi fi $RM -r conftest* LDFLAGS=$save_LDFLAGS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 $as_echo "$lt_cv_prog_compiler__b" >&6; } if test yes = "$lt_cv_prog_compiler__b"; then archive_cmds='$CC -b $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 ;; esac fi if test no = "$with_gnu_ld"; 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 yes = "$GCC"; then archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $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. # This should be the same for all languages, so no per-tag cache variable. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 $as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } if ${lt_cv_irix_exported_symbol+:} false; then : $as_echo_n "(cached) " >&6 else 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) { return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_irix_exported_symbol=yes else lt_cv_irix_exported_symbol=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_irix_exported_symbol" >&5 $as_echo "$lt_cv_irix_exported_symbol" >&6; } if test yes = "$lt_cv_irix_exported_symbol"; then archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' fi else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -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 ;; linux*) case $cc_basename in tcc*) # Fabrice Bellard et al's Tiny C Compiler ld_shlibs=yes archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; newsos6) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' hardcode_libdir_separator=: hardcode_shlibpath_var=no ;; *nto* | *qnx*) ;; openbsd* | bitrig*) 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__`"; 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 archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='$wl-rpath,$libdir' fi else ld_shlibs=no fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported shrext_cmds=.dll archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ prefix_cmds="$SED"~ if test EXPORTS = "`$SED 1q $export_symbols`"; then prefix_cmds="$prefix_cmds -e 1d"; fi~ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' enable_shared_with_static_runtimes=yes ;; osf3*) if test yes = "$GCC"; 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" && func_echo_all "$wl-set_version $wl$verstring"` $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" && func_echo_all "-set_version $verstring"` -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 yes = "$GCC"; then allow_undefined_flag=' $wl-expect_unresolved $wl\*' archive_cmds='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; 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 "-set_version $verstring"` -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 yes = "$GCC"; then wlarc='$wl' archive_cmds='$CC -shared $pic_flag $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 $pic_flag $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 yes = "$GCC"; 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 sequent = "$host_vendor"; 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 yes = "$GCC"; 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 CANNOT 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 yes = "$GCC"; 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 sni = "$host_vendor"; 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 no = "$ld_shlibs" && 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 yes,yes = "$GCC,$enable_shared"; 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; } if ${lt_cv_archive_cmds_need_lc+:} false; then : $as_echo_n "(cached) " >&6 else $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 lt_cv_archive_cmds_need_lc=no else lt_cv_archive_cmds_need_lc=yes fi allow_undefined_flag=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 $as_echo "$lt_cv_archive_cmds_need_lc" >&6; } archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc ;; 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 yes = "$GCC"; then case $host_os in darwin*) lt_awk_arg='/^libraries:/,/LR/' ;; *) lt_awk_arg='/^libraries:/' ;; esac case $host_os in mingw* | cegcc*) lt_sed_strip_eq='s|=\([A-Za-z]:\)|\1|g' ;; *) lt_sed_strip_eq='s|=/|/|g' ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` case $lt_search_path_spec in *\;*) # 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 's/;/ /g'` ;; *) lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` ;; esac # 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` # ...but if some path component already ends with the multilib dir we assume # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer). case "$lt_multi_os_dir; $lt_search_path_spec " in "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*) lt_multi_os_dir= ;; esac 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" elif test -n "$lt_multi_os_dir"; then 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; } }'` # AWK program above erroneously prepends '/' to C:/dos/paths # for these hosts. case $host_os in mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ $SED 's|/\([A-Za-z]:\)|\1|g'` ;; esac sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` 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 # correct to gnu/linux during the next big refactor 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 # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes if test ia64 = "$host_cpu"; 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 # Using Import Files as archive members, it is possible to support # filename-based versioning of shared library archives on AIX. While # this would work for both with and without runtime linking, it will # prevent static linking of such archives. So we do filename-based # shared library versioning with .so extension only, which is used # when both runtime linking and shared linking is enabled. # Unfortunately, runtime linking may impact performance, so we do # not want this to be the default eventually. Also, we use the # versioned .so libs for executables only if there is the -brtl # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only. # To allow for filename-based versioning support, we need to create # libNAME.so.V as an archive file, containing: # *) an Import File, referring to the versioned filename of the # archive as well as the shared archive member, telling the # bitwidth (32 or 64) of that shared object, and providing the # list of exported symbols of that shared object, eventually # decorated with the 'weak' keyword # *) the shared object with the F_LOADONLY flag set, to really avoid # it being seen by the linker. # At run time we better use the real file rather than another symlink, # but for link time we create the symlink libNAME.so -> libNAME.so.V case $with_aix_soname,$aix_use_runtimelinking in # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. aix,yes) # traditional libtool dynamic_linker='AIX unversionable lib.so' # 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' ;; aix,no) # traditional AIX only dynamic_linker='AIX lib.a(lib.so.V)' # 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' ;; svr4,*) # full svr4 only dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o)" library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' # We do not specify a path in Import Files, so LIBPATH fires. shlibpath_overrides_runpath=yes ;; *,yes) # both, prefer svr4 dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o), lib.a(lib.so.V)" library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' # unpreferred sharedlib libNAME.a needs extra handling postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"' postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"' # We do not specify a path in Import Files, so LIBPATH fires. shlibpath_overrides_runpath=yes ;; *,no) # both, prefer aix dynamic_linker="AIX lib.a(lib.so.V), lib.so.V($shared_archive_member_spec.o)" library_names_spec='$libname$release.a $libname.a' soname_spec='$libname$release$shared_ext$major' # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)' postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"' ;; esac 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=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; $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 # correct to gnu/linux during the next big refactor 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,$cc_basename in yes,*) # gcc 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="$sys_lib_search_path_spec /usr/lib/w32api" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' ;; 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 dynamic_linker='Win32 ld.exe' ;; *,cl*) # Native MSVC libname_spec='$name' soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' library_names_spec='$libname.dll.lib' case $build_os in mingw*) sys_lib_search_path_spec= lt_save_ifs=$IFS IFS=';' for lt_path in $LIB do IFS=$lt_save_ifs # Let DOS variable expansion print the short 8.3 style file name. lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" done IFS=$lt_save_ifs # Convert to MSYS style. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form # but this time dos style (no spaces!) so that the unix form looks # like /cygdrive/c/PROGRA~1:/cygdr... sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) sys_lib_search_path_spec=$LIB if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH. 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 # FIXME: find the short name or the path components, as spaces are # common. (e.g. "Program Files" -> "PROGRA~1") ;; esac # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \$file`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes dynamic_linker='Win32 link.exe' ;; *) # Assume MSVC wrapper library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac # 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 # correct to gnu/linux during the next big refactor 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 ;; 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[23].*) 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$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' 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 ;; haiku*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" 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=LIBRARY_PATH shlibpath_overrides_runpath=no sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' 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 32 = "$HPUX_IA64_MODE"; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" sys_lib_dlsearch_path_spec=/usr/lib/hpux32 else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" sys_lib_dlsearch_path_spec=/usr/lib/hpux64 fi ;; 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' # or fails outright, so override atomically: install_override_mode=555 ;; interix[3-9]*) version_type=linux # correct to gnu/linux during the next big refactor 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 yes = "$lt_cv_prog_gnu_ld"; then version_type=linux # correct to gnu/linux during the next big refactor 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 ;; linux*android*) version_type=none # Android doesn't support versioned libraries. need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext' soname_spec='$libname$release$shared_ext' finish_cmds= shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # 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 dynamic_linker='Android linker' # Don't embed -rpath directories since the linker doesn't support them. hardcode_libdir_flag_spec='-L$libdir' ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) version_type=linux # correct to gnu/linux during the next big refactor 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 if ${lt_cv_shlibpath_overrides_runpath+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_shlibpath_overrides_runpath=no 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 : lt_cv_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 fi shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # 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 # Ideally, we could use ldconfig to report *all* directores which are # searched for libraries, however this is still not possible. Aside from not # being certain /sbin/ldconfig is available, command # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, # even though it is searched at run-time. Try to do the best guess by # appending ld.so.conf contents (and includes) 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;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' ;; 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 # correct to gnu/linux during the next big refactor 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* | bitrig*) version_type=sunos sys_lib_dlsearch_path_spec=/usr/lib need_lib_prefix=no if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then need_version=no else need_version=yes fi 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 shlibpath_overrides_runpath=yes ;; os2*) libname_spec='$name' version_type=windows shrext_cmds=.dll need_version=no need_lib_prefix=no # OS/2 can only load a DLL with a base name of 8 characters or less. soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; v=$($ECHO $release$versuffix | tr -d .-); n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); $ECHO $n$v`$shared_ext' library_names_spec='${libname}_dll.$libext' dynamic_linker='OS/2 ld.exe' shlibpath_var=BEGINLIBPATH sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec 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' ;; 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 # correct to gnu/linux during the next big refactor 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 yes = "$with_gnu_ld"; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux # correct to gnu/linux during the next big refactor 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 # correct to gnu/linux during the next big refactor 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=sco 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 yes = "$with_gnu_ld"; 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 # correct to gnu/linux during the next big refactor 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 # correct to gnu/linux during the next big refactor 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 no = "$dynamic_linker" && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test yes = "$GCC"; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec fi if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec fi # remember unaugmented sys_lib_dlsearch_path content for libtool script decls... configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec # ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" # to be used as default LT_SYS_LIBRARY_PATH value in generated libtool configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH { $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 yes = "$hardcode_automatic"; then # We can hardcode non-existent directories. if test no != "$hardcode_direct" && # 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 no != "$_LT_TAGVAR(hardcode_shlibpath_var, )" && test no != "$hardcode_minus_L"; 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 relink = "$hardcode_action" || test yes = "$inherit_rpath"; then # Fast installation is not supported enable_fast_install=no elif test yes = "$shlibpath_overrides_runpath" || test no = "$enable_shared"; then # Fast installation is not necessary enable_fast_install=needless fi if test yes != "$enable_dlopen"; 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 ${ac_cv_lib_dl_dlopen+:} false; 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" = xyes; 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 ;; tpf*) # Don't try to run any link tests for TPF. We know it's impossible # because TPF is a cross-compiler, and we know how we open DSOs. lt_cv_dlopen=dlopen lt_cv_dlopen_libs= lt_cv_dlopen_self=no ;; *) ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" if test "x$ac_cv_func_shl_load" = xyes; 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 ${ac_cv_lib_dld_shl_load+:} false; 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" = xyes; 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" = xyes; 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 ${ac_cv_lib_dl_dlopen+:} false; 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" = xyes; 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 ${ac_cv_lib_svld_dlopen+:} false; 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" = xyes; 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 ${ac_cv_lib_dld_dld_link+:} false; 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" = xyes; then : lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld fi fi fi fi fi fi ;; esac if test no = "$lt_cv_dlopen"; then enable_dlopen=no else enable_dlopen=yes fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS=$CPPFLAGS test yes = "$ac_cv_header_dlfcn_h" && 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 ${lt_cv_dlopen_self+:} false; then : $as_echo_n "(cached) " >&6 else if test yes = "$cross_compiling"; 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 $LINENO "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 /* When -fvisibility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 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; else puts (dlerror ()); } /* 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 yes = "$lt_cv_dlopen_self"; 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 ${lt_cv_dlopen_self_static+:} false; then : $as_echo_n "(cached) " >&6 else if test yes = "$cross_compiling"; 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 $LINENO "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 /* When -fvisibility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 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; else puts (dlerror ()); } /* 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 what 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 no = "$can_build_shared" && 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 yes = "$enable_shared" && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[4-9]*) if test ia64 != "$host_cpu"; then case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in yes,aix,yes) ;; # shared object as lib.so file only yes,svr4,*) ;; # shared object as lib.so archive member only yes,*) enable_static=no ;; # shared object in lib.a archive as well esac 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 yes = "$enable_shared" || 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: # By default we simply use the C compiler to build assembly code. test "${CCAS+set}" = set || CCAS=$CC test "${CCASFLAGS+set}" = set || CCASFLAGS=$CFLAGS depcc="$CCAS" 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 ${am_cv_CCAS_dependencies_compiler_type+:} false; 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". rm -rf conftest.dir 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_CCAS_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 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 10 /bin/sh. echo '/* dummy */' > 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 ;; msvc7 | msvc7msys | 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_CCAS_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CCAS_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CCAS_dependencies_compiler_type" >&5 $as_echo "$am_cv_CCAS_dependencies_compiler_type" >&6; } CCASDEPMODE=depmode=$am_cv_CCAS_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CCAS_dependencies_compiler_type" = gcc3; then am__fastdepCCAS_TRUE= am__fastdepCCAS_FALSE='#' else am__fastdepCCAS_TRUE='#' am__fastdepCCAS_FALSE= fi # Check platform { $as_echo "$as_me:${as_lineno-$LINENO}: checking OS" >&5 $as_echo_n "checking OS... " >&6; } if echo $host_os | grep linux ; then os_linux=1 else os_linux=0 fi if test "$os_linux" -eq 1; then OS_LINUX_TRUE= OS_LINUX_FALSE='#' else OS_LINUX_TRUE='#' OS_LINUX_FALSE= fi if echo $host_os | grep -E 'darwin|freebsd'; then OS_BSD_TRUE= OS_BSD_FALSE='#' else OS_BSD_TRUE='#' OS_BSD_FALSE= fi if echo $host_os | grep mingw; then OS_MINGW_TRUE= OS_MINGW_FALSE='#' else OS_MINGW_TRUE='#' OS_MINGW_FALSE= fi if test "$os_linux" -eq 1; then : $as_echo "@%:@define OS_LINUX 1" >>confdefs.h else $as_echo "@%:@define OS_LINUX 0" >>confdefs.h fi CFLAGS="$CFLAGS -Wall -Wno-deprecated-declarations" # DEBUG @%:@ Check whether --enable-debug was given. if test "${enable_debug+set}" = set; then : enableval=$enable_debug; enable_debug="$enableval" fi if test "${enable_debug}" = yes; then CXXFLAGS="$CXXFLAGS -DDEBUG -g" CFLAGS="$CFLAGS -DDEBUG -g" fi # ASM { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use asm checksum routine" >&5 $as_echo_n "checking whether to use asm checksum routine... " >&6; } @%:@ Check whether --enable-asm was given. if test "${enable_asm+set}" = set; then : enableval=$enable_asm; enable_asm="$enableval" else enable_asm="no" fi if test "${enable_asm}" = yes; 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; } $as_echo "@%:@define NO_ASM 1" >>confdefs.h fi if test x$enable_asm = xno; then NO_ASM_TRUE= NO_ASM_FALSE='#' else NO_ASM_TRUE='#' NO_ASM_FALSE= fi if false; then HAVE_NI_TRUE= HAVE_NI_FALSE='#' else HAVE_NI_TRUE='#' HAVE_NI_FALSE= fi # libs { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cap_set_flag in -lcap" >&5 $as_echo_n "checking for cap_set_flag in -lcap... " >&6; } if ${ac_cv_lib_cap_cap_set_flag+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lcap $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 cap_set_flag (); int main () { return cap_set_flag (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_cap_cap_set_flag=yes else ac_cv_lib_cap_cap_set_flag=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_cap_cap_set_flag" >&5 $as_echo "$ac_cv_lib_cap_cap_set_flag" >&6; } if test "x$ac_cv_lib_cap_cap_set_flag" = xyes; then : tcpcryptd_LDADD="-lcap $tcpcryptd_LDADD" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EVP_OpenInit in -lcrypto" >&5 $as_echo_n "checking for EVP_OpenInit in -lcrypto... " >&6; } if ${ac_cv_lib_crypto_EVP_OpenInit+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lcrypto $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 EVP_OpenInit (); int main () { return EVP_OpenInit (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_crypto_EVP_OpenInit=yes else ac_cv_lib_crypto_EVP_OpenInit=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_crypto_EVP_OpenInit" >&5 $as_echo "$ac_cv_lib_crypto_EVP_OpenInit" >&6; } if test "x$ac_cv_lib_crypto_EVP_OpenInit" = xyes; then : crypto_LDADD="-lcrypto" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nfq_open in -lnetfilter_queue" >&5 $as_echo_n "checking for nfq_open in -lnetfilter_queue... " >&6; } if ${ac_cv_lib_netfilter_queue_nfq_open+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lnetfilter_queue $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 nfq_open (); int main () { return nfq_open (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_netfilter_queue_nfq_open=yes else ac_cv_lib_netfilter_queue_nfq_open=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_netfilter_queue_nfq_open" >&5 $as_echo "$ac_cv_lib_netfilter_queue_nfq_open" >&6; } if test "x$ac_cv_lib_netfilter_queue_nfq_open" = xyes; then : tcpcryptd_LDADD="-lnetfilter_queue $tcpcryptd_LDADD" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nfct_open in -lnetfilter_conntrack" >&5 $as_echo_n "checking for nfct_open in -lnetfilter_conntrack... " >&6; } if ${ac_cv_lib_netfilter_conntrack_nfct_open+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lnetfilter_conntrack $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 nfct_open (); int main () { return nfct_open (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_netfilter_conntrack_nfct_open=yes else ac_cv_lib_netfilter_conntrack_nfct_open=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_netfilter_conntrack_nfct_open" >&5 $as_echo "$ac_cv_lib_netfilter_conntrack_nfct_open" >&6; } if test "x$ac_cv_lib_netfilter_conntrack_nfct_open" = xyes; then : tcpcryptd_LDADD="-lnetfilter_conntrack $tcpcryptd_LDADD" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nfnl_rcvbufsiz in -lnfnetlink" >&5 $as_echo_n "checking for nfnl_rcvbufsiz in -lnfnetlink... " >&6; } if ${ac_cv_lib_nfnetlink_nfnl_rcvbufsiz+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lnfnetlink $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 nfnl_rcvbufsiz (); int main () { return nfnl_rcvbufsiz (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_nfnetlink_nfnl_rcvbufsiz=yes else ac_cv_lib_nfnetlink_nfnl_rcvbufsiz=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_nfnetlink_nfnl_rcvbufsiz" >&5 $as_echo "$ac_cv_lib_nfnetlink_nfnl_rcvbufsiz" >&6; } if test "x$ac_cv_lib_nfnetlink_nfnl_rcvbufsiz" = xyes; then : tcpcryptd_LDADD="-lnfnetlink $tcpcryptd_LDADD" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pcap_open_live in -lpcap" >&5 $as_echo_n "checking for pcap_open_live in -lpcap... " >&6; } if ${ac_cv_lib_pcap_pcap_open_live+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lpcap $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 pcap_open_live (); int main () { return pcap_open_live (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_pcap_pcap_open_live=yes else ac_cv_lib_pcap_pcap_open_live=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_pcap_pcap_open_live" >&5 $as_echo "$ac_cv_lib_pcap_pcap_open_live" >&6; } if test "x$ac_cv_lib_pcap_pcap_open_live" = xyes; then : tcpcryptd_LDADD="-lpcap $tcpcryptd_LDADD" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_create in -lpthread" >&5 $as_echo_n "checking for pthread_create in -lpthread... " >&6; } if ${ac_cv_lib_pthread_pthread_create+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lpthread $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 pthread_create (); int main () { return pthread_create (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_pthread_pthread_create=yes else ac_cv_lib_pthread_pthread_create=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_pthread_pthread_create" >&5 $as_echo "$ac_cv_lib_pthread_pthread_create" >&6; } if test "x$ac_cv_lib_pthread_pthread_create" = xyes; then : cat >>confdefs.h <<_ACEOF @%:@define HAVE_LIBPTHREAD 1 _ACEOF LIBS="-lpthread $LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bind in -lwsock32" >&5 $as_echo_n "checking for bind in -lwsock32... " >&6; } if ${ac_cv_lib_wsock32_bind+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lwsock32 $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 bind (); int main () { return bind (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_wsock32_bind=yes else ac_cv_lib_wsock32_bind=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_wsock32_bind" >&5 $as_echo "$ac_cv_lib_wsock32_bind" >&6; } if test "x$ac_cv_lib_wsock32_bind" = xyes; then : cat >>confdefs.h <<_ACEOF @%:@define HAVE_LIBWSOCK32 1 _ACEOF LIBS="-lwsock32 $LIBS" fi # TODO: find symbol name { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GetAdaptersInfo in -liphlpapi" >&5 $as_echo_n "checking for GetAdaptersInfo in -liphlpapi... " >&6; } if ${ac_cv_lib_iphlpapi_GetAdaptersInfo+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-liphlpapi $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 GetAdaptersInfo (); int main () { return GetAdaptersInfo (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_iphlpapi_GetAdaptersInfo=yes else ac_cv_lib_iphlpapi_GetAdaptersInfo=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_iphlpapi_GetAdaptersInfo" >&5 $as_echo "$ac_cv_lib_iphlpapi_GetAdaptersInfo" >&6; } if test "x$ac_cv_lib_iphlpapi_GetAdaptersInfo" = xyes; then : cat >>confdefs.h <<_ACEOF @%:@define HAVE_LIBIPHLPAPI 1 _ACEOF LIBS="-liphlpapi $LIBS" fi # TODO: find symbol name # Checks for header files. for ac_header in arpa/inet.h fcntl.h limits.h netinet/in.h stddef.h stdint.h stdlib.h string.h strings.h sys/socket.h sys/time.h unistd.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF @%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done # Checks for typedefs, structures, and compiler characteristics. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 $as_echo_n "checking for inline... " >&6; } if ${ac_cv_c_inline+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifndef __cplusplus typedef int foo_t; static $ac_kw foo_t static_foo () {return 0; } $ac_kw foo_t foo () {return 0; } #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_inline=$ac_kw fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext test "$ac_cv_c_inline" != no && break done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 $as_echo "$ac_cv_c_inline" >&6; } case $ac_cv_c_inline in inline | yes) ;; *) case $ac_cv_c_inline in no) ac_val=;; *) ac_val=$ac_cv_c_inline;; esac cat >>confdefs.h <<_ACEOF #ifndef __cplusplus #define inline $ac_val #endif _ACEOF ;; esac ac_fn_c_check_type "$LINENO" "mode_t" "ac_cv_type_mode_t" "$ac_includes_default" if test "x$ac_cv_type_mode_t" = xyes; then : else cat >>confdefs.h <<_ACEOF @%:@define mode_t int _ACEOF fi ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" if test "x$ac_cv_type_size_t" = xyes; then : else cat >>confdefs.h <<_ACEOF @%:@define size_t unsigned int _ACEOF fi ac_fn_c_check_type "$LINENO" "ssize_t" "ac_cv_type_ssize_t" "$ac_includes_default" if test "x$ac_cv_type_ssize_t" = xyes; then : else cat >>confdefs.h <<_ACEOF @%:@define ssize_t int _ACEOF fi ac_fn_c_find_uintX_t "$LINENO" "16" "ac_cv_c_uint16_t" case $ac_cv_c_uint16_t in #( no|yes) ;; #( *) cat >>confdefs.h <<_ACEOF @%:@define uint16_t $ac_cv_c_uint16_t _ACEOF ;; esac ac_fn_c_find_uintX_t "$LINENO" "32" "ac_cv_c_uint32_t" case $ac_cv_c_uint32_t in #( no|yes) ;; #( *) $as_echo "@%:@define _UINT32_T 1" >>confdefs.h cat >>confdefs.h <<_ACEOF @%:@define uint32_t $ac_cv_c_uint32_t _ACEOF ;; esac ac_fn_c_find_uintX_t "$LINENO" "64" "ac_cv_c_uint64_t" case $ac_cv_c_uint64_t in #( no|yes) ;; #( *) $as_echo "@%:@define _UINT64_T 1" >>confdefs.h cat >>confdefs.h <<_ACEOF @%:@define uint64_t $ac_cv_c_uint64_t _ACEOF ;; esac ac_fn_c_find_uintX_t "$LINENO" "8" "ac_cv_c_uint8_t" case $ac_cv_c_uint8_t in #( no|yes) ;; #( *) $as_echo "@%:@define _UINT8_T 1" >>confdefs.h cat >>confdefs.h <<_ACEOF @%:@define uint8_t $ac_cv_c_uint8_t _ACEOF ;; esac ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default" if test "x$ac_cv_type_ptrdiff_t" = xyes; then : cat >>confdefs.h <<_ACEOF @%:@define HAVE_PTRDIFF_T 1 _ACEOF fi # testing ac_config_commands="$ac_config_commands tests/atconfig" ac_config_files="$ac_config_files tests/atlocal" # Checks for library functions. # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # for constant arguments. Useless! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5 $as_echo_n "checking for working alloca.h... " >&6; } if ${ac_cv_working_alloca_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @%:@include int main () { char *p = (char *) alloca (2 * sizeof (int)); if (p) return 0; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_working_alloca_h=yes else ac_cv_working_alloca_h=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: $ac_cv_working_alloca_h" >&5 $as_echo "$ac_cv_working_alloca_h" >&6; } if test $ac_cv_working_alloca_h = yes; then $as_echo "@%:@define HAVE_ALLOCA_H 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5 $as_echo_n "checking for alloca... " >&6; } if ${ac_cv_func_alloca_works+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __GNUC__ # define alloca __builtin_alloca #else # ifdef _MSC_VER # include # define alloca _alloca # else # ifdef HAVE_ALLOCA_H # include # else # ifdef _AIX #pragma alloca # else # ifndef alloca /* predefined by HP cc +Olibcalls */ void *alloca (size_t); # endif # endif # endif # endif #endif int main () { char *p = (char *) alloca (1); if (p) return 0; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_func_alloca_works=yes else ac_cv_func_alloca_works=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: $ac_cv_func_alloca_works" >&5 $as_echo "$ac_cv_func_alloca_works" >&6; } if test $ac_cv_func_alloca_works = yes; then $as_echo "@%:@define HAVE_ALLOCA 1" >>confdefs.h else # The SVR3 libPW and SVR4 libucb both contain incompatible functions # that cause trouble. Some versions do not even contain alloca or # contain a buggy version. If you still want to use their alloca, # use ar to extract alloca.o from them instead of compiling alloca.c. ALLOCA=\${LIBOBJDIR}alloca.$ac_objext $as_echo "@%:@define C_ALLOCA 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether \`alloca.c' needs Cray hooks" >&5 $as_echo_n "checking whether \`alloca.c' needs Cray hooks... " >&6; } if ${ac_cv_os_cray+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined CRAY && ! defined CRAY2 webecray #else wenotbecray #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "webecray" >/dev/null 2>&1; then : ac_cv_os_cray=yes else ac_cv_os_cray=no fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_os_cray" >&5 $as_echo "$ac_cv_os_cray" >&6; } if test $ac_cv_os_cray = yes; then for ac_func in _getb67 GETB67 getb67; do as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF @%:@define CRAY_STACKSEG_END $ac_func _ACEOF break fi done fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5 $as_echo_n "checking stack direction for C alloca... " >&6; } if ${ac_cv_c_stack_direction+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_c_stack_direction=0 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int find_stack_direction (int *addr, int depth) { int dir, dummy = 0; if (! addr) addr = &dummy; *addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1; dir = depth ? find_stack_direction (addr, depth - 1) : 0; return dir + dummy; } int main (int argc, char **argv) { return find_stack_direction (0, argc + !argv + 20) < 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_c_stack_direction=1 else ac_cv_c_stack_direction=-1 fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_stack_direction" >&5 $as_echo "$ac_cv_c_stack_direction" >&6; } cat >>confdefs.h <<_ACEOF @%:@define STACK_DIRECTION $ac_cv_c_stack_direction _ACEOF fi ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default" if test "x$ac_cv_type_pid_t" = xyes; then : else cat >>confdefs.h <<_ACEOF @%:@define pid_t int _ACEOF fi for ac_header in vfork.h do : ac_fn_c_check_header_mongrel "$LINENO" "vfork.h" "ac_cv_header_vfork_h" "$ac_includes_default" if test "x$ac_cv_header_vfork_h" = xyes; then : cat >>confdefs.h <<_ACEOF @%:@define HAVE_VFORK_H 1 _ACEOF fi done for ac_func in fork vfork do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF @%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done if test "x$ac_cv_func_fork" = xyes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working fork" >&5 $as_echo_n "checking for working fork... " >&6; } if ${ac_cv_func_fork_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_func_fork_works=cross else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { /* By Ruediger Kuhlmann. */ return fork () < 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_fork_works=yes else ac_cv_func_fork_works=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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_fork_works" >&5 $as_echo "$ac_cv_func_fork_works" >&6; } else ac_cv_func_fork_works=$ac_cv_func_fork fi if test "x$ac_cv_func_fork_works" = xcross; then case $host in *-*-amigaos* | *-*-msdosdjgpp*) # Override, as these systems have only a dummy fork() stub ac_cv_func_fork_works=no ;; *) ac_cv_func_fork_works=yes ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&5 $as_echo "$as_me: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&2;} fi ac_cv_func_vfork_works=$ac_cv_func_vfork if test "x$ac_cv_func_vfork" = xyes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working vfork" >&5 $as_echo_n "checking for working vfork... " >&6; } if ${ac_cv_func_vfork_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_func_vfork_works=cross else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Thanks to Paul Eggert for this test. */ $ac_includes_default #include #ifdef HAVE_VFORK_H # include #endif /* On some sparc systems, changes by the child to local and incoming argument registers are propagated back to the parent. The compiler is told about this with #include , but some compilers (e.g. gcc -O) don't grok . Test for this by using a static variable whose address is put into a register that is clobbered by the vfork. */ static void #ifdef __cplusplus sparc_address_test (int arg) # else sparc_address_test (arg) int arg; #endif { static pid_t child; if (!child) { child = vfork (); if (child < 0) { perror ("vfork"); _exit(2); } if (!child) { arg = getpid(); write(-1, "", 0); _exit (arg); } } } int main () { pid_t parent = getpid (); pid_t child; sparc_address_test (0); child = vfork (); if (child == 0) { /* Here is another test for sparc vfork register problems. This test uses lots of local variables, at least as many local variables as main has allocated so far including compiler temporaries. 4 locals are enough for gcc 1.40.3 on a Solaris 4.1.3 sparc, but we use 8 to be safe. A buggy compiler should reuse the register of parent for one of the local variables, since it will think that parent can't possibly be used any more in this routine. Assigning to the local variable will thus munge parent in the parent process. */ pid_t p = getpid(), p1 = getpid(), p2 = getpid(), p3 = getpid(), p4 = getpid(), p5 = getpid(), p6 = getpid(), p7 = getpid(); /* Convince the compiler that p..p7 are live; otherwise, it might use the same hardware register for all 8 local variables. */ if (p != p1 || p != p2 || p != p3 || p != p4 || p != p5 || p != p6 || p != p7) _exit(1); /* On some systems (e.g. IRIX 3.3), vfork doesn't separate parent from child file descriptors. If the child closes a descriptor before it execs or exits, this munges the parent's descriptor as well. Test for this by closing stdout in the child. */ _exit(close(fileno(stdout)) != 0); } else { int status; struct stat st; while (wait(&status) != child) ; return ( /* Was there some problem with vforking? */ child < 0 /* Did the child fail? (This shouldn't happen.) */ || status /* Did the vfork/compiler bug occur? */ || parent != getpid() /* Did the file descriptor bug occur? */ || fstat(fileno(stdout), &st) != 0 ); } } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_vfork_works=yes else ac_cv_func_vfork_works=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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_vfork_works" >&5 $as_echo "$ac_cv_func_vfork_works" >&6; } fi; if test "x$ac_cv_func_fork_works" = xcross; then ac_cv_func_vfork_works=$ac_cv_func_vfork { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&5 $as_echo "$as_me: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&2;} fi if test "x$ac_cv_func_vfork_works" = xyes; then $as_echo "@%:@define HAVE_WORKING_VFORK 1" >>confdefs.h else $as_echo "@%:@define vfork fork" >>confdefs.h fi if test "x$ac_cv_func_fork_works" = xyes; then $as_echo "@%:@define HAVE_WORKING_FORK 1" >>confdefs.h fi for ac_header in stdlib.h do : ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default" if test "x$ac_cv_header_stdlib_h" = xyes; then : cat >>confdefs.h <<_ACEOF @%:@define HAVE_STDLIB_H 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible malloc" >&5 $as_echo_n "checking for GNU libc compatible malloc... " >&6; } if ${ac_cv_func_malloc_0_nonnull+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_func_malloc_0_nonnull=no else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined STDC_HEADERS || defined HAVE_STDLIB_H # include #else char *malloc (); #endif int main () { return ! malloc (0); ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_malloc_0_nonnull=yes else ac_cv_func_malloc_0_nonnull=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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_malloc_0_nonnull" >&5 $as_echo "$ac_cv_func_malloc_0_nonnull" >&6; } if test $ac_cv_func_malloc_0_nonnull = yes; then : $as_echo "@%:@define HAVE_MALLOC 1" >>confdefs.h else $as_echo "@%:@define HAVE_MALLOC 0" >>confdefs.h case " $LIB@&t@OBJS " in *" malloc.$ac_objext "* ) ;; *) LIB@&t@OBJS="$LIB@&t@OBJS malloc.$ac_objext" ;; esac $as_echo "@%:@define malloc rpl_malloc" >>confdefs.h fi for ac_func in bzero clock_gettime gettimeofday inet_ntoa memmove memset select socket strchr strdup strtoul do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF @%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done ac_config_files="$ac_config_files Makefile src/tcpcrypt_version.h" 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 if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi 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= U= for ac_i in : $LIB@&t@OBJS; 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 LIB@&t@OBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs { $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 $as_echo_n "checking that generated files are newer than configure... " >&6; } if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 $as_echo "done" >&6; } if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' else am__EXEEXT_TRUE='#' am__EXEEXT_FALSE= fi if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 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 if test -z "${am__fastdepCCAS_TRUE}" && test -z "${am__fastdepCCAS_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCCAS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${OS_LINUX_TRUE}" && test -z "${OS_LINUX_FALSE}"; then as_fn_error $? "conditional \"OS_LINUX\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${OS_BSD_TRUE}" && test -z "${OS_BSD_FALSE}"; then as_fn_error $? "conditional \"OS_BSD\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${OS_MINGW_TRUE}" && test -z "${OS_MINGW_FALSE}"; then as_fn_error $? "conditional \"OS_MINGW\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${NO_ASM_TRUE}" && test -z "${NO_ASM_FALSE}"; then as_fn_error $? "conditional \"NO_ASM\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_NI_TRUE}" && test -z "${HAVE_NI_FALSE}"; then as_fn_error $? "conditional \"HAVE_NI\" 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. as_myself= 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 STATUS ERROR [LINENO LOG_FD] @%:@ ---------------------------------------- @%:@ Output "`basename @S|@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=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } @%:@ as_fn_error @%:@ as_fn_set_status STATUS @%:@ ----------------------- @%:@ Set @S|@? 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 @S|@as_val. Take advantage of shells that can avoid forks. The arguments @%:@ must be portable across @S|@(()) 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 -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null @%:@ as_fn_mkdir_p @%:@ ------------- @%:@ Create "@S|@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 @%:@ as_fn_executable_p FILE @%:@ ----------------------- @%:@ Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } @%:@ as_fn_executable_p as_test_x='test -x' as_executable_p=as_fn_executable_p # 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 tcpcrypt $as_me 0.5, which was generated by GNU Autoconf 2.69. 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 . tcpcrypt home page: ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ tcpcrypt config.status 0.5 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" Copyright (C) 2012 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=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= 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"` ;; '') as_fn_error $? "missing file argument" ;; 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' macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' shared_archive_member_spec='`$ECHO "$shared_archive_member_spec" | $SED "$delay_single_quote_subst"`' SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_import='`$ECHO "$lt_cv_sys_global_symbol_to_import" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' lt_cv_nm_interface='`$ECHO "$lt_cv_nm_interface" | $SED "$delay_single_quote_subst"`' nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' lt_cv_truncate_bin='`$ECHO "$lt_cv_truncate_bin" | $SED "$delay_single_quote_subst"`' objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' configure_time_dlsearch_path='`$ECHO "$configure_time_dlsearch_path" | $SED "$delay_single_quote_subst"`' configure_time_lt_sys_library_path='`$ECHO "$configure_time_lt_sys_library_path" | $SED "$delay_single_quote_subst"`' hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$1 _LTECHO_EOF' } # Quote evaled strings. for var in SHELL \ ECHO \ PATH_SEPARATOR \ SED \ GREP \ EGREP \ FGREP \ LD \ NM \ LN_S \ lt_SP2NL \ lt_NL2SP \ reload_flag \ OBJDUMP \ deplibs_check_method \ file_magic_cmd \ file_magic_glob \ want_nocaseglob \ DLLTOOL \ sharedlib_from_linklib_cmd \ AR \ AR_FLAGS \ archiver_list_spec \ STRIP \ RANLIB \ CC \ CFLAGS \ compiler \ lt_cv_sys_global_symbol_pipe \ lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_import \ lt_cv_sys_global_symbol_to_c_name_address \ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ lt_cv_nm_interface \ nm_file_list_spec \ lt_cv_truncate_bin \ lt_prog_compiler_no_builtin_flag \ lt_prog_compiler_pic \ lt_prog_compiler_wl \ lt_prog_compiler_static \ lt_cv_prog_compiler_c_o \ need_locks \ MANIFEST_TOOL \ 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_separator \ exclude_expsyms \ include_expsyms \ file_list_spec \ variables_saved_for_relink \ libname_spec \ library_names_spec \ soname_spec \ install_override_mode \ finish_eval \ old_striplib \ striplib; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes ;; *) 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 \ postlink_cmds \ postinstall_cmds \ postuninstall_cmds \ finish_cmds \ sys_lib_search_path_spec \ configure_time_dlsearch_path \ configure_time_lt_sys_library_path; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done ac_aux_dir='$ac_aux_dir' # See if we are running on zsh, and set the options that 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' 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" ;; "tests/atconfig") CONFIG_COMMANDS="$CONFIG_COMMANDS tests/atconfig" ;; "tests/atlocal") CONFIG_FILES="$CONFIG_FILES tests/atlocal" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "src/tcpcrypt_version.h") CONFIG_FILES="$CONFIG_FILES src/tcpcrypt_version.h" ;; *) 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= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_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 -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # 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 {' >"$ac_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 >>"\$ac_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 >>"\$ac_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 < "$ac_tmp/subs1.awk" > "$ac_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 sole $(srcdir), # ${srcdir} and @srcdir@ entries 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[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// 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 >"$ac_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_tt=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_tt"; 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="$ac_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 1 "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 >"$ac_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 "$ac_tmp/subs.awk" \ >$ac_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' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_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 "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_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 "$ac_tmp/defines.awk"' "$ac_file_inputs" } >"$ac_tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 if diff "$ac_file" "$ac_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 "$ac_tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_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"" || { # Older Autoconf 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"` # 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'`; 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 that 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 # Generated automatically by $as_me ($PACKAGE) $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. # Provide generalized library-building support services. # Written by Gordon Matzigkeit, 1996 # Copyright (C) 2014 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 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 this program. If not, see . # The names of the tagged configurations supported by this script. available_tags='' # Configured defaults for sys_lib_dlsearch_path munging. : \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"} # ### BEGIN LIBTOOL CONFIG # 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 # Whether or not to build static libraries. build_old_libs=$enable_static # What type of objects to build. pic_mode=$pic_mode # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # Shared archive member basename,for filename based shared library versioning on AIX. shared_archive_member_spec=$shared_archive_member_spec # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # An echo program that protects backslashes. ECHO=$lt_ECHO # The PATH separator for the build system. PATH_SEPARATOR=$lt_PATH_SEPARATOR # 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 # convert \$build file names to \$host format. to_host_file_cmd=$lt_cv_to_host_file_cmd # convert \$build files to toolchain format. to_tool_file_cmd=$lt_cv_to_tool_file_cmd # 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 # How to find potential files when deplibs_check_method = "file_magic". file_magic_glob=$lt_file_magic_glob # Find potential files using nocaseglob when deplibs_check_method = "file_magic". want_nocaseglob=$lt_want_nocaseglob # DLL creation program. DLLTOOL=$lt_DLLTOOL # Command to associate shared and link libraries. sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd # The archiver. AR=$lt_AR # Flags to create an archive. AR_FLAGS=$lt_AR_FLAGS # How to feed a file listing to the archiver. archiver_list_spec=$lt_archiver_list_spec # 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 # Whether to use a lock for old archive extraction. lock_old_archive_extraction=$lock_old_archive_extraction # 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 into a list of symbols to manually relocate. global_symbol_to_import=$lt_lt_cv_sys_global_symbol_to_import # 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 lister interface. nm_interface=$lt_lt_cv_nm_interface # Specify filename containing input files for \$NM. nm_file_list_spec=$lt_nm_file_list_spec # The root where to search for dependent libraries,and where our libraries should be installed. lt_sysroot=$lt_sysroot # Command to truncate a binary pipe. lt_truncate_bin=$lt_lt_cv_truncate_bin # The name of the directory that contains temporary libtool files. objdir=$objdir # 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 # Manifest tool. MANIFEST_TOOL=$lt_MANIFEST_TOOL # 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 # Permission mode override for installation of shared libraries. install_override_mode=$lt_install_override_mode # 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 # Detected run-time system search path for libraries. sys_lib_dlsearch_path_spec=$lt_configure_time_dlsearch_path # Explicit LT_SYS_LIBRARY_PATH set during ./configure time. configure_time_lt_sys_library_path=$lt_configure_time_lt_sys_library_path # 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 # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # 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 # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl # 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 # 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 # 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 # Commands necessary for finishing linking programs. postlink_cmds=$lt_postlink_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 cat <<'_LT_EOF' >> "$cfgfile" # ### BEGIN FUNCTIONS SHARED WITH CONFIGURE # func_munge_path_list VARIABLE PATH # ----------------------------------- # VARIABLE is name of variable containing _space_ separated list of # directories to be munged by the contents of PATH, which is string # having a format: # "DIR[:DIR]:" # string "DIR[ DIR]" will be prepended to VARIABLE # ":DIR[:DIR]" # string "DIR[ DIR]" will be appended to VARIABLE # "DIRP[:DIRP]::[DIRA:]DIRA" # string "DIRP[ DIRP]" will be prepended to VARIABLE and string # "DIRA[ DIRA]" will be appended to VARIABLE # "DIR[:DIR]" # VARIABLE will be replaced by "DIR[ DIR]" func_munge_path_list () { case x@S|@2 in x) ;; *:) eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'` \@S|@@S|@1\" ;; x:*) eval @S|@1=\"\@S|@@S|@1 `$ECHO @S|@2 | $SED 's/:/ /g'`\" ;; *::*) eval @S|@1=\"\@S|@@S|@1\ `$ECHO @S|@2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" eval @S|@1=\"`$ECHO @S|@2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \@S|@@S|@1\" ;; *) eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'`\" ;; esac } # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. func_cc_basename () { for cc_temp in @S|@*""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` } # ### END FUNCTIONS SHARED WITH CONFIGURE _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 set != "${COLLECT_NAMES+set}"; 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 '$q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ;; "tests/atconfig":C) cat >tests/atconfig </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 1 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 tcpcrypt-0.5/autom4te.cache/traces.10000644000175200017520000015303012742073030016433 0ustar sorbosorbom4trace:aclocal.m4:1269: -1- m4_include([m4/libtool.m4]) m4trace:aclocal.m4:1270: -1- m4_include([m4/ltoptions.m4]) m4trace:aclocal.m4:1271: -1- m4_include([m4/ltsugar.m4]) m4trace:aclocal.m4:1272: -1- m4_include([m4/ltversion.m4]) m4trace:aclocal.m4:1273: -1- m4_include([m4/lt~obsolete.m4]) m4trace:configure.ac:4: -1- AC_INIT([tcpcrypt], [0.5], [tcpcrypt-users@lists.stanford.edu], [tcpcrypt], [http://tcpcrypt.org]) m4trace:configure.ac:4: -1- m4_pattern_forbid([^_?A[CHUM]_]) m4trace:configure.ac:4: -1- m4_pattern_forbid([_AC_]) m4trace:configure.ac:4: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS']) m4trace:configure.ac:4: -1- m4_pattern_allow([^AS_FLAGS$]) m4trace:configure.ac:4: -1- m4_pattern_forbid([^_?m4_]) m4trace:configure.ac:4: -1- m4_pattern_forbid([^dnl$]) m4trace:configure.ac:4: -1- m4_pattern_forbid([^_?AS_]) m4trace:configure.ac:4: -1- AC_SUBST([SHELL]) m4trace:configure.ac:4: -1- AC_SUBST_TRACE([SHELL]) m4trace:configure.ac:4: -1- m4_pattern_allow([^SHELL$]) m4trace:configure.ac:4: -1- AC_SUBST([PATH_SEPARATOR]) m4trace:configure.ac:4: -1- AC_SUBST_TRACE([PATH_SEPARATOR]) m4trace:configure.ac:4: -1- m4_pattern_allow([^PATH_SEPARATOR$]) m4trace:configure.ac:4: -1- AC_SUBST([PACKAGE_NAME], [m4_ifdef([AC_PACKAGE_NAME], ['AC_PACKAGE_NAME'])]) m4trace:configure.ac:4: -1- AC_SUBST_TRACE([PACKAGE_NAME]) m4trace:configure.ac:4: -1- m4_pattern_allow([^PACKAGE_NAME$]) m4trace:configure.ac:4: -1- AC_SUBST([PACKAGE_TARNAME], [m4_ifdef([AC_PACKAGE_TARNAME], ['AC_PACKAGE_TARNAME'])]) m4trace:configure.ac:4: -1- AC_SUBST_TRACE([PACKAGE_TARNAME]) m4trace:configure.ac:4: -1- m4_pattern_allow([^PACKAGE_TARNAME$]) m4trace:configure.ac:4: -1- AC_SUBST([PACKAGE_VERSION], [m4_ifdef([AC_PACKAGE_VERSION], ['AC_PACKAGE_VERSION'])]) m4trace:configure.ac:4: -1- AC_SUBST_TRACE([PACKAGE_VERSION]) m4trace:configure.ac:4: -1- m4_pattern_allow([^PACKAGE_VERSION$]) m4trace:configure.ac:4: -1- AC_SUBST([PACKAGE_STRING], [m4_ifdef([AC_PACKAGE_STRING], ['AC_PACKAGE_STRING'])]) m4trace:configure.ac:4: -1- AC_SUBST_TRACE([PACKAGE_STRING]) m4trace:configure.ac:4: -1- m4_pattern_allow([^PACKAGE_STRING$]) m4trace:configure.ac:4: -1- AC_SUBST([PACKAGE_BUGREPORT], [m4_ifdef([AC_PACKAGE_BUGREPORT], ['AC_PACKAGE_BUGREPORT'])]) m4trace:configure.ac:4: -1- AC_SUBST_TRACE([PACKAGE_BUGREPORT]) m4trace:configure.ac:4: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$]) m4trace:configure.ac:4: -1- AC_SUBST([PACKAGE_URL], [m4_ifdef([AC_PACKAGE_URL], ['AC_PACKAGE_URL'])]) m4trace:configure.ac:4: -1- AC_SUBST_TRACE([PACKAGE_URL]) m4trace:configure.ac:4: -1- m4_pattern_allow([^PACKAGE_URL$]) m4trace:configure.ac:4: -1- AC_SUBST([exec_prefix], [NONE]) m4trace:configure.ac:4: -1- AC_SUBST_TRACE([exec_prefix]) m4trace:configure.ac:4: -1- m4_pattern_allow([^exec_prefix$]) m4trace:configure.ac:4: -1- AC_SUBST([prefix], [NONE]) m4trace:configure.ac:4: -1- AC_SUBST_TRACE([prefix]) m4trace:configure.ac:4: -1- m4_pattern_allow([^prefix$]) m4trace:configure.ac:4: -1- AC_SUBST([program_transform_name], [s,x,x,]) m4trace:configure.ac:4: -1- AC_SUBST_TRACE([program_transform_name]) m4trace:configure.ac:4: -1- m4_pattern_allow([^program_transform_name$]) m4trace:configure.ac:4: -1- AC_SUBST([bindir], ['${exec_prefix}/bin']) m4trace:configure.ac:4: -1- AC_SUBST_TRACE([bindir]) m4trace:configure.ac:4: -1- m4_pattern_allow([^bindir$]) m4trace:configure.ac:4: -1- AC_SUBST([sbindir], ['${exec_prefix}/sbin']) m4trace:configure.ac:4: -1- AC_SUBST_TRACE([sbindir]) m4trace:configure.ac:4: -1- m4_pattern_allow([^sbindir$]) m4trace:configure.ac:4: -1- AC_SUBST([libexecdir], ['${exec_prefix}/libexec']) m4trace:configure.ac:4: -1- AC_SUBST_TRACE([libexecdir]) m4trace:configure.ac:4: -1- m4_pattern_allow([^libexecdir$]) m4trace:configure.ac:4: -1- AC_SUBST([datarootdir], ['${prefix}/share']) m4trace:configure.ac:4: -1- AC_SUBST_TRACE([datarootdir]) m4trace:configure.ac:4: -1- m4_pattern_allow([^datarootdir$]) m4trace:configure.ac:4: -1- AC_SUBST([datadir], ['${datarootdir}']) m4trace:configure.ac:4: -1- AC_SUBST_TRACE([datadir]) m4trace:configure.ac:4: -1- m4_pattern_allow([^datadir$]) m4trace:configure.ac:4: -1- AC_SUBST([sysconfdir], ['${prefix}/etc']) m4trace:configure.ac:4: -1- AC_SUBST_TRACE([sysconfdir]) m4trace:configure.ac:4: -1- m4_pattern_allow([^sysconfdir$]) m4trace:configure.ac:4: -1- AC_SUBST([sharedstatedir], ['${prefix}/com']) m4trace:configure.ac:4: -1- AC_SUBST_TRACE([sharedstatedir]) m4trace:configure.ac:4: -1- m4_pattern_allow([^sharedstatedir$]) m4trace:configure.ac:4: -1- AC_SUBST([localstatedir], ['${prefix}/var']) m4trace:configure.ac:4: -1- AC_SUBST_TRACE([localstatedir]) m4trace:configure.ac:4: -1- m4_pattern_allow([^localstatedir$]) m4trace:configure.ac:4: -1- AC_SUBST([includedir], ['${prefix}/include']) m4trace:configure.ac:4: -1- AC_SUBST_TRACE([includedir]) m4trace:configure.ac:4: -1- m4_pattern_allow([^includedir$]) m4trace:configure.ac:4: -1- AC_SUBST([oldincludedir], ['/usr/include']) m4trace:configure.ac:4: -1- AC_SUBST_TRACE([oldincludedir]) m4trace:configure.ac:4: -1- m4_pattern_allow([^oldincludedir$]) m4trace:configure.ac:4: -1- AC_SUBST([docdir], [m4_ifset([AC_PACKAGE_TARNAME], ['${datarootdir}/doc/${PACKAGE_TARNAME}'], ['${datarootdir}/doc/${PACKAGE}'])]) m4trace:configure.ac:4: -1- AC_SUBST_TRACE([docdir]) m4trace:configure.ac:4: -1- m4_pattern_allow([^docdir$]) m4trace:configure.ac:4: -1- AC_SUBST([infodir], ['${datarootdir}/info']) m4trace:configure.ac:4: -1- AC_SUBST_TRACE([infodir]) m4trace:configure.ac:4: -1- m4_pattern_allow([^infodir$]) m4trace:configure.ac:4: -1- AC_SUBST([htmldir], ['${docdir}']) m4trace:configure.ac:4: -1- AC_SUBST_TRACE([htmldir]) m4trace:configure.ac:4: -1- m4_pattern_allow([^htmldir$]) m4trace:configure.ac:4: -1- AC_SUBST([dvidir], ['${docdir}']) m4trace:configure.ac:4: -1- AC_SUBST_TRACE([dvidir]) m4trace:configure.ac:4: -1- m4_pattern_allow([^dvidir$]) m4trace:configure.ac:4: -1- AC_SUBST([pdfdir], ['${docdir}']) m4trace:configure.ac:4: -1- AC_SUBST_TRACE([pdfdir]) m4trace:configure.ac:4: -1- m4_pattern_allow([^pdfdir$]) m4trace:configure.ac:4: -1- AC_SUBST([psdir], ['${docdir}']) m4trace:configure.ac:4: -1- AC_SUBST_TRACE([psdir]) m4trace:configure.ac:4: -1- m4_pattern_allow([^psdir$]) m4trace:configure.ac:4: -1- AC_SUBST([libdir], ['${exec_prefix}/lib']) m4trace:configure.ac:4: -1- AC_SUBST_TRACE([libdir]) m4trace:configure.ac:4: -1- m4_pattern_allow([^libdir$]) m4trace:configure.ac:4: -1- AC_SUBST([localedir], ['${datarootdir}/locale']) m4trace:configure.ac:4: -1- AC_SUBST_TRACE([localedir]) m4trace:configure.ac:4: -1- m4_pattern_allow([^localedir$]) m4trace:configure.ac:4: -1- AC_SUBST([mandir], ['${datarootdir}/man']) m4trace:configure.ac:4: -1- AC_SUBST_TRACE([mandir]) m4trace:configure.ac:4: -1- m4_pattern_allow([^mandir$]) m4trace:configure.ac:4: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_NAME]) m4trace:configure.ac:4: -1- m4_pattern_allow([^PACKAGE_NAME$]) m4trace:configure.ac:4: -1- AH_OUTPUT([PACKAGE_NAME], [/* Define to the full name of this package. */ @%:@undef PACKAGE_NAME]) m4trace:configure.ac:4: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_TARNAME]) m4trace:configure.ac:4: -1- m4_pattern_allow([^PACKAGE_TARNAME$]) m4trace:configure.ac:4: -1- AH_OUTPUT([PACKAGE_TARNAME], [/* Define to the one symbol short name of this package. */ @%:@undef PACKAGE_TARNAME]) m4trace:configure.ac:4: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_VERSION]) m4trace:configure.ac:4: -1- m4_pattern_allow([^PACKAGE_VERSION$]) m4trace:configure.ac:4: -1- AH_OUTPUT([PACKAGE_VERSION], [/* Define to the version of this package. */ @%:@undef PACKAGE_VERSION]) m4trace:configure.ac:4: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_STRING]) m4trace:configure.ac:4: -1- m4_pattern_allow([^PACKAGE_STRING$]) m4trace:configure.ac:4: -1- AH_OUTPUT([PACKAGE_STRING], [/* Define to the full name and version of this package. */ @%:@undef PACKAGE_STRING]) m4trace:configure.ac:4: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_BUGREPORT]) m4trace:configure.ac:4: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$]) m4trace:configure.ac:4: -1- AH_OUTPUT([PACKAGE_BUGREPORT], [/* Define to the address where bug reports for this package should be sent. */ @%:@undef PACKAGE_BUGREPORT]) m4trace:configure.ac:4: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_URL]) m4trace:configure.ac:4: -1- m4_pattern_allow([^PACKAGE_URL$]) m4trace:configure.ac:4: -1- AH_OUTPUT([PACKAGE_URL], [/* Define to the home page for this package. */ @%:@undef PACKAGE_URL]) m4trace:configure.ac:4: -1- AC_SUBST([DEFS]) m4trace:configure.ac:4: -1- AC_SUBST_TRACE([DEFS]) m4trace:configure.ac:4: -1- m4_pattern_allow([^DEFS$]) m4trace:configure.ac:4: -1- AC_SUBST([ECHO_C]) m4trace:configure.ac:4: -1- AC_SUBST_TRACE([ECHO_C]) m4trace:configure.ac:4: -1- m4_pattern_allow([^ECHO_C$]) m4trace:configure.ac:4: -1- AC_SUBST([ECHO_N]) m4trace:configure.ac:4: -1- AC_SUBST_TRACE([ECHO_N]) m4trace:configure.ac:4: -1- m4_pattern_allow([^ECHO_N$]) m4trace:configure.ac:4: -1- AC_SUBST([ECHO_T]) m4trace:configure.ac:4: -1- AC_SUBST_TRACE([ECHO_T]) m4trace:configure.ac:4: -1- m4_pattern_allow([^ECHO_T$]) m4trace:configure.ac:4: -1- AC_SUBST([LIBS]) m4trace:configure.ac:4: -1- AC_SUBST_TRACE([LIBS]) m4trace:configure.ac:4: -1- m4_pattern_allow([^LIBS$]) m4trace:configure.ac:4: -1- AC_SUBST([build_alias]) m4trace:configure.ac:4: -1- AC_SUBST_TRACE([build_alias]) m4trace:configure.ac:4: -1- m4_pattern_allow([^build_alias$]) m4trace:configure.ac:4: -1- AC_SUBST([host_alias]) m4trace:configure.ac:4: -1- AC_SUBST_TRACE([host_alias]) m4trace:configure.ac:4: -1- m4_pattern_allow([^host_alias$]) m4trace:configure.ac:4: -1- AC_SUBST([target_alias]) m4trace:configure.ac:4: -1- AC_SUBST_TRACE([target_alias]) m4trace:configure.ac:4: -1- m4_pattern_allow([^target_alias$]) m4trace:configure.ac:6: -1- AC_CONFIG_HEADERS([config.h]) m4trace:configure.ac:7: -1- AC_CONFIG_AUX_DIR([config]) m4trace:configure.ac:10: -1- AM_INIT_AUTOMAKE([1.9 foreign dist-xz -Wall subdir-objects]) m4trace:configure.ac:10: -1- m4_pattern_allow([^AM_[A-Z]+FLAGS$]) m4trace:configure.ac:10: -1- AM_AUTOMAKE_VERSION([1.15]) m4trace:configure.ac:10: -1- AC_REQUIRE_AUX_FILE([install-sh]) m4trace:configure.ac:10: -1- AC_SUBST([INSTALL_PROGRAM]) m4trace:configure.ac:10: -1- AC_SUBST_TRACE([INSTALL_PROGRAM]) m4trace:configure.ac:10: -1- m4_pattern_allow([^INSTALL_PROGRAM$]) m4trace:configure.ac:10: -1- AC_SUBST([INSTALL_SCRIPT]) m4trace:configure.ac:10: -1- AC_SUBST_TRACE([INSTALL_SCRIPT]) m4trace:configure.ac:10: -1- m4_pattern_allow([^INSTALL_SCRIPT$]) m4trace:configure.ac:10: -1- AC_SUBST([INSTALL_DATA]) m4trace:configure.ac:10: -1- AC_SUBST_TRACE([INSTALL_DATA]) m4trace:configure.ac:10: -1- m4_pattern_allow([^INSTALL_DATA$]) m4trace:configure.ac:10: -1- AC_SUBST([am__isrc], [' -I$(srcdir)']) m4trace:configure.ac:10: -1- AC_SUBST_TRACE([am__isrc]) m4trace:configure.ac:10: -1- m4_pattern_allow([^am__isrc$]) m4trace:configure.ac:10: -1- _AM_SUBST_NOTMAKE([am__isrc]) m4trace:configure.ac:10: -1- AC_SUBST([CYGPATH_W]) m4trace:configure.ac:10: -1- AC_SUBST_TRACE([CYGPATH_W]) m4trace:configure.ac:10: -1- m4_pattern_allow([^CYGPATH_W$]) m4trace:configure.ac:10: -1- AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME']) m4trace:configure.ac:10: -1- AC_SUBST_TRACE([PACKAGE]) m4trace:configure.ac:10: -1- m4_pattern_allow([^PACKAGE$]) m4trace:configure.ac:10: -1- AC_SUBST([VERSION], ['AC_PACKAGE_VERSION']) m4trace:configure.ac:10: -1- AC_SUBST_TRACE([VERSION]) m4trace:configure.ac:10: -1- m4_pattern_allow([^VERSION$]) m4trace:configure.ac:10: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE]) m4trace:configure.ac:10: -1- m4_pattern_allow([^PACKAGE$]) m4trace:configure.ac:10: -1- AH_OUTPUT([PACKAGE], [/* Name of package */ @%:@undef PACKAGE]) m4trace:configure.ac:10: -1- AC_DEFINE_TRACE_LITERAL([VERSION]) m4trace:configure.ac:10: -1- m4_pattern_allow([^VERSION$]) m4trace:configure.ac:10: -1- AH_OUTPUT([VERSION], [/* Version number of package */ @%:@undef VERSION]) m4trace:configure.ac:10: -1- AC_REQUIRE_AUX_FILE([missing]) m4trace:configure.ac:10: -1- AC_SUBST([ACLOCAL]) m4trace:configure.ac:10: -1- AC_SUBST_TRACE([ACLOCAL]) m4trace:configure.ac:10: -1- m4_pattern_allow([^ACLOCAL$]) m4trace:configure.ac:10: -1- AC_SUBST([AUTOCONF]) m4trace:configure.ac:10: -1- AC_SUBST_TRACE([AUTOCONF]) m4trace:configure.ac:10: -1- m4_pattern_allow([^AUTOCONF$]) m4trace:configure.ac:10: -1- AC_SUBST([AUTOMAKE]) m4trace:configure.ac:10: -1- AC_SUBST_TRACE([AUTOMAKE]) m4trace:configure.ac:10: -1- m4_pattern_allow([^AUTOMAKE$]) m4trace:configure.ac:10: -1- AC_SUBST([AUTOHEADER]) m4trace:configure.ac:10: -1- AC_SUBST_TRACE([AUTOHEADER]) m4trace:configure.ac:10: -1- m4_pattern_allow([^AUTOHEADER$]) m4trace:configure.ac:10: -1- AC_SUBST([MAKEINFO]) m4trace:configure.ac:10: -1- AC_SUBST_TRACE([MAKEINFO]) m4trace:configure.ac:10: -1- m4_pattern_allow([^MAKEINFO$]) m4trace:configure.ac:10: -1- AC_SUBST([install_sh]) m4trace:configure.ac:10: -1- AC_SUBST_TRACE([install_sh]) m4trace:configure.ac:10: -1- m4_pattern_allow([^install_sh$]) m4trace:configure.ac:10: -1- AC_SUBST([STRIP]) m4trace:configure.ac:10: -1- AC_SUBST_TRACE([STRIP]) m4trace:configure.ac:10: -1- m4_pattern_allow([^STRIP$]) m4trace:configure.ac:10: -1- AC_SUBST([INSTALL_STRIP_PROGRAM]) m4trace:configure.ac:10: -1- AC_SUBST_TRACE([INSTALL_STRIP_PROGRAM]) m4trace:configure.ac:10: -1- m4_pattern_allow([^INSTALL_STRIP_PROGRAM$]) m4trace:configure.ac:10: -1- AC_REQUIRE_AUX_FILE([install-sh]) m4trace:configure.ac:10: -1- AC_SUBST([MKDIR_P]) m4trace:configure.ac:10: -1- AC_SUBST_TRACE([MKDIR_P]) m4trace:configure.ac:10: -1- m4_pattern_allow([^MKDIR_P$]) m4trace:configure.ac:10: -1- AC_SUBST([mkdir_p], ['$(MKDIR_P)']) m4trace:configure.ac:10: -1- AC_SUBST_TRACE([mkdir_p]) m4trace:configure.ac:10: -1- m4_pattern_allow([^mkdir_p$]) m4trace:configure.ac:10: -1- AC_SUBST([AWK]) m4trace:configure.ac:10: -1- AC_SUBST_TRACE([AWK]) m4trace:configure.ac:10: -1- m4_pattern_allow([^AWK$]) m4trace:configure.ac:10: -1- AC_SUBST([SET_MAKE]) m4trace:configure.ac:10: -1- AC_SUBST_TRACE([SET_MAKE]) m4trace:configure.ac:10: -1- m4_pattern_allow([^SET_MAKE$]) m4trace:configure.ac:10: -1- AC_SUBST([am__leading_dot]) m4trace:configure.ac:10: -1- AC_SUBST_TRACE([am__leading_dot]) m4trace:configure.ac:10: -1- m4_pattern_allow([^am__leading_dot$]) m4trace:configure.ac:10: -1- AC_SUBST([AMTAR], ['$${TAR-tar}']) m4trace:configure.ac:10: -1- AC_SUBST_TRACE([AMTAR]) m4trace:configure.ac:10: -1- m4_pattern_allow([^AMTAR$]) m4trace:configure.ac:10: -1- AC_SUBST([am__tar]) m4trace:configure.ac:10: -1- AC_SUBST_TRACE([am__tar]) m4trace:configure.ac:10: -1- m4_pattern_allow([^am__tar$]) m4trace:configure.ac:10: -1- AC_SUBST([am__untar]) m4trace:configure.ac:10: -1- AC_SUBST_TRACE([am__untar]) m4trace:configure.ac:10: -1- m4_pattern_allow([^am__untar$]) m4trace:configure.ac:10: -1- AM_SILENT_RULES m4trace:configure.ac:10: -1- AC_SUBST([AM_V]) m4trace:configure.ac:10: -1- AC_SUBST_TRACE([AM_V]) m4trace:configure.ac:10: -1- m4_pattern_allow([^AM_V$]) m4trace:configure.ac:10: -1- _AM_SUBST_NOTMAKE([AM_V]) m4trace:configure.ac:10: -1- AC_SUBST([AM_DEFAULT_V]) m4trace:configure.ac:10: -1- AC_SUBST_TRACE([AM_DEFAULT_V]) m4trace:configure.ac:10: -1- m4_pattern_allow([^AM_DEFAULT_V$]) m4trace:configure.ac:10: -1- _AM_SUBST_NOTMAKE([AM_DEFAULT_V]) m4trace:configure.ac:10: -1- AC_SUBST([AM_DEFAULT_VERBOSITY]) m4trace:configure.ac:10: -1- AC_SUBST_TRACE([AM_DEFAULT_VERBOSITY]) m4trace:configure.ac:10: -1- m4_pattern_allow([^AM_DEFAULT_VERBOSITY$]) m4trace:configure.ac:10: -1- AC_SUBST([AM_BACKSLASH]) m4trace:configure.ac:10: -1- AC_SUBST_TRACE([AM_BACKSLASH]) m4trace:configure.ac:10: -1- m4_pattern_allow([^AM_BACKSLASH$]) m4trace:configure.ac:10: -1- _AM_SUBST_NOTMAKE([AM_BACKSLASH]) m4trace:configure.ac:11: -1- AM_MAINTAINER_MODE([disable]) m4trace:configure.ac:11: -1- AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) m4trace:configure.ac:11: -1- AC_SUBST([MAINTAINER_MODE_TRUE]) m4trace:configure.ac:11: -1- AC_SUBST_TRACE([MAINTAINER_MODE_TRUE]) m4trace:configure.ac:11: -1- m4_pattern_allow([^MAINTAINER_MODE_TRUE$]) m4trace:configure.ac:11: -1- AC_SUBST([MAINTAINER_MODE_FALSE]) m4trace:configure.ac:11: -1- AC_SUBST_TRACE([MAINTAINER_MODE_FALSE]) m4trace:configure.ac:11: -1- m4_pattern_allow([^MAINTAINER_MODE_FALSE$]) m4trace:configure.ac:11: -1- _AM_SUBST_NOTMAKE([MAINTAINER_MODE_TRUE]) m4trace:configure.ac:11: -1- _AM_SUBST_NOTMAKE([MAINTAINER_MODE_FALSE]) m4trace:configure.ac:11: -1- AC_SUBST([MAINT]) m4trace:configure.ac:11: -1- AC_SUBST_TRACE([MAINT]) m4trace:configure.ac:11: -1- m4_pattern_allow([^MAINT$]) m4trace:configure.ac:13: -1- AC_SUBST([DIVERT_PORT]) m4trace:configure.ac:13: -1- AC_SUBST_TRACE([DIVERT_PORT]) m4trace:configure.ac:13: -1- m4_pattern_allow([^DIVERT_PORT$]) m4trace:configure.ac:15: -1- AC_DEFINE_TRACE_LITERAL([TCPCRYPTD_DIVERT_PORT]) m4trace:configure.ac:15: -1- m4_pattern_allow([^TCPCRYPTD_DIVERT_PORT$]) m4trace:configure.ac:15: -1- AH_OUTPUT([TCPCRYPTD_DIVERT_PORT], [/* Default divert port for tcpcryptd */ @%:@undef TCPCRYPTD_DIVERT_PORT]) m4trace:configure.ac:17: -1- AC_DEFINE_TRACE_LITERAL([TCPCRYPTD_DIVERT_PORT]) m4trace:configure.ac:17: -1- m4_pattern_allow([^TCPCRYPTD_DIVERT_PORT$]) m4trace:configure.ac:17: -1- AH_OUTPUT([TCPCRYPTD_DIVERT_PORT], [/* Default divert port for tcpcryptd */ @%:@undef TCPCRYPTD_DIVERT_PORT]) m4trace:configure.ac:20: -1- AC_SUBST([CONTROL_SOCKET]) m4trace:configure.ac:20: -1- AC_SUBST_TRACE([CONTROL_SOCKET]) m4trace:configure.ac:20: -1- m4_pattern_allow([^CONTROL_SOCKET$]) m4trace:configure.ac:23: -1- AC_DEFINE_TRACE_LITERAL([TCPCRYPTD_CONTROL_SOCKET]) m4trace:configure.ac:23: -1- m4_pattern_allow([^TCPCRYPTD_CONTROL_SOCKET$]) m4trace:configure.ac:23: -1- AH_OUTPUT([TCPCRYPTD_CONTROL_SOCKET], [/* Default local control socket for tcpcryptd: unix-domain path or localhost port-number */ @%:@undef TCPCRYPTD_CONTROL_SOCKET]) m4trace:configure.ac:26: -1- AC_DEFINE_TRACE_LITERAL([TCPCRYPTD_CONTROL_SOCKET]) m4trace:configure.ac:26: -1- m4_pattern_allow([^TCPCRYPTD_CONTROL_SOCKET$]) m4trace:configure.ac:26: -1- AH_OUTPUT([TCPCRYPTD_CONTROL_SOCKET], [/* Default local control socket for tcpcryptd: unix-domain path or localhost port-number */ @%:@undef TCPCRYPTD_CONTROL_SOCKET]) m4trace:configure.ac:30: -1- AC_SUBST([JAIL_DIR]) m4trace:configure.ac:30: -1- AC_SUBST_TRACE([JAIL_DIR]) m4trace:configure.ac:30: -1- m4_pattern_allow([^JAIL_DIR$]) m4trace:configure.ac:32: -1- AC_DEFINE_TRACE_LITERAL([TCPCRYPTD_JAIL_DIR]) m4trace:configure.ac:32: -1- m4_pattern_allow([^TCPCRYPTD_JAIL_DIR$]) m4trace:configure.ac:32: -1- AH_OUTPUT([TCPCRYPTD_JAIL_DIR], [/* Default jail directory for tcpcryptd */ @%:@undef TCPCRYPTD_JAIL_DIR]) m4trace:configure.ac:34: -1- AC_DEFINE_TRACE_LITERAL([TCPCRYPTD_JAIL_DIR]) m4trace:configure.ac:34: -1- m4_pattern_allow([^TCPCRYPTD_JAIL_DIR$]) m4trace:configure.ac:34: -1- AH_OUTPUT([TCPCRYPTD_JAIL_DIR], [/* Default jail directory for tcpcryptd */ @%:@undef TCPCRYPTD_JAIL_DIR]) m4trace:configure.ac:37: -1- AC_SUBST([JAIL_USER]) m4trace:configure.ac:37: -1- AC_SUBST_TRACE([JAIL_USER]) m4trace:configure.ac:37: -1- m4_pattern_allow([^JAIL_USER$]) m4trace:configure.ac:39: -1- AC_DEFINE_TRACE_LITERAL([TCPCRYPTD_JAIL_USER]) m4trace:configure.ac:39: -1- m4_pattern_allow([^TCPCRYPTD_JAIL_USER$]) m4trace:configure.ac:39: -1- AH_OUTPUT([TCPCRYPTD_JAIL_USER], [/* Default jail username for tcpcryptd */ @%:@undef TCPCRYPTD_JAIL_USER]) m4trace:configure.ac:41: -1- AC_DEFINE_TRACE_LITERAL([TCPCRYPTD_JAIL_USER]) m4trace:configure.ac:41: -1- m4_pattern_allow([^TCPCRYPTD_JAIL_USER$]) m4trace:configure.ac:41: -1- AH_OUTPUT([TCPCRYPTD_JAIL_USER], [/* Default jail username for tcpcryptd */ @%:@undef TCPCRYPTD_JAIL_USER]) m4trace:configure.ac:44: -1- AC_SUBST([TEST_SERVER]) m4trace:configure.ac:44: -1- AC_SUBST_TRACE([TEST_SERVER]) m4trace:configure.ac:44: -1- m4_pattern_allow([^TEST_SERVER$]) m4trace:configure.ac:46: -1- AC_DEFINE_TRACE_LITERAL([TCPCRYPTD_TEST_SERVER]) m4trace:configure.ac:46: -1- m4_pattern_allow([^TCPCRYPTD_TEST_SERVER$]) m4trace:configure.ac:46: -1- AH_OUTPUT([TCPCRYPTD_TEST_SERVER], [/* Default network test server for tcpcryptd */ @%:@undef TCPCRYPTD_TEST_SERVER]) m4trace:configure.ac:48: -1- AC_DEFINE_TRACE_LITERAL([TCPCRYPTD_TEST_SERVER]) m4trace:configure.ac:48: -1- m4_pattern_allow([^TCPCRYPTD_TEST_SERVER$]) m4trace:configure.ac:48: -1- AH_OUTPUT([TCPCRYPTD_TEST_SERVER], [/* Default network test server for tcpcryptd */ @%:@undef TCPCRYPTD_TEST_SERVER]) m4trace:configure.ac:52: -1- AC_SUBST([CC]) m4trace:configure.ac:52: -1- AC_SUBST_TRACE([CC]) m4trace:configure.ac:52: -1- m4_pattern_allow([^CC$]) m4trace:configure.ac:52: -1- AC_SUBST([CFLAGS]) m4trace:configure.ac:52: -1- AC_SUBST_TRACE([CFLAGS]) m4trace:configure.ac:52: -1- m4_pattern_allow([^CFLAGS$]) m4trace:configure.ac:52: -1- AC_SUBST([LDFLAGS]) m4trace:configure.ac:52: -1- AC_SUBST_TRACE([LDFLAGS]) m4trace:configure.ac:52: -1- m4_pattern_allow([^LDFLAGS$]) m4trace:configure.ac:52: -1- AC_SUBST([LIBS]) m4trace:configure.ac:52: -1- AC_SUBST_TRACE([LIBS]) m4trace:configure.ac:52: -1- m4_pattern_allow([^LIBS$]) m4trace:configure.ac:52: -1- AC_SUBST([CPPFLAGS]) m4trace:configure.ac:52: -1- AC_SUBST_TRACE([CPPFLAGS]) m4trace:configure.ac:52: -1- m4_pattern_allow([^CPPFLAGS$]) m4trace:configure.ac:52: -1- AC_SUBST([CC]) m4trace:configure.ac:52: -1- AC_SUBST_TRACE([CC]) m4trace:configure.ac:52: -1- m4_pattern_allow([^CC$]) m4trace:configure.ac:52: -1- AC_SUBST([CC]) m4trace:configure.ac:52: -1- AC_SUBST_TRACE([CC]) m4trace:configure.ac:52: -1- m4_pattern_allow([^CC$]) m4trace:configure.ac:52: -1- AC_SUBST([CC]) m4trace:configure.ac:52: -1- AC_SUBST_TRACE([CC]) m4trace:configure.ac:52: -1- m4_pattern_allow([^CC$]) m4trace:configure.ac:52: -1- AC_SUBST([CC]) m4trace:configure.ac:52: -1- AC_SUBST_TRACE([CC]) m4trace:configure.ac:52: -1- m4_pattern_allow([^CC$]) m4trace:configure.ac:52: -1- AC_SUBST([ac_ct_CC]) m4trace:configure.ac:52: -1- AC_SUBST_TRACE([ac_ct_CC]) m4trace:configure.ac:52: -1- m4_pattern_allow([^ac_ct_CC$]) m4trace:configure.ac:52: -1- AC_SUBST([EXEEXT], [$ac_cv_exeext]) m4trace:configure.ac:52: -1- AC_SUBST_TRACE([EXEEXT]) m4trace:configure.ac:52: -1- m4_pattern_allow([^EXEEXT$]) m4trace:configure.ac:52: -1- AC_SUBST([OBJEXT], [$ac_cv_objext]) m4trace:configure.ac:52: -1- AC_SUBST_TRACE([OBJEXT]) m4trace:configure.ac:52: -1- m4_pattern_allow([^OBJEXT$]) m4trace:configure.ac:52: -1- AC_REQUIRE_AUX_FILE([compile]) m4trace:configure.ac:52: -1- AC_SUBST([DEPDIR], ["${am__leading_dot}deps"]) m4trace:configure.ac:52: -1- AC_SUBST_TRACE([DEPDIR]) m4trace:configure.ac:52: -1- m4_pattern_allow([^DEPDIR$]) m4trace:configure.ac:52: -1- AC_SUBST([am__include]) m4trace:configure.ac:52: -1- AC_SUBST_TRACE([am__include]) m4trace:configure.ac:52: -1- m4_pattern_allow([^am__include$]) m4trace:configure.ac:52: -1- AC_SUBST([am__quote]) m4trace:configure.ac:52: -1- AC_SUBST_TRACE([am__quote]) m4trace:configure.ac:52: -1- m4_pattern_allow([^am__quote$]) m4trace:configure.ac:52: -1- AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) m4trace:configure.ac:52: -1- AC_SUBST([AMDEP_TRUE]) m4trace:configure.ac:52: -1- AC_SUBST_TRACE([AMDEP_TRUE]) m4trace:configure.ac:52: -1- m4_pattern_allow([^AMDEP_TRUE$]) m4trace:configure.ac:52: -1- AC_SUBST([AMDEP_FALSE]) m4trace:configure.ac:52: -1- AC_SUBST_TRACE([AMDEP_FALSE]) m4trace:configure.ac:52: -1- m4_pattern_allow([^AMDEP_FALSE$]) m4trace:configure.ac:52: -1- _AM_SUBST_NOTMAKE([AMDEP_TRUE]) m4trace:configure.ac:52: -1- _AM_SUBST_NOTMAKE([AMDEP_FALSE]) m4trace:configure.ac:52: -1- AC_SUBST([AMDEPBACKSLASH]) m4trace:configure.ac:52: -1- AC_SUBST_TRACE([AMDEPBACKSLASH]) m4trace:configure.ac:52: -1- m4_pattern_allow([^AMDEPBACKSLASH$]) m4trace:configure.ac:52: -1- _AM_SUBST_NOTMAKE([AMDEPBACKSLASH]) m4trace:configure.ac:52: -1- AC_SUBST([am__nodep]) m4trace:configure.ac:52: -1- AC_SUBST_TRACE([am__nodep]) m4trace:configure.ac:52: -1- m4_pattern_allow([^am__nodep$]) m4trace:configure.ac:52: -1- _AM_SUBST_NOTMAKE([am__nodep]) m4trace:configure.ac:52: -1- AC_SUBST([CCDEPMODE], [depmode=$am_cv_CC_dependencies_compiler_type]) m4trace:configure.ac:52: -1- AC_SUBST_TRACE([CCDEPMODE]) m4trace:configure.ac:52: -1- m4_pattern_allow([^CCDEPMODE$]) m4trace:configure.ac:52: -1- AM_CONDITIONAL([am__fastdepCC], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3]) m4trace:configure.ac:52: -1- AC_SUBST([am__fastdepCC_TRUE]) m4trace:configure.ac:52: -1- AC_SUBST_TRACE([am__fastdepCC_TRUE]) m4trace:configure.ac:52: -1- m4_pattern_allow([^am__fastdepCC_TRUE$]) m4trace:configure.ac:52: -1- AC_SUBST([am__fastdepCC_FALSE]) m4trace:configure.ac:52: -1- AC_SUBST_TRACE([am__fastdepCC_FALSE]) m4trace:configure.ac:52: -1- m4_pattern_allow([^am__fastdepCC_FALSE$]) m4trace:configure.ac:52: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_TRUE]) m4trace:configure.ac:52: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_FALSE]) m4trace:configure.ac:53: -1- AC_SUBST([LN_S], [$as_ln_s]) m4trace:configure.ac:53: -1- AC_SUBST_TRACE([LN_S]) m4trace:configure.ac:53: -1- m4_pattern_allow([^LN_S$]) m4trace:configure.ac:54: -1- AM_PROG_AR m4trace:configure.ac:54: -1- AC_REQUIRE_AUX_FILE([ar-lib]) m4trace:configure.ac:54: -1- AC_SUBST([AR]) m4trace:configure.ac:54: -1- AC_SUBST_TRACE([AR]) m4trace:configure.ac:54: -1- m4_pattern_allow([^AR$]) m4trace:configure.ac:54: -1- AC_SUBST([ac_ct_AR]) m4trace:configure.ac:54: -1- AC_SUBST_TRACE([ac_ct_AR]) m4trace:configure.ac:54: -1- m4_pattern_allow([^ac_ct_AR$]) m4trace:configure.ac:54: -1- AC_SUBST([AR]) m4trace:configure.ac:54: -1- AC_SUBST_TRACE([AR]) m4trace:configure.ac:54: -1- m4_pattern_allow([^AR$]) m4trace:configure.ac:55: -1- LT_INIT m4trace:configure.ac:55: -1- m4_pattern_forbid([^_?LT_[A-Z_]+$]) m4trace:configure.ac:55: -1- m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$]) m4trace:configure.ac:55: -1- AC_REQUIRE_AUX_FILE([ltmain.sh]) m4trace:configure.ac:55: -1- AC_SUBST([LIBTOOL]) m4trace:configure.ac:55: -1- AC_SUBST_TRACE([LIBTOOL]) m4trace:configure.ac:55: -1- m4_pattern_allow([^LIBTOOL$]) m4trace:configure.ac:55: -1- AC_CANONICAL_HOST m4trace:configure.ac:55: -1- AC_CANONICAL_BUILD m4trace:configure.ac:55: -1- AC_REQUIRE_AUX_FILE([config.sub]) m4trace:configure.ac:55: -1- AC_REQUIRE_AUX_FILE([config.guess]) m4trace:configure.ac:55: -1- AC_SUBST([build], [$ac_cv_build]) m4trace:configure.ac:55: -1- AC_SUBST_TRACE([build]) m4trace:configure.ac:55: -1- m4_pattern_allow([^build$]) m4trace:configure.ac:55: -1- AC_SUBST([build_cpu], [$[1]]) m4trace:configure.ac:55: -1- AC_SUBST_TRACE([build_cpu]) m4trace:configure.ac:55: -1- m4_pattern_allow([^build_cpu$]) m4trace:configure.ac:55: -1- AC_SUBST([build_vendor], [$[2]]) m4trace:configure.ac:55: -1- AC_SUBST_TRACE([build_vendor]) m4trace:configure.ac:55: -1- m4_pattern_allow([^build_vendor$]) m4trace:configure.ac:55: -1- AC_SUBST([build_os]) m4trace:configure.ac:55: -1- AC_SUBST_TRACE([build_os]) m4trace:configure.ac:55: -1- m4_pattern_allow([^build_os$]) m4trace:configure.ac:55: -1- AC_SUBST([host], [$ac_cv_host]) m4trace:configure.ac:55: -1- AC_SUBST_TRACE([host]) m4trace:configure.ac:55: -1- m4_pattern_allow([^host$]) m4trace:configure.ac:55: -1- AC_SUBST([host_cpu], [$[1]]) m4trace:configure.ac:55: -1- AC_SUBST_TRACE([host_cpu]) m4trace:configure.ac:55: -1- m4_pattern_allow([^host_cpu$]) m4trace:configure.ac:55: -1- AC_SUBST([host_vendor], [$[2]]) m4trace:configure.ac:55: -1- AC_SUBST_TRACE([host_vendor]) m4trace:configure.ac:55: -1- m4_pattern_allow([^host_vendor$]) m4trace:configure.ac:55: -1- AC_SUBST([host_os]) m4trace:configure.ac:55: -1- AC_SUBST_TRACE([host_os]) m4trace:configure.ac:55: -1- m4_pattern_allow([^host_os$]) m4trace:configure.ac:55: -1- AC_SUBST([SED]) m4trace:configure.ac:55: -1- AC_SUBST_TRACE([SED]) m4trace:configure.ac:55: -1- m4_pattern_allow([^SED$]) m4trace:configure.ac:55: -1- AC_SUBST([GREP]) m4trace:configure.ac:55: -1- AC_SUBST_TRACE([GREP]) m4trace:configure.ac:55: -1- m4_pattern_allow([^GREP$]) m4trace:configure.ac:55: -1- AC_SUBST([EGREP]) m4trace:configure.ac:55: -1- AC_SUBST_TRACE([EGREP]) m4trace:configure.ac:55: -1- m4_pattern_allow([^EGREP$]) m4trace:configure.ac:55: -1- AC_SUBST([FGREP]) m4trace:configure.ac:55: -1- AC_SUBST_TRACE([FGREP]) m4trace:configure.ac:55: -1- m4_pattern_allow([^FGREP$]) m4trace:configure.ac:55: -1- AC_SUBST([GREP]) m4trace:configure.ac:55: -1- AC_SUBST_TRACE([GREP]) m4trace:configure.ac:55: -1- m4_pattern_allow([^GREP$]) m4trace:configure.ac:55: -1- AC_SUBST([LD]) m4trace:configure.ac:55: -1- AC_SUBST_TRACE([LD]) m4trace:configure.ac:55: -1- m4_pattern_allow([^LD$]) m4trace:configure.ac:55: -1- AC_SUBST([DUMPBIN]) m4trace:configure.ac:55: -1- AC_SUBST_TRACE([DUMPBIN]) m4trace:configure.ac:55: -1- m4_pattern_allow([^DUMPBIN$]) m4trace:configure.ac:55: -1- AC_SUBST([ac_ct_DUMPBIN]) m4trace:configure.ac:55: -1- AC_SUBST_TRACE([ac_ct_DUMPBIN]) m4trace:configure.ac:55: -1- m4_pattern_allow([^ac_ct_DUMPBIN$]) m4trace:configure.ac:55: -1- AC_SUBST([DUMPBIN]) m4trace:configure.ac:55: -1- AC_SUBST_TRACE([DUMPBIN]) m4trace:configure.ac:55: -1- m4_pattern_allow([^DUMPBIN$]) m4trace:configure.ac:55: -1- AC_SUBST([NM]) m4trace:configure.ac:55: -1- AC_SUBST_TRACE([NM]) m4trace:configure.ac:55: -1- m4_pattern_allow([^NM$]) m4trace:configure.ac:55: -1- AC_SUBST([OBJDUMP]) m4trace:configure.ac:55: -1- AC_SUBST_TRACE([OBJDUMP]) m4trace:configure.ac:55: -1- m4_pattern_allow([^OBJDUMP$]) m4trace:configure.ac:55: -1- AC_SUBST([OBJDUMP]) m4trace:configure.ac:55: -1- AC_SUBST_TRACE([OBJDUMP]) m4trace:configure.ac:55: -1- m4_pattern_allow([^OBJDUMP$]) m4trace:configure.ac:55: -1- AC_SUBST([DLLTOOL]) m4trace:configure.ac:55: -1- AC_SUBST_TRACE([DLLTOOL]) m4trace:configure.ac:55: -1- m4_pattern_allow([^DLLTOOL$]) m4trace:configure.ac:55: -1- AC_SUBST([DLLTOOL]) m4trace:configure.ac:55: -1- AC_SUBST_TRACE([DLLTOOL]) m4trace:configure.ac:55: -1- m4_pattern_allow([^DLLTOOL$]) m4trace:configure.ac:55: -1- AC_SUBST([AR]) m4trace:configure.ac:55: -1- AC_SUBST_TRACE([AR]) m4trace:configure.ac:55: -1- m4_pattern_allow([^AR$]) m4trace:configure.ac:55: -1- AC_SUBST([ac_ct_AR]) m4trace:configure.ac:55: -1- AC_SUBST_TRACE([ac_ct_AR]) m4trace:configure.ac:55: -1- m4_pattern_allow([^ac_ct_AR$]) m4trace:configure.ac:55: -1- AC_SUBST([STRIP]) m4trace:configure.ac:55: -1- AC_SUBST_TRACE([STRIP]) m4trace:configure.ac:55: -1- m4_pattern_allow([^STRIP$]) m4trace:configure.ac:55: -1- AC_SUBST([RANLIB]) m4trace:configure.ac:55: -1- AC_SUBST_TRACE([RANLIB]) m4trace:configure.ac:55: -1- m4_pattern_allow([^RANLIB$]) m4trace:configure.ac:55: -1- m4_pattern_allow([LT_OBJDIR]) m4trace:configure.ac:55: -1- AC_DEFINE_TRACE_LITERAL([LT_OBJDIR]) m4trace:configure.ac:55: -1- m4_pattern_allow([^LT_OBJDIR$]) m4trace:configure.ac:55: -1- AH_OUTPUT([LT_OBJDIR], [/* Define to the sub-directory where libtool stores uninstalled libraries. */ @%:@undef LT_OBJDIR]) m4trace:configure.ac:55: -1- LT_SUPPORTED_TAG([CC]) m4trace:configure.ac:55: -1- AC_SUBST([MANIFEST_TOOL]) m4trace:configure.ac:55: -1- AC_SUBST_TRACE([MANIFEST_TOOL]) m4trace:configure.ac:55: -1- m4_pattern_allow([^MANIFEST_TOOL$]) m4trace:configure.ac:55: -1- AC_SUBST([DSYMUTIL]) m4trace:configure.ac:55: -1- AC_SUBST_TRACE([DSYMUTIL]) m4trace:configure.ac:55: -1- m4_pattern_allow([^DSYMUTIL$]) m4trace:configure.ac:55: -1- AC_SUBST([NMEDIT]) m4trace:configure.ac:55: -1- AC_SUBST_TRACE([NMEDIT]) m4trace:configure.ac:55: -1- m4_pattern_allow([^NMEDIT$]) m4trace:configure.ac:55: -1- AC_SUBST([LIPO]) m4trace:configure.ac:55: -1- AC_SUBST_TRACE([LIPO]) m4trace:configure.ac:55: -1- m4_pattern_allow([^LIPO$]) m4trace:configure.ac:55: -1- AC_SUBST([OTOOL]) m4trace:configure.ac:55: -1- AC_SUBST_TRACE([OTOOL]) m4trace:configure.ac:55: -1- m4_pattern_allow([^OTOOL$]) m4trace:configure.ac:55: -1- AC_SUBST([OTOOL64]) m4trace:configure.ac:55: -1- AC_SUBST_TRACE([OTOOL64]) m4trace:configure.ac:55: -1- m4_pattern_allow([^OTOOL64$]) m4trace:configure.ac:55: -1- AC_SUBST([LT_SYS_LIBRARY_PATH]) m4trace:configure.ac:55: -1- AC_SUBST_TRACE([LT_SYS_LIBRARY_PATH]) m4trace:configure.ac:55: -1- m4_pattern_allow([^LT_SYS_LIBRARY_PATH$]) m4trace:configure.ac:55: -1- AH_OUTPUT([HAVE_DLFCN_H], [/* Define to 1 if you have the header file. */ @%:@undef HAVE_DLFCN_H]) m4trace:configure.ac:55: -1- AC_SUBST([CPP]) m4trace:configure.ac:55: -1- AC_SUBST_TRACE([CPP]) m4trace:configure.ac:55: -1- m4_pattern_allow([^CPP$]) m4trace:configure.ac:55: -1- AC_SUBST([CPPFLAGS]) m4trace:configure.ac:55: -1- AC_SUBST_TRACE([CPPFLAGS]) m4trace:configure.ac:55: -1- m4_pattern_allow([^CPPFLAGS$]) m4trace:configure.ac:55: -1- AC_SUBST([CPP]) m4trace:configure.ac:55: -1- AC_SUBST_TRACE([CPP]) m4trace:configure.ac:55: -1- m4_pattern_allow([^CPP$]) m4trace:configure.ac:55: -1- AC_DEFINE_TRACE_LITERAL([STDC_HEADERS]) m4trace:configure.ac:55: -1- m4_pattern_allow([^STDC_HEADERS$]) m4trace:configure.ac:55: -1- AH_OUTPUT([STDC_HEADERS], [/* Define to 1 if you have the ANSI C header files. */ @%:@undef STDC_HEADERS]) m4trace:configure.ac:55: -1- AH_OUTPUT([HAVE_SYS_TYPES_H], [/* Define to 1 if you have the header file. */ @%:@undef HAVE_SYS_TYPES_H]) m4trace:configure.ac:55: -1- AH_OUTPUT([HAVE_SYS_STAT_H], [/* Define to 1 if you have the header file. */ @%:@undef HAVE_SYS_STAT_H]) m4trace:configure.ac:55: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the header file. */ @%:@undef HAVE_STDLIB_H]) m4trace:configure.ac:55: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the header file. */ @%:@undef HAVE_STRING_H]) m4trace:configure.ac:55: -1- AH_OUTPUT([HAVE_MEMORY_H], [/* Define to 1 if you have the header file. */ @%:@undef HAVE_MEMORY_H]) m4trace:configure.ac:55: -1- AH_OUTPUT([HAVE_STRINGS_H], [/* Define to 1 if you have the header file. */ @%:@undef HAVE_STRINGS_H]) m4trace:configure.ac:55: -1- AH_OUTPUT([HAVE_INTTYPES_H], [/* Define to 1 if you have the header file. */ @%:@undef HAVE_INTTYPES_H]) m4trace:configure.ac:55: -1- AH_OUTPUT([HAVE_STDINT_H], [/* Define to 1 if you have the header file. */ @%:@undef HAVE_STDINT_H]) m4trace:configure.ac:55: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the header file. */ @%:@undef HAVE_UNISTD_H]) m4trace:configure.ac:55: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DLFCN_H]) m4trace:configure.ac:55: -1- m4_pattern_allow([^HAVE_DLFCN_H$]) m4trace:configure.ac:56: -1- AC_SUBST([CCAS]) m4trace:configure.ac:56: -1- AC_SUBST_TRACE([CCAS]) m4trace:configure.ac:56: -1- m4_pattern_allow([^CCAS$]) m4trace:configure.ac:56: -1- AC_SUBST([CCASFLAGS]) m4trace:configure.ac:56: -1- AC_SUBST_TRACE([CCASFLAGS]) m4trace:configure.ac:56: -1- m4_pattern_allow([^CCASFLAGS$]) m4trace:configure.ac:56: -1- AC_SUBST([CCASDEPMODE], [depmode=$am_cv_CCAS_dependencies_compiler_type]) m4trace:configure.ac:56: -1- AC_SUBST_TRACE([CCASDEPMODE]) m4trace:configure.ac:56: -1- m4_pattern_allow([^CCASDEPMODE$]) m4trace:configure.ac:56: -1- AM_CONDITIONAL([am__fastdepCCAS], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CCAS_dependencies_compiler_type" = gcc3]) m4trace:configure.ac:56: -1- AC_SUBST([am__fastdepCCAS_TRUE]) m4trace:configure.ac:56: -1- AC_SUBST_TRACE([am__fastdepCCAS_TRUE]) m4trace:configure.ac:56: -1- m4_pattern_allow([^am__fastdepCCAS_TRUE$]) m4trace:configure.ac:56: -1- AC_SUBST([am__fastdepCCAS_FALSE]) m4trace:configure.ac:56: -1- AC_SUBST_TRACE([am__fastdepCCAS_FALSE]) m4trace:configure.ac:56: -1- m4_pattern_allow([^am__fastdepCCAS_FALSE$]) m4trace:configure.ac:56: -1- _AM_SUBST_NOTMAKE([am__fastdepCCAS_TRUE]) m4trace:configure.ac:56: -1- _AM_SUBST_NOTMAKE([am__fastdepCCAS_FALSE]) m4trace:configure.ac:59: -1- AC_CANONICAL_HOST m4trace:configure.ac:66: -1- AM_CONDITIONAL([OS_LINUX], [test "$os_linux" -eq 1]) m4trace:configure.ac:66: -1- AC_SUBST([OS_LINUX_TRUE]) m4trace:configure.ac:66: -1- AC_SUBST_TRACE([OS_LINUX_TRUE]) m4trace:configure.ac:66: -1- m4_pattern_allow([^OS_LINUX_TRUE$]) m4trace:configure.ac:66: -1- AC_SUBST([OS_LINUX_FALSE]) m4trace:configure.ac:66: -1- AC_SUBST_TRACE([OS_LINUX_FALSE]) m4trace:configure.ac:66: -1- m4_pattern_allow([^OS_LINUX_FALSE$]) m4trace:configure.ac:66: -1- _AM_SUBST_NOTMAKE([OS_LINUX_TRUE]) m4trace:configure.ac:66: -1- _AM_SUBST_NOTMAKE([OS_LINUX_FALSE]) m4trace:configure.ac:67: -1- AM_CONDITIONAL([OS_BSD], [echo $host_os | grep -E 'darwin|freebsd']) m4trace:configure.ac:67: -1- AC_SUBST([OS_BSD_TRUE]) m4trace:configure.ac:67: -1- AC_SUBST_TRACE([OS_BSD_TRUE]) m4trace:configure.ac:67: -1- m4_pattern_allow([^OS_BSD_TRUE$]) m4trace:configure.ac:67: -1- AC_SUBST([OS_BSD_FALSE]) m4trace:configure.ac:67: -1- AC_SUBST_TRACE([OS_BSD_FALSE]) m4trace:configure.ac:67: -1- m4_pattern_allow([^OS_BSD_FALSE$]) m4trace:configure.ac:67: -1- _AM_SUBST_NOTMAKE([OS_BSD_TRUE]) m4trace:configure.ac:67: -1- _AM_SUBST_NOTMAKE([OS_BSD_FALSE]) m4trace:configure.ac:68: -1- AM_CONDITIONAL([OS_MINGW], [echo $host_os | grep mingw]) m4trace:configure.ac:68: -1- AC_SUBST([OS_MINGW_TRUE]) m4trace:configure.ac:68: -1- AC_SUBST_TRACE([OS_MINGW_TRUE]) m4trace:configure.ac:68: -1- m4_pattern_allow([^OS_MINGW_TRUE$]) m4trace:configure.ac:68: -1- AC_SUBST([OS_MINGW_FALSE]) m4trace:configure.ac:68: -1- AC_SUBST_TRACE([OS_MINGW_FALSE]) m4trace:configure.ac:68: -1- m4_pattern_allow([^OS_MINGW_FALSE$]) m4trace:configure.ac:68: -1- _AM_SUBST_NOTMAKE([OS_MINGW_TRUE]) m4trace:configure.ac:68: -1- _AM_SUBST_NOTMAKE([OS_MINGW_FALSE]) m4trace:configure.ac:70: -1- AC_DEFINE_TRACE_LITERAL([OS_LINUX]) m4trace:configure.ac:70: -1- m4_pattern_allow([^OS_LINUX$]) m4trace:configure.ac:70: -1- AH_OUTPUT([OS_LINUX], [/* Define to 1 if compiling for a Linux system */ @%:@undef OS_LINUX]) m4trace:configure.ac:70: -1- AC_DEFINE_TRACE_LITERAL([OS_LINUX]) m4trace:configure.ac:70: -1- m4_pattern_allow([^OS_LINUX$]) m4trace:configure.ac:70: -1- AH_OUTPUT([OS_LINUX], [/* Define to 1 if compiling for a Linux system */ @%:@undef OS_LINUX]) m4trace:configure.ac:86: -1- AC_SUBST([CXXFLAGS]) m4trace:configure.ac:86: -1- AC_SUBST_TRACE([CXXFLAGS]) m4trace:configure.ac:86: -1- m4_pattern_allow([^CXXFLAGS$]) m4trace:configure.ac:87: -1- AC_SUBST([CFLAGS]) m4trace:configure.ac:87: -1- AC_SUBST_TRACE([CFLAGS]) m4trace:configure.ac:87: -1- m4_pattern_allow([^CFLAGS$]) m4trace:configure.ac:101: -1- AC_DEFINE_TRACE_LITERAL([NO_ASM]) m4trace:configure.ac:101: -1- m4_pattern_allow([^NO_ASM$]) m4trace:configure.ac:101: -1- AH_OUTPUT([NO_ASM], [/* No asm? */ @%:@undef NO_ASM]) m4trace:configure.ac:103: -1- AM_CONDITIONAL([NO_ASM], [test x$enable_asm = xno]) m4trace:configure.ac:103: -1- AC_SUBST([NO_ASM_TRUE]) m4trace:configure.ac:103: -1- AC_SUBST_TRACE([NO_ASM_TRUE]) m4trace:configure.ac:103: -1- m4_pattern_allow([^NO_ASM_TRUE$]) m4trace:configure.ac:103: -1- AC_SUBST([NO_ASM_FALSE]) m4trace:configure.ac:103: -1- AC_SUBST_TRACE([NO_ASM_FALSE]) m4trace:configure.ac:103: -1- m4_pattern_allow([^NO_ASM_FALSE$]) m4trace:configure.ac:103: -1- _AM_SUBST_NOTMAKE([NO_ASM_TRUE]) m4trace:configure.ac:103: -1- _AM_SUBST_NOTMAKE([NO_ASM_FALSE]) m4trace:configure.ac:105: -1- AM_CONDITIONAL([HAVE_NI], [false]) m4trace:configure.ac:105: -1- AC_SUBST([HAVE_NI_TRUE]) m4trace:configure.ac:105: -1- AC_SUBST_TRACE([HAVE_NI_TRUE]) m4trace:configure.ac:105: -1- m4_pattern_allow([^HAVE_NI_TRUE$]) m4trace:configure.ac:105: -1- AC_SUBST([HAVE_NI_FALSE]) m4trace:configure.ac:105: -1- AC_SUBST_TRACE([HAVE_NI_FALSE]) m4trace:configure.ac:105: -1- m4_pattern_allow([^HAVE_NI_FALSE$]) m4trace:configure.ac:105: -1- _AM_SUBST_NOTMAKE([HAVE_NI_TRUE]) m4trace:configure.ac:105: -1- _AM_SUBST_NOTMAKE([HAVE_NI_FALSE]) m4trace:configure.ac:115: -1- AH_OUTPUT([HAVE_LIBPTHREAD], [/* Define to 1 if you have the `pthread\' library (-lpthread). */ @%:@undef HAVE_LIBPTHREAD]) m4trace:configure.ac:115: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBPTHREAD]) m4trace:configure.ac:115: -1- m4_pattern_allow([^HAVE_LIBPTHREAD$]) m4trace:configure.ac:116: -1- AH_OUTPUT([HAVE_LIBWSOCK32], [/* Define to 1 if you have the `wsock32\' library (-lwsock32). */ @%:@undef HAVE_LIBWSOCK32]) m4trace:configure.ac:116: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBWSOCK32]) m4trace:configure.ac:116: -1- m4_pattern_allow([^HAVE_LIBWSOCK32$]) m4trace:configure.ac:117: -1- AH_OUTPUT([HAVE_LIBIPHLPAPI], [/* Define to 1 if you have the `iphlpapi\' library (-liphlpapi). */ @%:@undef HAVE_LIBIPHLPAPI]) m4trace:configure.ac:117: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBIPHLPAPI]) m4trace:configure.ac:117: -1- m4_pattern_allow([^HAVE_LIBIPHLPAPI$]) m4trace:configure.ac:118: -1- AC_SUBST([tcpcryptd_LDADD]) m4trace:configure.ac:118: -1- AC_SUBST_TRACE([tcpcryptd_LDADD]) m4trace:configure.ac:118: -1- m4_pattern_allow([^tcpcryptd_LDADD$]) m4trace:configure.ac:119: -1- AC_SUBST([crypto_LDADD]) m4trace:configure.ac:119: -1- AC_SUBST_TRACE([crypto_LDADD]) m4trace:configure.ac:119: -1- m4_pattern_allow([^crypto_LDADD$]) m4trace:configure.ac:122: -1- AH_OUTPUT([HAVE_ARPA_INET_H], [/* Define to 1 if you have the header file. */ @%:@undef HAVE_ARPA_INET_H]) m4trace:configure.ac:122: -1- AH_OUTPUT([HAVE_FCNTL_H], [/* Define to 1 if you have the header file. */ @%:@undef HAVE_FCNTL_H]) m4trace:configure.ac:122: -1- AH_OUTPUT([HAVE_LIMITS_H], [/* Define to 1 if you have the header file. */ @%:@undef HAVE_LIMITS_H]) m4trace:configure.ac:122: -1- AH_OUTPUT([HAVE_NETINET_IN_H], [/* Define to 1 if you have the header file. */ @%:@undef HAVE_NETINET_IN_H]) m4trace:configure.ac:122: -1- AH_OUTPUT([HAVE_STDDEF_H], [/* Define to 1 if you have the header file. */ @%:@undef HAVE_STDDEF_H]) m4trace:configure.ac:122: -1- AH_OUTPUT([HAVE_STDINT_H], [/* Define to 1 if you have the header file. */ @%:@undef HAVE_STDINT_H]) m4trace:configure.ac:122: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the header file. */ @%:@undef HAVE_STDLIB_H]) m4trace:configure.ac:122: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the header file. */ @%:@undef HAVE_STRING_H]) m4trace:configure.ac:122: -1- AH_OUTPUT([HAVE_STRINGS_H], [/* Define to 1 if you have the header file. */ @%:@undef HAVE_STRINGS_H]) m4trace:configure.ac:122: -1- AH_OUTPUT([HAVE_SYS_SOCKET_H], [/* Define to 1 if you have the header file. */ @%:@undef HAVE_SYS_SOCKET_H]) m4trace:configure.ac:122: -1- AH_OUTPUT([HAVE_SYS_TIME_H], [/* Define to 1 if you have the header file. */ @%:@undef HAVE_SYS_TIME_H]) m4trace:configure.ac:122: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the header file. */ @%:@undef HAVE_UNISTD_H]) m4trace:configure.ac:125: -1- AH_OUTPUT([inline], [/* Define to `__inline__\' or `__inline\' if that\'s what the C compiler calls it, or to nothing if \'inline\' is not supported under any name. */ #ifndef __cplusplus #undef inline #endif]) m4trace:configure.ac:126: -1- AC_DEFINE_TRACE_LITERAL([mode_t]) m4trace:configure.ac:126: -1- m4_pattern_allow([^mode_t$]) m4trace:configure.ac:126: -1- AH_OUTPUT([mode_t], [/* Define to `int\' if does not define. */ @%:@undef mode_t]) m4trace:configure.ac:127: -1- AC_DEFINE_TRACE_LITERAL([size_t]) m4trace:configure.ac:127: -1- m4_pattern_allow([^size_t$]) m4trace:configure.ac:127: -1- AH_OUTPUT([size_t], [/* Define to `unsigned int\' if does not define. */ @%:@undef size_t]) m4trace:configure.ac:128: -1- AC_DEFINE_TRACE_LITERAL([ssize_t]) m4trace:configure.ac:128: -1- m4_pattern_allow([^ssize_t$]) m4trace:configure.ac:128: -1- AH_OUTPUT([ssize_t], [/* Define to `int\' if does not define. */ @%:@undef ssize_t]) m4trace:configure.ac:129: -1- AC_DEFINE_TRACE_LITERAL([uint16_t]) m4trace:configure.ac:129: -1- m4_pattern_allow([^uint16_t$]) m4trace:configure.ac:129: -1- AH_OUTPUT([uint16_t], [/* Define to the type of an unsigned integer type of width exactly 16 bits if such a type exists and the standard includes do not define it. */ @%:@undef uint16_t]) m4trace:configure.ac:130: -1- AC_DEFINE_TRACE_LITERAL([_UINT32_T]) m4trace:configure.ac:130: -1- m4_pattern_allow([^_UINT32_T$]) m4trace:configure.ac:130: -1- AH_OUTPUT([_UINT32_T], [/* Define for Solaris 2.5.1 so the uint32_t typedef from , , or is not used. If the typedef were allowed, the @%:@define below would cause a syntax error. */ @%:@undef _UINT32_T]) m4trace:configure.ac:130: -1- AC_DEFINE_TRACE_LITERAL([uint32_t]) m4trace:configure.ac:130: -1- m4_pattern_allow([^uint32_t$]) m4trace:configure.ac:130: -1- AH_OUTPUT([uint32_t], [/* Define to the type of an unsigned integer type of width exactly 32 bits if such a type exists and the standard includes do not define it. */ @%:@undef uint32_t]) m4trace:configure.ac:131: -1- AC_DEFINE_TRACE_LITERAL([_UINT64_T]) m4trace:configure.ac:131: -1- m4_pattern_allow([^_UINT64_T$]) m4trace:configure.ac:131: -1- AH_OUTPUT([_UINT64_T], [/* Define for Solaris 2.5.1 so the uint64_t typedef from , , or is not used. If the typedef were allowed, the @%:@define below would cause a syntax error. */ @%:@undef _UINT64_T]) m4trace:configure.ac:131: -1- AC_DEFINE_TRACE_LITERAL([uint64_t]) m4trace:configure.ac:131: -1- m4_pattern_allow([^uint64_t$]) m4trace:configure.ac:131: -1- AH_OUTPUT([uint64_t], [/* Define to the type of an unsigned integer type of width exactly 64 bits if such a type exists and the standard includes do not define it. */ @%:@undef uint64_t]) m4trace:configure.ac:132: -1- AC_DEFINE_TRACE_LITERAL([_UINT8_T]) m4trace:configure.ac:132: -1- m4_pattern_allow([^_UINT8_T$]) m4trace:configure.ac:132: -1- AH_OUTPUT([_UINT8_T], [/* Define for Solaris 2.5.1 so the uint8_t typedef from , , or is not used. If the typedef were allowed, the @%:@define below would cause a syntax error. */ @%:@undef _UINT8_T]) m4trace:configure.ac:132: -1- AC_DEFINE_TRACE_LITERAL([uint8_t]) m4trace:configure.ac:132: -1- m4_pattern_allow([^uint8_t$]) m4trace:configure.ac:132: -1- AH_OUTPUT([uint8_t], [/* Define to the type of an unsigned integer type of width exactly 8 bits if such a type exists and the standard includes do not define it. */ @%:@undef uint8_t]) m4trace:configure.ac:133: -1- AC_DEFINE_TRACE_LITERAL([HAVE_PTRDIFF_T]) m4trace:configure.ac:133: -1- m4_pattern_allow([^HAVE_PTRDIFF_T$]) m4trace:configure.ac:133: -1- AH_OUTPUT([HAVE_PTRDIFF_T], [/* Define to 1 if the system has the type `ptrdiff_t\'. */ @%:@undef HAVE_PTRDIFF_T]) m4trace:configure.ac:137: -1- AC_CONFIG_FILES([tests/atlocal]) m4trace:configure.ac:140: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ALLOCA_H]) m4trace:configure.ac:140: -1- m4_pattern_allow([^HAVE_ALLOCA_H$]) m4trace:configure.ac:140: -1- AH_OUTPUT([HAVE_ALLOCA_H], [/* Define to 1 if you have and it should be used (not on Ultrix). */ @%:@undef HAVE_ALLOCA_H]) m4trace:configure.ac:140: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ALLOCA]) m4trace:configure.ac:140: -1- m4_pattern_allow([^HAVE_ALLOCA$]) m4trace:configure.ac:140: -1- AH_OUTPUT([HAVE_ALLOCA], [/* Define to 1 if you have `alloca\', as a function or macro. */ @%:@undef HAVE_ALLOCA]) m4trace:configure.ac:140: -1- AC_LIBSOURCE([alloca.c]) m4trace:configure.ac:140: -1- AC_SUBST([ALLOCA], [\${LIBOBJDIR}alloca.$ac_objext]) m4trace:configure.ac:140: -1- AC_SUBST_TRACE([ALLOCA]) m4trace:configure.ac:140: -1- m4_pattern_allow([^ALLOCA$]) m4trace:configure.ac:140: -1- AC_DEFINE_TRACE_LITERAL([C_ALLOCA]) m4trace:configure.ac:140: -1- m4_pattern_allow([^C_ALLOCA$]) m4trace:configure.ac:140: -1- AH_OUTPUT([C_ALLOCA], [/* Define to 1 if using `alloca.c\'. */ @%:@undef C_ALLOCA]) m4trace:configure.ac:140: -1- AC_DEFINE_TRACE_LITERAL([CRAY_STACKSEG_END]) m4trace:configure.ac:140: -1- m4_pattern_allow([^CRAY_STACKSEG_END$]) m4trace:configure.ac:140: -1- AH_OUTPUT([CRAY_STACKSEG_END], [/* Define to one of `_getb67\', `GETB67\', `getb67\' for Cray-2 and Cray-YMP systems. This function is required for `alloca.c\' support on those systems. */ @%:@undef CRAY_STACKSEG_END]) m4trace:configure.ac:140: -1- AH_OUTPUT([STACK_DIRECTION], [/* If using the C implementation of alloca, define if you know the direction of stack growth for your system; otherwise it will be automatically deduced at runtime. STACK_DIRECTION > 0 => grows toward higher addresses STACK_DIRECTION < 0 => grows toward lower addresses STACK_DIRECTION = 0 => direction of growth unknown */ @%:@undef STACK_DIRECTION]) m4trace:configure.ac:140: -1- AC_DEFINE_TRACE_LITERAL([STACK_DIRECTION]) m4trace:configure.ac:140: -1- m4_pattern_allow([^STACK_DIRECTION$]) m4trace:configure.ac:141: -1- AC_DEFINE_TRACE_LITERAL([pid_t]) m4trace:configure.ac:141: -1- m4_pattern_allow([^pid_t$]) m4trace:configure.ac:141: -1- AH_OUTPUT([pid_t], [/* Define to `int\' if does not define. */ @%:@undef pid_t]) m4trace:configure.ac:141: -1- AH_OUTPUT([HAVE_VFORK_H], [/* Define to 1 if you have the header file. */ @%:@undef HAVE_VFORK_H]) m4trace:configure.ac:141: -1- AC_DEFINE_TRACE_LITERAL([HAVE_VFORK_H]) m4trace:configure.ac:141: -1- m4_pattern_allow([^HAVE_VFORK_H$]) m4trace:configure.ac:141: -1- AH_OUTPUT([HAVE_FORK], [/* Define to 1 if you have the `fork\' function. */ @%:@undef HAVE_FORK]) m4trace:configure.ac:141: -1- AH_OUTPUT([HAVE_VFORK], [/* Define to 1 if you have the `vfork\' function. */ @%:@undef HAVE_VFORK]) m4trace:configure.ac:141: -1- AC_DEFINE_TRACE_LITERAL([HAVE_WORKING_VFORK]) m4trace:configure.ac:141: -1- m4_pattern_allow([^HAVE_WORKING_VFORK$]) m4trace:configure.ac:141: -1- AH_OUTPUT([HAVE_WORKING_VFORK], [/* Define to 1 if `vfork\' works. */ @%:@undef HAVE_WORKING_VFORK]) m4trace:configure.ac:141: -1- AC_DEFINE_TRACE_LITERAL([vfork]) m4trace:configure.ac:141: -1- m4_pattern_allow([^vfork$]) m4trace:configure.ac:141: -1- AH_OUTPUT([vfork], [/* Define as `fork\' if `vfork\' does not work. */ @%:@undef vfork]) m4trace:configure.ac:141: -1- AC_DEFINE_TRACE_LITERAL([HAVE_WORKING_FORK]) m4trace:configure.ac:141: -1- m4_pattern_allow([^HAVE_WORKING_FORK$]) m4trace:configure.ac:141: -1- AH_OUTPUT([HAVE_WORKING_FORK], [/* Define to 1 if `fork\' works. */ @%:@undef HAVE_WORKING_FORK]) m4trace:configure.ac:142: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the header file. */ @%:@undef HAVE_STDLIB_H]) m4trace:configure.ac:142: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STDLIB_H]) m4trace:configure.ac:142: -1- m4_pattern_allow([^HAVE_STDLIB_H$]) m4trace:configure.ac:142: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MALLOC]) m4trace:configure.ac:142: -1- m4_pattern_allow([^HAVE_MALLOC$]) m4trace:configure.ac:142: -1- AH_OUTPUT([HAVE_MALLOC], [/* Define to 1 if your system has a GNU libc compatible `malloc\' function, and to 0 otherwise. */ @%:@undef HAVE_MALLOC]) m4trace:configure.ac:142: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MALLOC]) m4trace:configure.ac:142: -1- m4_pattern_allow([^HAVE_MALLOC$]) m4trace:configure.ac:142: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS malloc.$ac_objext"]) m4trace:configure.ac:142: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) m4trace:configure.ac:142: -1- m4_pattern_allow([^LIB@&t@OBJS$]) m4trace:configure.ac:142: -1- AC_LIBSOURCE([malloc.c]) m4trace:configure.ac:142: -1- AC_DEFINE_TRACE_LITERAL([malloc]) m4trace:configure.ac:142: -1- m4_pattern_allow([^malloc$]) m4trace:configure.ac:142: -1- AH_OUTPUT([malloc], [/* Define to rpl_malloc if the replacement function should be used. */ @%:@undef malloc]) m4trace:configure.ac:143: -1- AH_OUTPUT([HAVE_BZERO], [/* Define to 1 if you have the `bzero\' function. */ @%:@undef HAVE_BZERO]) m4trace:configure.ac:143: -1- AH_OUTPUT([HAVE_CLOCK_GETTIME], [/* Define to 1 if you have the `clock_gettime\' function. */ @%:@undef HAVE_CLOCK_GETTIME]) m4trace:configure.ac:143: -1- AH_OUTPUT([HAVE_GETTIMEOFDAY], [/* Define to 1 if you have the `gettimeofday\' function. */ @%:@undef HAVE_GETTIMEOFDAY]) m4trace:configure.ac:143: -1- AH_OUTPUT([HAVE_INET_NTOA], [/* Define to 1 if you have the `inet_ntoa\' function. */ @%:@undef HAVE_INET_NTOA]) m4trace:configure.ac:143: -1- AH_OUTPUT([HAVE_MEMMOVE], [/* Define to 1 if you have the `memmove\' function. */ @%:@undef HAVE_MEMMOVE]) m4trace:configure.ac:143: -1- AH_OUTPUT([HAVE_MEMSET], [/* Define to 1 if you have the `memset\' function. */ @%:@undef HAVE_MEMSET]) m4trace:configure.ac:143: -1- AH_OUTPUT([HAVE_SELECT], [/* Define to 1 if you have the `select\' function. */ @%:@undef HAVE_SELECT]) m4trace:configure.ac:143: -1- AH_OUTPUT([HAVE_SOCKET], [/* Define to 1 if you have the `socket\' function. */ @%:@undef HAVE_SOCKET]) m4trace:configure.ac:143: -1- AH_OUTPUT([HAVE_STRCHR], [/* Define to 1 if you have the `strchr\' function. */ @%:@undef HAVE_STRCHR]) m4trace:configure.ac:143: -1- AH_OUTPUT([HAVE_STRDUP], [/* Define to 1 if you have the `strdup\' function. */ @%:@undef HAVE_STRDUP]) m4trace:configure.ac:143: -1- AH_OUTPUT([HAVE_STRTOUL], [/* Define to 1 if you have the `strtoul\' function. */ @%:@undef HAVE_STRTOUL]) m4trace:configure.ac:145: -1- AC_CONFIG_FILES([Makefile src/tcpcrypt_version.h]) m4trace:configure.ac:146: -1- AC_SUBST([LIB@&t@OBJS], [$ac_libobjs]) m4trace:configure.ac:146: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) m4trace:configure.ac:146: -1- m4_pattern_allow([^LIB@&t@OBJS$]) m4trace:configure.ac:146: -1- AC_SUBST([LTLIBOBJS], [$ac_ltlibobjs]) m4trace:configure.ac:146: -1- AC_SUBST_TRACE([LTLIBOBJS]) m4trace:configure.ac:146: -1- m4_pattern_allow([^LTLIBOBJS$]) m4trace:configure.ac:146: -1- AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"]) m4trace:configure.ac:146: -1- AC_SUBST([am__EXEEXT_TRUE]) m4trace:configure.ac:146: -1- AC_SUBST_TRACE([am__EXEEXT_TRUE]) m4trace:configure.ac:146: -1- m4_pattern_allow([^am__EXEEXT_TRUE$]) m4trace:configure.ac:146: -1- AC_SUBST([am__EXEEXT_FALSE]) m4trace:configure.ac:146: -1- AC_SUBST_TRACE([am__EXEEXT_FALSE]) m4trace:configure.ac:146: -1- m4_pattern_allow([^am__EXEEXT_FALSE$]) m4trace:configure.ac:146: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_TRUE]) m4trace:configure.ac:146: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_FALSE]) m4trace:configure.ac:146: -1- AC_SUBST_TRACE([top_builddir]) m4trace:configure.ac:146: -1- AC_SUBST_TRACE([top_build_prefix]) m4trace:configure.ac:146: -1- AC_SUBST_TRACE([srcdir]) m4trace:configure.ac:146: -1- AC_SUBST_TRACE([abs_srcdir]) m4trace:configure.ac:146: -1- AC_SUBST_TRACE([top_srcdir]) m4trace:configure.ac:146: -1- AC_SUBST_TRACE([abs_top_srcdir]) m4trace:configure.ac:146: -1- AC_SUBST_TRACE([builddir]) m4trace:configure.ac:146: -1- AC_SUBST_TRACE([abs_builddir]) m4trace:configure.ac:146: -1- AC_SUBST_TRACE([abs_top_builddir]) m4trace:configure.ac:146: -1- AC_SUBST_TRACE([INSTALL]) m4trace:configure.ac:146: -1- AC_SUBST_TRACE([MKDIR_P]) m4trace:configure.ac:146: -1- AC_REQUIRE_AUX_FILE([ltmain.sh]) tcpcrypt-0.5/autom4te.cache/output.00000644000175200017520000164447012742073022016530 0ustar sorbosorbo@%:@! /bin/sh @%:@ Guess values for system-dependent variables and create Makefiles. @%:@ Generated by GNU Autoconf 2.69 for tcpcrypt 0.5. @%:@ @%:@ Report bugs to . @%:@ @%:@ @%:@ Copyright (C) 1992-1996, 1998-2012 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. as_myself= 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 # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then _as_can_reexec=no; export _as_can_reexec; # 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. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in @%:@ (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 as_fn_exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} 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 test -x / || 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 -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO PATH=/empty FPATH=/empty; export PATH FPATH test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || 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 : export CONFIG_SHELL # 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. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in @%:@ (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 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 and $0: tcpcrypt-users@lists.stanford.edu 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 @S|@? 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 "@S|@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_executable_p FILE @%:@ ----------------------- @%:@ Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } @%:@ as_fn_executable_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 @S|@as_val. Take advantage of shells that can avoid forks. The arguments @%:@ must be portable across @S|@(()) 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 STATUS ERROR [LINENO LOG_FD] @%:@ ---------------------------------------- @%:@ Output "`basename @S|@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=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&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; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall # in an infinite loop. This has already happened in practice. _as_can_reexec=no; export _as_can_reexec # 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 -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' 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 as_test_x='test -x' as_executable_p=as_fn_executable_p # 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'" SHELL=${CONFIG_SHELL-/bin/sh} test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/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=. LIB@&t@OBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='tcpcrypt' PACKAGE_TARNAME='tcpcrypt' PACKAGE_VERSION='0.5' PACKAGE_STRING='tcpcrypt 0.5' PACKAGE_BUGREPORT='tcpcrypt-users@lists.stanford.edu' PACKAGE_URL='http://tcpcrypt.org' ac_unique_file="src/tcpcryptd.c" # 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 LIB@&t@OBJS ALLOCA crypto_LDADD tcpcryptd_LDADD HAVE_NI_FALSE HAVE_NI_TRUE NO_ASM_FALSE NO_ASM_TRUE CXXFLAGS OS_MINGW_FALSE OS_MINGW_TRUE OS_BSD_FALSE OS_BSD_TRUE OS_LINUX_FALSE OS_LINUX_TRUE am__fastdepCCAS_FALSE am__fastdepCCAS_TRUE CCASDEPMODE CCASFLAGS CCAS CPP LT_SYS_LIBRARY_PATH OTOOL64 OTOOL LIPO NMEDIT DSYMUTIL MANIFEST_TOOL RANLIB DLLTOOL OBJDUMP 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 ac_ct_AR AR LN_S am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE am__nodep AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE am__quote am__include DEPDIR OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC TEST_SERVER JAIL_USER JAIL_DIR CONTROL_SOCKET DIVERT_PORT MAINT MAINTAINER_MODE_FALSE MAINTAINER_MODE_TRUE AM_BACKSLASH AM_DEFAULT_VERBOSITY AM_DEFAULT_V AM_V 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_silent_rules enable_maintainer_mode enable_dependency_tracking enable_shared enable_static with_pic enable_fast_install with_aix_soname with_gnu_ld with_sysroot enable_libtool_lock enable_debug enable_asm ' ac_precious_vars='build_alias host_alias target_alias DIVERT_PORT CONTROL_SOCKET JAIL_DIR JAIL_USER TEST_SERVER CC CFLAGS LDFLAGS LIBS CPPFLAGS LT_SYS_LIBRARY_PATH CPP CCAS CCASFLAGS' # 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= ;; *) 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 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 tcpcrypt 0.5 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 @<:@@S|@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/tcpcrypt@:>@ --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 tcpcrypt 0.5:";; 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] --enable-silent-rules less verbose build output (undo: "make V=1") --disable-silent-rules verbose build output (undo: "make V=0") --enable-maintainer-mode enable make rules and dependencies not useful (and sometimes confusing) to the casual installer --enable-dependency-tracking do not reject slow dependency extractors --disable-dependency-tracking speeds up one-time build --enable-shared@<:@=PKGS@:>@ build shared libraries @<:@default=yes@:>@ --enable-static@<:@=PKGS@:>@ build static libraries @<:@default=yes@:>@ --enable-fast-install@<:@=PKGS@:>@ optimize for fast installation @<:@default=yes@:>@ --disable-libtool-lock avoid locking (might break parallel builds) --enable-debug enable tracing and debugging flags for all components --enable-asm use asm checksum routine Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-pic@<:@=PKGS@:>@ try to use only PIC/non-PIC objects @<:@default=use both@:>@ --with-aix-soname=aix|svr4|both shared library versioning (aka "SONAME") variant to provide on AIX, @<:@default=aix@:>@. --with-gnu-ld assume the C compiler uses GNU ld @<:@default=no@:>@ --with-sysroot@<:@=DIR@:>@ Search for dependent libraries within DIR (or the compiler's sysroot if not specified). Some influential environment variables: DIVERT_PORT Default divert port for tcpcryptd CONTROL_SOCKET Default local control socket for tcpcryptd: unix-domain path or localhost port-number JAIL_DIR Default jail directory for tcpcryptd JAIL_USER Default jail username for tcpcryptd TEST_SERVER Default network test server for tcpcryptd 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 LT_SYS_LIBRARY_PATH User-defined run-time library search path. CPP C preprocessor CCAS assembler compiler command (defaults to CC) CCASFLAGS assembler compiler flags (defaults to CFLAGS) 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 . tcpcrypt home page: . _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 tcpcrypt configure 0.5 generated by GNU Autoconf 2.69 Copyright (C) 2012 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.@S|@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; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } @%:@ ac_fn_c_try_compile @%:@ ac_fn_c_try_link LINENO @%:@ ----------------------- @%:@ Try to link conftest.@S|@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 || 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; ${as_lineno_stack:+:} 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 eval \${$3+:} false; 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; ${as_lineno_stack:+:} unset as_lineno } @%:@ ac_fn_c_check_header_compile @%:@ ac_fn_c_try_cpp LINENO @%:@ ---------------------- @%:@ Try to preprocess conftest.@S|@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; } > conftest.i && { 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; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } @%:@ ac_fn_c_try_cpp @%:@ ac_fn_c_try_run LINENO @%:@ ---------------------- @%:@ Try to link conftest.@S|@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; ${as_lineno_stack:+:} 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 eval \${$3+:} false; 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; ${as_lineno_stack:+:} 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 eval \${$3+:} false; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; 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.i 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;} ( $as_echo "## ------------------------------------------------ ## ## Report this to tcpcrypt-users@lists.stanford.edu ## ## ------------------------------------------------ ##" ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; 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; ${as_lineno_stack:+:} unset as_lineno } @%:@ ac_fn_c_check_header_mongrel @%:@ ac_fn_c_check_type LINENO TYPE VAR INCLUDES @%:@ ------------------------------------------- @%:@ Tests whether TYPE exists after having included INCLUDES, setting cache @%:@ variable VAR accordingly. ac_fn_c_check_type () { 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 eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=no" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof ($2)) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof (($2))) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else eval "$3=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 eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } @%:@ ac_fn_c_check_type @%:@ ac_fn_c_find_uintX_t LINENO BITS VAR @%:@ ------------------------------------ @%:@ Finds an unsigned integer type with width BITS, setting cache variable VAR @%:@ accordingly. ac_fn_c_find_uintX_t () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uint$2_t" >&5 $as_echo_n "checking for uint$2_t... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=no" # Order is important - never check a type that is potentially smaller # than half of the expected target width. for ac_type in uint$2_t 'unsigned int' 'unsigned long int' \ 'unsigned long long int' 'unsigned short int' 'unsigned char'; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { static int test_array @<:@1 - 2 * !((($ac_type) -1 >> ($2 / 2 - 1)) >> ($2 / 2 - 1) == 3)@:>@; test_array @<:@0@:>@ = 0; return test_array @<:@0@:>@; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : case $ac_type in @%:@( uint$2_t) : eval "$3=yes" ;; @%:@( *) : eval "$3=\$ac_type" ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if eval test \"x\$"$3"\" = x"no"; then : else break fi done 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; ${as_lineno_stack:+:} unset as_lineno } @%:@ ac_fn_c_find_uintX_t 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 tcpcrypt $as_me 0.5, which was generated by GNU Autoconf 2.69. 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 $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" 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 $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" 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 $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" 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 $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" 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 # We do not want a PATH search for config.site. case $CONFIG_SITE in @%:@(( -*) ac_site_file1=./$CONFIG_SITE;; */*) ac_site_file1=$CONFIG_SITE;; *) ac_site_file1=./$CONFIG_SITE;; esac 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" \ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } 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" ac_aux_dir= for ac_dir in config "$srcdir"/config; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then as_fn_error $? "cannot find install-sh, install.sh, or shtool in config \"$srcdir\"/config" "$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. am__api_version='1.15' # 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 ${ac_cv_path_install+:} false; 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 as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else 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; } # 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 ( am_has_slept=no for am_try in 1 2; do echo "timestamp, slept: $am_has_slept" > conftest.file 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 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 if test "$2" = conftest.file || test $am_try -eq 2; then break fi # Just in case. sleep 1 am_has_slept=yes done 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; } # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= if grep 'slept: no' conftest.file >/dev/null 2>&1; then ( sleep 1 ) & am_sleep_pid=$! fi rm -f conftest.file 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 --is-lightweight"; then am_missing_run="$MISSING " 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+set}" != 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 ${ac_cv_prog_STRIP+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_ac_ct_STRIP+:} false; 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 as_fn_executable_p "$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 ${ac_cv_path_mkdir+:} false; 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 as_fn_executable_p "$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; } 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 ${ac_cv_prog_AWK+:} false; 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 as_fn_executable_p "$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 eval \${ac_cv_prog_make_${ac_make}_set+:} false; 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 @%:@ Check whether --enable-silent-rules was given. if test "${enable_silent_rules+set}" = set; then : enableval=$enable_silent_rules; fi case $enable_silent_rules in @%:@ ((( yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=1;; esac am_make=${MAKE-make} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 $as_echo_n "checking whether $am_make supports nested variables... " >&6; } if ${am_cv_make_support_nested_variables+:} false; then : $as_echo_n "(cached) " >&6 else if $as_echo 'TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 am__doit: @$(TRUE) .PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 $as_echo "$am_cv_make_support_nested_variables" >&6; } if test $am_cv_make_support_nested_variables = yes; then AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi AM_BACKSLASH='\' 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='tcpcrypt' VERSION='0.5' 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"} # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: # # mkdir_p='$(MKDIR_P)' # We need awk for the "check" target (and possibly the TAP driver). The # system "awk" is bad on some platforms. # Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AMTAR='$${TAR-tar}' # We'll loop over all known methods to create a tar archive until one works. _am_tools='gnutar pax cpio none' am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' # POSIX will say in a future version that running "rm -f" with no argument # is OK; and we want to be able to make that assumption in our Makefile # recipes. So use an aggressive probe to check that the usage we want is # actually supported "in the wild" to an acceptable degree. # See automake bug#10828. # To make any issue more visible, cause the running configure to be aborted # by default if the 'rm' program in use doesn't match our expectations; the # user can still override this though. if rm -f && rm -fr && rm -rf; then : OK; else cat >&2 <<'END' Oops! Your 'rm' program seems unable to run without file operands specified on the command line, even when the '-f' option is present. This is contrary to the behaviour of most rm programs out there, and not conforming with the upcoming POSIX standard: Please tell bug-automake@gnu.org about your system, including the value of your $PATH and any error possibly output before this message. This can help us improve future automake versions. END if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then echo 'Configuration will proceed anyway, since you have set the' >&2 echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 echo >&2 else cat >&2 <<'END' Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation that behaves properly: . If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM to "yes", and re-run configure. END as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 $as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } @%:@ Check whether --enable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then : enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval else USE_MAINTAINER_MODE=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 $as_echo "$USE_MAINTAINER_MODE" >&6; } if test $USE_MAINTAINER_MODE = yes; then MAINTAINER_MODE_TRUE= MAINTAINER_MODE_FALSE='#' else MAINTAINER_MODE_TRUE='#' MAINTAINER_MODE_FALSE= fi MAINT=$MAINTAINER_MODE_TRUE if test -n "$DIVERT_PORT"; then cat >>confdefs.h <<_ACEOF @%:@define TCPCRYPTD_DIVERT_PORT $DIVERT_PORT _ACEOF else $as_echo "@%:@define TCPCRYPTD_DIVERT_PORT 666" >>confdefs.h fi if test -n "$CONTROL_SOCKET"; then cat >>confdefs.h <<_ACEOF @%:@define TCPCRYPTD_CONTROL_SOCKET $CONTROL_SOCKET _ACEOF else $as_echo "@%:@define TCPCRYPTD_CONTROL_SOCKET \"/var/run/tcpcryptd.control\"" >>confdefs.h fi if test -n "$JAIL_DIR"; then cat >>confdefs.h <<_ACEOF @%:@define TCPCRYPTD_JAIL_DIR "$JAIL_DIR" _ACEOF else $as_echo "@%:@define TCPCRYPTD_JAIL_DIR \"/var/run/tcpcryptd\"" >>confdefs.h fi if test -n "$JAIL_USER"; then cat >>confdefs.h <<_ACEOF @%:@define TCPCRYPTD_JAIL_USER "$JAIL_USER" _ACEOF else $as_echo "@%:@define TCPCRYPTD_JAIL_USER \"tcpcryptd\"" >>confdefs.h fi if test -n "$TEST_SERVER"; then cat >>confdefs.h <<_ACEOF @%:@define TCPCRYPTD_TEST_SERVER "$TEST_SERVER" _ACEOF else $as_echo "@%:@define TCPCRYPTD_TEST_SERVER \"check.tcpcrypt.org\"" >>confdefs.h fi # Checks for programs. 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 ${ac_cv_prog_CC+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_ac_ct_CC+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_CC+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_CC+:} false; 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $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 ${ac_cv_prog_CC+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_ac_ct_CC+:} false; 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 as_fn_executable_p "$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_error 77 "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 ${ac_cv_objext+:} false; 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 ${ac_cv_c_compiler_gnu+:} false; 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 ${ac_cv_prog_cc_g+:} false; 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 ${ac_cv_prog_cc_c89+:} false; 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 struct stat; /* 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 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 whether $CC understands -c and -o together" >&5 $as_echo_n "checking whether $CC understands -c and -o together... " >&6; } if ${am_cv_prog_cc_c_o+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF # Make sure it works both with $CC and with simple cc. # Following AC_PROG_CC_C_O, we do the test twice because some # compilers refuse to overwrite an existing .o file with -o, # though they will create one. am_cv_prog_cc_c_o=yes for am_i in 1 2; do if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } \ && test -f conftest2.$ac_objext; then : OK else am_cv_prog_cc_c_o=no break fi done rm -f core conftest* unset am_i fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 $as_echo "$am_cv_prog_cc_c_o" >&6; } if test "$am_cv_prog_cc_c_o" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" 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='\' am__nodep='_no' 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 ${am_cv_CC_dependencies_compiler_type+:} false; 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". rm -rf conftest.dir 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 10 /bin/sh. echo '/* dummy */' > 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 ;; msvc7 | msvc7msys | 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 { $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 if test -n "$ac_tool_prefix"; then for ac_prog in ar lib "link -lib" 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 ${ac_cv_prog_AR+:} false; 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AR="$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 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 test -n "$AR" && break done fi if test -z "$AR"; then ac_ct_AR=$AR for ac_prog in ar lib "link -lib" 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 ${ac_cv_prog_ac_ct_AR+:} false; 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="$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_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 test -n "$ac_ct_AR" && break done 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 fi : ${AR=ar} { $as_echo "$as_me:${as_lineno-$LINENO}: checking the archiver ($AR) interface" >&5 $as_echo_n "checking the archiver ($AR) interface... " >&6; } if ${am_cv_ar_interface+:} false; 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 am_cv_ar_interface=ar cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int some_variable = 0; _ACEOF if ac_fn_c_try_compile "$LINENO"; then : am_ar_try='$AR cru libconftest.a conftest.$ac_objext >&5' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$am_ar_try\""; } >&5 (eval $am_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test "$ac_status" -eq 0; then am_cv_ar_interface=ar else am_ar_try='$AR -NOLOGO -OUT:conftest.lib conftest.$ac_objext >&5' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$am_ar_try\""; } >&5 (eval $am_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test "$ac_status" -eq 0; then am_cv_ar_interface=lib else am_cv_ar_interface=unknown fi fi rm -f conftest.lib libconftest.a fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_ar_interface" >&5 $as_echo "$am_cv_ar_interface" >&6; } case $am_cv_ar_interface in ar) ;; lib) # Microsoft lib, so override with the ar-lib wrapper script. # FIXME: It is wrong to rewrite AR. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__AR in this case, # and then we could set am__AR="$am_aux_dir/ar-lib \$(AR)" or something # similar. AR="$am_aux_dir/ar-lib $AR" ;; unknown) as_fn_error $? "could not determine $AR interface" "$LINENO" 5 ;; esac 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.4.6' macro_revision='2.4.6' 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 ${ac_cv_build+:} false; 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 ${ac_cv_host+:} false; 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 # Backslashify 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' ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 $as_echo_n "checking how to print strings... " >&6; } # Test print first, because it will be a builtin if present. if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='print -r --' elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='printf %s\n' else # Use this function as a fallback that always works. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $1 _LTECHO_EOF' } ECHO='func_fallback_echo' fi # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "" } case $ECHO in printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5 $as_echo "printf" >&6; } ;; print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 $as_echo "print -r" >&6; } ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5 $as_echo "cat" >&6; } ;; 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 ${ac_cv_path_SED+:} false; 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" as_fn_executable_p "$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 ${ac_cv_path_GREP+:} false; 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" as_fn_executable_p "$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 ${ac_cv_path_EGREP+:} false; 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" as_fn_executable_p "$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 ${ac_cv_path_FGREP+:} false; 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" as_fn_executable_p "$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 no = "$withval" || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld if test yes = "$GCC"; 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 yes = "$with_gnu_ld"; 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 ${lt_cv_path_LD+:} false; 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 ${lt_cv_prog_gnu_ld+:} false; 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 ${lt_cv_path_NM+:} false; 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 # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty case $build_os in mingw*) lt_bad_file=conftest.nm/nofile ;; *) lt_bad_file=/dev/null ;; esac case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in *$lt_bad_file* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break 2 ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break 2 ;; *) 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 no != "$lt_cv_path_NM"; then NM=$lt_cv_path_NM else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$DUMPBIN"; then : # Let the user override the test. else if test -n "$ac_tool_prefix"; then for ac_prog in dumpbin "link -dump" 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 ${ac_cv_prog_DUMPBIN+:} false; 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 as_fn_executable_p "$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 "link -dump" 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 ${ac_cv_prog_ac_ct_DUMPBIN+:} false; 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 as_fn_executable_p "$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 case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in *COFF*) DUMPBIN="$DUMPBIN -symbols -headers" ;; *) DUMPBIN=: ;; esac 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 ${lt_cv_nm_interface+:} false; 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:$LINENO: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 (eval echo "\"\$as_me:$LINENO: 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; } # 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 ${lt_cv_sys_max_cmd_len+:} false; 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; ;; mint*) # On MiNT this can take a long time and run out of memory. 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; ;; bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*) # 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 ;; os2*) # The test takes a long time on OS/2. lt_cv_sys_max_cmd_len=8192 ;; 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" && \ test undefined != "$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`env echo "$teststring$teststring" 2>/dev/null` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && test 17 != "$i" # 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"} 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 how to convert $build file names to $host format" >&5 $as_echo_n "checking how to convert $build file names to $host format... " >&6; } if ${lt_cv_to_host_file_cmd+:} false; then : $as_echo_n "(cached) " >&6 else case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ;; esac ;; *-*-cygwin* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_noop ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ;; esac ;; * ) # unhandled hosts (and "normal" native builds) lt_cv_to_host_file_cmd=func_convert_file_noop ;; esac fi to_host_file_cmd=$lt_cv_to_host_file_cmd { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 $as_echo "$lt_cv_to_host_file_cmd" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 $as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } if ${lt_cv_to_tool_file_cmd+:} false; then : $as_echo_n "(cached) " >&6 else #assume ordinary cross tools, or native build. lt_cv_to_tool_file_cmd=func_convert_file_noop case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ;; esac ;; esac fi to_tool_file_cmd=$lt_cv_to_tool_file_cmd { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 $as_echo "$lt_cv_to_tool_file_cmd" >&6; } { $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 ${lt_cv_ld_reload_flag+:} false; 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 cygwin* | mingw* | pw32* | cegcc*) if test yes != "$GCC"; then reload_cmds=false fi ;; darwin*) if test yes = "$GCC"; 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 ${ac_cv_prog_OBJDUMP+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_ac_ct_OBJDUMP+:} false; 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 as_fn_executable_p "$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 ${lt_cv_deplibs_check_method+:} false; 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 # that 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 # Keep this pattern in sync with the one in func_win32_libid. lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' 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 ;; haiku*) 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])(-bit)?( [LM]SB)? 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 glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) lt_cv_deplibs_check_method=pass_all ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd* | bitrig*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; 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 ;; os2*) 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_glob= want_nocaseglob=no if test "$build" = "$host"; then case $host_os in mingw* | pw32*) if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then want_nocaseglob=yes else file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` fi ;; esac fi 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}dlltool", so it can be a program name with args. set dummy ${ac_tool_prefix}dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DLLTOOL"; then ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" $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 DLLTOOL=$ac_cv_prog_DLLTOOL if test -n "$DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 $as_echo "$DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DLLTOOL"; then ac_ct_DLLTOOL=$DLLTOOL # Extract the first word of "dlltool", so it can be a program name with args. set dummy dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DLLTOOL"; then ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DLLTOOL="dlltool" $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_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL if test -n "$ac_ct_DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 $as_echo "$ac_ct_DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DLLTOOL" = x; then DLLTOOL="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 DLLTOOL=$ac_ct_DLLTOOL fi else DLLTOOL="$ac_cv_prog_DLLTOOL" fi test -z "$DLLTOOL" && DLLTOOL=dlltool { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 $as_echo_n "checking how to associate runtime and link libraries... " >&6; } if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_sharedlib_from_linklib_cmd='unknown' case $host_os in cygwin* | mingw* | pw32* | cegcc*) # two different shell functions defined in ltmain.sh; # decide which one to use based on capabilities of $DLLTOOL case `$DLLTOOL --help 2>&1` in *--identify-strict*) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ;; *) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ;; esac ;; *) # fallback: assume linklib IS sharedlib lt_cv_sharedlib_from_linklib_cmd=$ECHO ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 $as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO if test -n "$ac_tool_prefix"; then for ac_prog in ar 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 ${ac_cv_prog_AR+:} false; 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AR="$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 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 test -n "$AR" && break done fi if test -z "$AR"; then ac_ct_AR=$AR for ac_prog in ar 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 ${ac_cv_prog_ac_ct_AR+:} false; 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="$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_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 test -n "$ac_ct_AR" && break done 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 fi : ${AR=ar} : ${AR_FLAGS=cru} { $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 $as_echo_n "checking for archiver @FILE support... " >&6; } if ${lt_cv_ar_at_file+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ar_at_file=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : echo conftest.$ac_objext > conftest.lst lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 (eval $lt_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test 0 -eq "$ac_status"; then # Ensure the archiver fails upon bogus file names. rm -f conftest.$ac_objext libconftest.a { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 (eval $lt_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test 0 -ne "$ac_status"; then lt_cv_ar_at_file=@ fi fi rm -f conftest.* libconftest.a fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 $as_echo "$lt_cv_ar_at_file" >&6; } if test no = "$lt_cv_ar_at_file"; then archiver_list_spec= else archiver_list_spec=$lt_cv_ar_at_file fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_STRIP+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_ac_ct_STRIP+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_RANLIB+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_ac_ct_RANLIB+:} false; 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 as_fn_executable_p "$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 bitrig* | openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" fi case $host_os in darwin*) lock_old_archive_extraction=yes ;; *) lock_old_archive_extraction=no ;; esac # 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 ${lt_cv_sys_global_symbol_pipe+:} false; 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 ia64 = "$host_cpu"; 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 if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Gets list of data symbols to import. lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'" # Adjust the below global symbol transforms to fixup imported variables. lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" lt_c_name_lib_hook="\ -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\ -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'" else # Disable hooks by default. lt_cv_sys_global_symbol_to_import= lt_cdecl_hook= lt_c_name_hook= lt_c_name_lib_hook= fi # 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"\ $lt_cdecl_hook\ " -e 's/^T .* \(.*\)$/extern int \1();/p'"\ " -e 's/^$symcode$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"\ $lt_c_name_hook\ " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" # Transform an extracted symbol line into symbol name with lib prefix and # symbol address. lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\ $lt_c_name_lib_hook\ " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ " -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/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, # D for any global variable and I for any imported 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};"\ " /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\ " /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\ " /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\ " {split(\$ 0,a,/\||\r/); split(a[2],s)};"\ " s[1]~/^[@?]/{print f,s[1],s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print f,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 lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" # 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 /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE /* DATA imports from DLLs on WIN32 can't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT@&t@_DLSYM_CONST #elif defined __osf__ /* This system does not cope well with relocations in const data. */ # define LT@&t@_DLSYM_CONST #else # define LT@&t@_DLSYM_CONST const #endif #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. */ LT@&t@_DLSYM_CONST struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$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_globsym_save_LIBS=$LIBS lt_globsym_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_globsym_save_LIBS CFLAGS=$lt_globsym_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 yes = "$pipe_works"; 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 # Response file support. if test "$lt_cv_nm_interface" = "MS dumpbin"; then nm_file_list_spec='@' elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then nm_file_list_spec='@' fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 $as_echo_n "checking for sysroot... " >&6; } @%:@ Check whether --with-sysroot was given. if test "${with_sysroot+set}" = set; then : withval=$with_sysroot; else with_sysroot=no fi lt_sysroot= case $with_sysroot in #( yes) if test yes = "$GCC"; then lt_sysroot=`$CC --print-sysroot 2>/dev/null` fi ;; #( /*) lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` ;; #( no|'') ;; #( *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5 $as_echo "$with_sysroot" >&6; } as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 $as_echo "${lt_sysroot:-no}" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5 $as_echo_n "checking for a working dd... " >&6; } if ${ac_cv_path_lt_DD+:} false; then : $as_echo_n "(cached) " >&6 else printf 0123456789abcdef0123456789abcdef >conftest.i cat conftest.i conftest.i >conftest2.i : ${lt_DD:=$DD} if test -z "$lt_DD"; then ac_path_lt_DD_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 dd; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_lt_DD="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_lt_DD" || continue if "$ac_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then cmp -s conftest.i conftest.out \ && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=: fi $ac_path_lt_DD_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_lt_DD"; then : fi else ac_cv_path_lt_DD=$lt_DD fi rm -f conftest.i conftest2.i conftest.out fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5 $as_echo "$ac_cv_path_lt_DD" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5 $as_echo_n "checking how to truncate binary pipes... " >&6; } if ${lt_cv_truncate_bin+:} false; then : $as_echo_n "(cached) " >&6 else printf 0123456789abcdef0123456789abcdef >conftest.i cat conftest.i conftest.i >conftest2.i lt_cv_truncate_bin= if "$ac_cv_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then cmp -s conftest.i conftest.out \ && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1" fi rm -f conftest.i conftest2.i conftest.out test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5 $as_echo "$lt_cv_truncate_bin" >&6; } # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. func_cc_basename () { for cc_temp in @S|@*""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` } @%:@ Check whether --enable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then : enableval=$enable_libtool_lock; fi test no = "$enable_libtool_lock" || 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 what ABI is being produced by ac_compile, and set mode # options accordingly. 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 what ABI is being produced by ac_compile, and set linker # options accordingly. echo '#line '$LINENO' "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 yes = "$lt_cv_prog_gnu_ld"; 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* ;; mips64*-*linux*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. echo '#line '$LINENO' "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 emul=elf case `/usr/bin/file conftest.$ac_objext` in *32-bit*) emul="${emul}32" ;; *64-bit*) emul="${emul}64" ;; esac case `/usr/bin/file conftest.$ac_objext` in *MSB*) emul="${emul}btsmip" ;; *LSB*) emul="${emul}ltsmip" ;; esac case `/usr/bin/file conftest.$ac_objext` in *N32*) emul="${emul}n32" ;; esac LD="${LD-ld} -m $emul" fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. Note that the listed cases only cover the # situations where additional linker options are needed (such as when # doing 32-bit compilation for a host where ld defaults to 64-bit, or # vice versa); the common cases where no linker options are needed do # not appear in the list. 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*) case `/usr/bin/file conftest.o` in *x86-64*) LD="${LD-ld} -m elf32_x86_64" ;; *) LD="${LD-ld} -m elf_i386" ;; esac ;; powerpc64le-*linux*) LD="${LD-ld} -m elf32lppclinux" ;; 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" ;; powerpcle-*linux*) LD="${LD-ld} -m elf64lppc" ;; 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 ${lt_cv_cc_needs_belf+:} false; 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 yes != "$lt_cv_cc_needs_belf"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS=$SAVE_CFLAGS fi ;; *-*solaris*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. 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*) case $host in i?86-*-solaris*|x86_64-*-solaris*) LD="${LD-ld} -m elf_x86_64" ;; sparc*-*-solaris*) LD="${LD-ld} -m elf64_sparc" ;; esac # GNU ld 2.21 introduced _sol2 emulations. Use them if available. if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then LD=${LD-ld}_sol2 fi ;; *) 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 if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. set dummy ${ac_tool_prefix}mt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$MANIFEST_TOOL"; then ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" $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 MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL if test -n "$MANIFEST_TOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 $as_echo "$MANIFEST_TOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_MANIFEST_TOOL"; then ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL # Extract the first word of "mt", so it can be a program name with args. set dummy mt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_MANIFEST_TOOL"; then ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" $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_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL if test -n "$ac_ct_MANIFEST_TOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 $as_echo "$ac_ct_MANIFEST_TOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_MANIFEST_TOOL" = x; then MANIFEST_TOOL=":" 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 MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL fi else MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" fi test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 $as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } if ${lt_cv_path_mainfest_tool+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_path_mainfest_tool=no echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out cat conftest.err >&5 if $GREP 'Manifest Tool' conftest.out > /dev/null; then lt_cv_path_mainfest_tool=yes fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 $as_echo "$lt_cv_path_mainfest_tool" >&6; } if test yes != "$lt_cv_path_mainfest_tool"; then MANIFEST_TOOL=: fi 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 ${ac_cv_prog_DSYMUTIL+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_NMEDIT+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_ac_ct_NMEDIT+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_LIPO+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_ac_ct_LIPO+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_OTOOL+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_ac_ct_OTOOL+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_OTOOL64+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_ac_ct_OTOOL64+:} false; 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 as_fn_executable_p "$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 ${lt_cv_apple_cc_single_mod+:} false; 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 there is a non-empty error log, and "single_module" # appears in it, assume the flag caused a linker warning if test -s conftest.err && $GREP single_module conftest.err; then cat conftest.err >&5 # Otherwise, if the output was created with a 0 exit code from # the compiler, it worked. elif test -f libconftest.dylib && test 0 = "$_lt_result"; 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 ${lt_cv_ld_exported_symbols_list+:} false; 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; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 $as_echo_n "checking for -force_load linker flag... " >&6; } if ${lt_cv_ld_force_load+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 echo "$AR cru libconftest.a conftest.o" >&5 $AR cru libconftest.a conftest.o 2>&5 echo "$RANLIB libconftest.a" >&5 $RANLIB libconftest.a 2>&5 cat > conftest.c << _LT_EOF int main() { return 0;} _LT_EOF echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err _lt_result=$? if test -s conftest.err && $GREP force_load conftest.err; then cat conftest.err >&5 elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then lt_cv_ld_force_load=yes else cat conftest.err >&5 fi rm -f conftest.err libconftest.a conftest conftest.c rm -rf conftest.dSYM fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 $as_echo "$lt_cv_ld_force_load" >&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 yes = "$lt_cv_apple_cc_single_mod"; then _lt_dar_single_mod='$single_module' fi if test yes = "$lt_cv_ld_exported_symbols_list"; 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" && test no = "$lt_cv_ld_force_load"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac # func_munge_path_list VARIABLE PATH # ----------------------------------- # VARIABLE is name of variable containing _space_ separated list of # directories to be munged by the contents of PATH, which is string # having a format: # "DIR[:DIR]:" # string "DIR[ DIR]" will be prepended to VARIABLE # ":DIR[:DIR]" # string "DIR[ DIR]" will be appended to VARIABLE # "DIRP[:DIRP]::[DIRA:]DIRA" # string "DIRP[ DIRP]" will be prepended to VARIABLE and string # "DIRA[ DIRA]" will be appended to VARIABLE # "DIR[:DIR]" # VARIABLE will be replaced by "DIR[ DIR]" func_munge_path_list () { case x@S|@2 in x) ;; *:) eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'` \@S|@@S|@1\" ;; x:*) eval @S|@1=\"\@S|@@S|@1 `$ECHO @S|@2 | $SED 's/:/ /g'`\" ;; *::*) eval @S|@1=\"\@S|@@S|@1\ `$ECHO @S|@2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" eval @S|@1=\"`$ECHO @S|@2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \@S|@@S|@1\" ;; *) eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'`\" ;; 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 ${ac_cv_prog_CPP+:} false; 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.i 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.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i 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.i 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.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i 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 ${ac_cv_header_stdc+:} false; 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 " if eval test \"x\$"$as_ac_Header"\" = 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" = xyes; 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 --enable-static was given. if test "${enable_static+set}" = set; then : enableval=$enable_static; p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for pkg in $enableval; do IFS=$lt_save_ifs if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS=$lt_save_ifs ;; esac else enable_static=yes fi @%:@ Check whether --with-pic was given. if test "${with_pic+set}" = set; then : withval=$with_pic; lt_p=${PACKAGE-default} case $withval in yes|no) pic_mode=$withval ;; *) pic_mode=default # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for lt_pkg in $withval; do IFS=$lt_save_ifs if test "X$lt_pkg" = "X$lt_p"; then pic_mode=yes fi done IFS=$lt_save_ifs ;; esac else pic_mode=default fi @%:@ Check whether --enable-fast-install was given. if test "${enable_fast_install+set}" = set; then : enableval=$enable_fast_install; p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for pkg in $enableval; do IFS=$lt_save_ifs if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS=$lt_save_ifs ;; esac else enable_fast_install=yes fi shared_archive_member_spec= case $host,$enable_shared in power*-*-aix[5-9]*,yes) { $as_echo "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5 $as_echo_n "checking which variant of shared library versioning to provide... " >&6; } @%:@ Check whether --with-aix-soname was given. if test "${with_aix_soname+set}" = set; then : withval=$with_aix_soname; case $withval in aix|svr4|both) ;; *) as_fn_error $? "Unknown argument to --with-aix-soname" "$LINENO" 5 ;; esac lt_cv_with_aix_soname=$with_aix_soname else if ${lt_cv_with_aix_soname+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_with_aix_soname=aix fi with_aix_soname=$lt_cv_with_aix_soname fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5 $as_echo "$with_aix_soname" >&6; } if test aix != "$with_aix_soname"; then # For the AIX way of multilib, we name the shared archive member # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o', # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File. # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag, # the AIX toolchain works better with OBJECT_MODE set (default 32). if test 64 = "${OBJECT_MODE-32}"; then shared_archive_member_spec=shr_64 else shared_archive_member_spec=shr fi fi ;; *) with_aix_soname=aix ;; esac # 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 ${lt_cv_objdir+:} false; 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 set != "${COLLECT_NAMES+set}"; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # 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 func_cc_basename $compiler cc_basename=$func_cc_basename_result # 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 ${lt_cv_path_MAGIC_CMD+:} false; 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 ${lt_cv_path_MAGIC_CMD+:} false; 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* ## 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... if test -n "$compiler"; then lt_prog_compiler_no_builtin_flag= if test yes = "$GCC"; then case $cc_basename in nvcc*) lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; *) lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; esac { $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 ${lt_cv_prog_compiler_rtti_exceptions+:} false; 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" ## exclude from sc_useless_quotes_in_assignment # 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:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $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 "$_lt_compiler_boilerplate" | $SED '/^$/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 yes = "$lt_cv_prog_compiler_rtti_exceptions"; 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= if test yes = "$GCC"; then lt_prog_compiler_wl='-Wl,' lt_prog_compiler_static='-static' case $host_os in aix*) # All AIX code is PIC. if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' fi lt_prog_compiler_pic='-fPIC' ;; 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' case $host_os in os2*) lt_prog_compiler_static='$wl-static' ;; esac ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. lt_prog_compiler_static= ;; 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 case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 lt_prog_compiler_wl='-Xlinker ' if test -n "$lt_prog_compiler_pic"; then lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic" fi ;; 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 ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' else lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' fi ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' case $cc_basename in nagfor*) # NAG Fortran compiler lt_prog_compiler_wl='-Wl,-Wl,,' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; esac ;; 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' case $host_os in os2*) lt_prog_compiler_static='$wl-static' ;; esac ;; 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 | 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' ;; nagfor*) # NAG Fortran compiler lt_prog_compiler_wl='-Wl,-Wl,,' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; tcc*) # Fabrice Bellard et al's Tiny C Compiler lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # 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* | bgxl* | bgf* | mpixl*) # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-qpic' lt_prog_compiler_static='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) # 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='' ;; *Sun\ F* | *Sun*Fortran*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Qoption ld ' ;; *Sun\ C*) # Sun C 5.9 lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Wl,' ;; *Intel*\ [CF]*Compiler*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; *Portland\ Group*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; 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* | sunf77* | sunf90* | sunf95*) 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 that do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic= ;; *) lt_prog_compiler_pic="$lt_prog_compiler_pic@&t@ -DPIC" ;; esac { $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 ${lt_cv_prog_compiler_pic+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic=$lt_prog_compiler_pic fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 $as_echo "$lt_cv_prog_compiler_pic" >&6; } lt_prog_compiler_pic=$lt_cv_prog_compiler_pic # # 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 ${lt_cv_prog_compiler_pic_works+:} false; 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@&t@ -DPIC" ## exclude from sc_useless_quotes_in_assignment # 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:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $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 "$_lt_compiler_boilerplate" | $SED '/^$/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 yes = "$lt_cv_prog_compiler_pic_works"; 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 ${lt_cv_prog_compiler_static_works+:} false; 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 "$_lt_linker_boilerplate" | $SED '/^$/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 yes = "$lt_cv_prog_compiler_static_works"; 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 ${lt_cv_prog_compiler_c_o+:} false; 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:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $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 "$_lt_compiler_boilerplate" | $SED '/^$/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 ${lt_cv_prog_compiler_c_o+:} false; 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:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $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 "$_lt_compiler_boilerplate" | $SED '/^$/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 no = "$lt_cv_prog_compiler_c_o" && test no != "$need_locks"; 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 no = "$hard_links"; 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_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 yes != "$GCC"; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd* | bitrig*) with_gnu_ld=no ;; esac ld_shlibs=yes # On some targets, GNU ld is compatible enough with the native linker # that we're better off using the native interface for both. lt_use_gnu_ld_interface=no if test yes = "$with_gnu_ld"; then case $host_os in aix*) # The AIX port of GNU ld has always aspired to compatibility # with the native linker. However, as the warning in the GNU ld # block says, versions before 2.19.5* couldn't really create working # shared libraries, regardless of the interface used. case `$LD -v 2>&1` in *\ \(GNU\ Binutils\)\ 2.19.5*) ;; *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; *\ \(GNU\ Binutils\)\ [3-9]*) ;; *) lt_use_gnu_ld_interface=yes ;; esac ;; *) lt_use_gnu_ld_interface=yes ;; esac fi if test yes = "$lt_use_gnu_ld_interface"; 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 | $SED -e 's/(^)\+)\s\+//' 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 ia64 != "$host_cpu"; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.19, 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 install binutils *** 2.20 or above, or modify your PATH so that a non-GNU linker is found. *** You will then need to restart the configuration process. _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' export_dynamic_flag_spec='$wl--export-all-symbols' 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/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' 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, use it as # is; otherwise, prepend EXPORTS... archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; 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 ;; haiku*) archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' link_all_deplibs=yes ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported shrext_cmds=.dll archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ prefix_cmds="$SED"~ if test EXPORTS = "`$SED 1q $export_symbols`"; then prefix_cmds="$prefix_cmds -e 1d"; fi~ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' enable_shared_with_static_runtimes=yes ;; 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 linux-dietlibc = "$host_os"; 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 no = "$tmp_diet" then tmp_addflag=' $pic_flag' 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; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95* | pgfortran*) # 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; func_echo_all \"$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' ;; nagfor*) # NAGFOR 5.3 tmp_sharedflag='-Wl,-shared' ;; xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; nvcc*) # Cuda Compiler Driver 2.2 whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' compiler_needs_object=yes ;; 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; func_echo_all \"$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 yes = "$supports_anon_versioning"; 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 tcc*) export_dynamic_flag_spec='-rdynamic' ;; xlf* | bgf* | bgxlf* | mpixlf*) # 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='$wl-rpath $wl$libdir' archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test yes = "$supports_anon_versioning"; 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 $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else ld_shlibs=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $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 $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $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 cannot *** 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 $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $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 no = "$ld_shlibs"; 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 yes = "$GCC" && 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 ia64 = "$host_cpu"; 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 GNU nm, but means don't demangle to AIX nm. # Without the "-l" option, or with the "-B" option, AIX nm treats # weak defined symbols like other global defined symbols, whereas # GNU nm marks them as "W". # While the 'weak' keyword is ignored in the Export File, we need # it in the Import File for the 'aix-soname' feature, so we have # to replace the "-B" option with "-P" for AIX 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") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' else export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | 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 # have runtime linking enabled, and use it for executables. # For shared libraries, we enable/disable runtime linking # depending on the kind of the shared library created - # when "with_aix_soname,aix_use_runtimelinking" is: # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables # "aix,yes" lib.so shared, rtl:yes, for executables # lib.a static archive # "both,no" lib.so.V(shr.o) shared, rtl:yes # lib.a(lib.so.V) shared, rtl:no, for executables # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a(lib.so.V) shared, rtl:no # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a static archive case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then aix_use_runtimelinking=yes break fi done if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then # With aix-soname=svr4, we create the lib.so.V shared archives only, # so we don't have lib.a shared libs to link our executables. # We have to force runtime linking in this case. aix_use_runtimelinking=yes LDFLAGS="$LDFLAGS -Wl,-brtl" fi ;; 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,' case $with_aix_soname,$aix_use_runtimelinking in aix,*) ;; # traditional, no import file svr4,* | *,yes) # use import file # The Import File defines what to hardcode. hardcode_direct=no hardcode_direct_absolute=no ;; esac if test yes = "$GCC"; 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 yes = "$aix_use_runtimelinking"; then shared_flag="$shared_flag "'$wl-G' fi # Need to ensure runtime linking is disabled for the traditional # shared library, or the linker may eventually find shared libraries # /with/ Import File - we do not want to mix them. shared_flag_aix='-shared' shared_flag_svr4='-shared $wl-G' else # not using gcc if test ia64 = "$host_cpu"; 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 yes = "$aix_use_runtimelinking"; then shared_flag='$wl-G' else shared_flag='$wl-bM:SRE' fi shared_flag_aix='$wl-bM:SRE' shared_flag_svr4='$wl-G' 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,yes = "$with_aix_soname,$aix_use_runtimelinking"; 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. if test set = "${lt_cv_aix_libpath+set}"; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath_+:} false; then : $as_echo_n "(cached) " >&6 else 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 } }' lt_cv_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 "$lt_cv_aix_libpath_"; then lt_cv_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 "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=/usr/lib:/lib fi fi aix_libpath=$lt_cv_aix_libpath_ 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 -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag else if test ia64 = "$host_cpu"; 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. if test set = "${lt_cv_aix_libpath+set}"; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath_+:} false; then : $as_echo_n "(cached) " >&6 else 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 } }' lt_cv_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 "$lt_cv_aix_libpath_"; then lt_cv_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 "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=/usr/lib:/lib fi fi aix_libpath=$lt_cv_aix_libpath_ 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' if test yes = "$with_gnu_ld"; then # We only use this code for GNU lds that support --whole-archive. whole_archive_flag_spec='$wl--whole-archive$convenience $wl--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec='$convenience' fi archive_cmds_need_lc=yes archive_expsym_cmds='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' # -brtl affects multiple linker settings, -berok does not and is overridden later compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([, ]\\)%-berok\\1%g"`' if test svr4 != "$with_aix_soname"; then # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' fi if test aix != "$with_aix_soname"; then archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' else # used by -dlpreopen to get the symbols archive_expsym_cmds="$archive_expsym_cmds"'~$MV $output_objdir/$realname.d/$soname $output_objdir' fi archive_expsym_cmds="$archive_expsym_cmds"'~$RM -r $output_objdir/$realname.d' 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. case $cc_basename in cl*) # Native MSVC hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported always_export_symbols=yes file_list_spec='@' # 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 $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then cp "$export_symbols" "$output_objdir/$soname.def"; echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; else $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, )='true' enable_shared_with_static_runtimes=yes exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' # Don't use ranlib old_postinstall_cmds='chmod 644 $oldlib' postlink_cmds='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile=$lt_outputfile.exe lt_tool_outputfile=$lt_tool_outputfile.exe ;; esac~ if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # Assume MSVC wrapper 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 `func_echo_all "$deplibs" | $SED '\''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' enable_shared_with_static_runtimes=yes ;; esac ;; darwin* | rhapsody*) archive_cmds_need_lc=no hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported if test yes = "$lt_cv_ld_force_load"; then whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' else whole_archive_flag_spec='' fi link_all_deplibs=yes allow_undefined_flag=$_lt_dar_allow_undefined case $cc_basename in ifort*|nagfor*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test yes = "$_lt_dar_can_shared"; then output_verbose_link_cmd=func_echo_all 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 ;; # 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 $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; hpux9*) if test yes = "$GCC"; then archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$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 "x$output_objdir/$soname" = "x$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 yes,no = "$GCC,$with_gnu_ld"; then archive_cmds='$CC -shared $pic_flag $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 no = "$with_gnu_ld"; then hardcode_libdir_flag_spec='$wl+b $wl$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 yes,no = "$GCC,$with_gnu_ld"; 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 $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -shared $pic_flag $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' ;; *) # Older versions of the 11.00 compiler do not understand -b yet # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 $as_echo_n "checking if $CC understands -b... " >&6; } if ${lt_cv_prog_compiler__b+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler__b=no save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -b" 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 "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler__b=yes fi else lt_cv_prog_compiler__b=yes fi fi $RM -r conftest* LDFLAGS=$save_LDFLAGS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 $as_echo "$lt_cv_prog_compiler__b" >&6; } if test yes = "$lt_cv_prog_compiler__b"; then archive_cmds='$CC -b $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 ;; esac fi if test no = "$with_gnu_ld"; 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 yes = "$GCC"; then archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $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. # This should be the same for all languages, so no per-tag cache variable. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 $as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } if ${lt_cv_irix_exported_symbol+:} false; then : $as_echo_n "(cached) " >&6 else 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) { return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_irix_exported_symbol=yes else lt_cv_irix_exported_symbol=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_irix_exported_symbol" >&5 $as_echo "$lt_cv_irix_exported_symbol" >&6; } if test yes = "$lt_cv_irix_exported_symbol"; then archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' fi else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -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 ;; linux*) case $cc_basename in tcc*) # Fabrice Bellard et al's Tiny C Compiler ld_shlibs=yes archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; newsos6) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' hardcode_libdir_separator=: hardcode_shlibpath_var=no ;; *nto* | *qnx*) ;; openbsd* | bitrig*) 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__`"; 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 archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='$wl-rpath,$libdir' fi else ld_shlibs=no fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported shrext_cmds=.dll archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ prefix_cmds="$SED"~ if test EXPORTS = "`$SED 1q $export_symbols`"; then prefix_cmds="$prefix_cmds -e 1d"; fi~ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' enable_shared_with_static_runtimes=yes ;; osf3*) if test yes = "$GCC"; 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" && func_echo_all "$wl-set_version $wl$verstring"` $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" && func_echo_all "-set_version $verstring"` -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 yes = "$GCC"; then allow_undefined_flag=' $wl-expect_unresolved $wl\*' archive_cmds='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; 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 "-set_version $verstring"` -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 yes = "$GCC"; then wlarc='$wl' archive_cmds='$CC -shared $pic_flag $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 $pic_flag $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 yes = "$GCC"; 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 sequent = "$host_vendor"; 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 yes = "$GCC"; 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 CANNOT 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 yes = "$GCC"; 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 sni = "$host_vendor"; 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 no = "$ld_shlibs" && 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 yes,yes = "$GCC,$enable_shared"; 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; } if ${lt_cv_archive_cmds_need_lc+:} false; then : $as_echo_n "(cached) " >&6 else $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 lt_cv_archive_cmds_need_lc=no else lt_cv_archive_cmds_need_lc=yes fi allow_undefined_flag=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 $as_echo "$lt_cv_archive_cmds_need_lc" >&6; } archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc ;; 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 yes = "$GCC"; then case $host_os in darwin*) lt_awk_arg='/^libraries:/,/LR/' ;; *) lt_awk_arg='/^libraries:/' ;; esac case $host_os in mingw* | cegcc*) lt_sed_strip_eq='s|=\([A-Za-z]:\)|\1|g' ;; *) lt_sed_strip_eq='s|=/|/|g' ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` case $lt_search_path_spec in *\;*) # 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 's/;/ /g'` ;; *) lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` ;; esac # 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` # ...but if some path component already ends with the multilib dir we assume # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer). case "$lt_multi_os_dir; $lt_search_path_spec " in "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*) lt_multi_os_dir= ;; esac 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" elif test -n "$lt_multi_os_dir"; then 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; } }'` # AWK program above erroneously prepends '/' to C:/dos/paths # for these hosts. case $host_os in mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ $SED 's|/\([A-Za-z]:\)|\1|g'` ;; esac sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` 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 # correct to gnu/linux during the next big refactor 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 # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes if test ia64 = "$host_cpu"; 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 # Using Import Files as archive members, it is possible to support # filename-based versioning of shared library archives on AIX. While # this would work for both with and without runtime linking, it will # prevent static linking of such archives. So we do filename-based # shared library versioning with .so extension only, which is used # when both runtime linking and shared linking is enabled. # Unfortunately, runtime linking may impact performance, so we do # not want this to be the default eventually. Also, we use the # versioned .so libs for executables only if there is the -brtl # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only. # To allow for filename-based versioning support, we need to create # libNAME.so.V as an archive file, containing: # *) an Import File, referring to the versioned filename of the # archive as well as the shared archive member, telling the # bitwidth (32 or 64) of that shared object, and providing the # list of exported symbols of that shared object, eventually # decorated with the 'weak' keyword # *) the shared object with the F_LOADONLY flag set, to really avoid # it being seen by the linker. # At run time we better use the real file rather than another symlink, # but for link time we create the symlink libNAME.so -> libNAME.so.V case $with_aix_soname,$aix_use_runtimelinking in # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. aix,yes) # traditional libtool dynamic_linker='AIX unversionable lib.so' # 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' ;; aix,no) # traditional AIX only dynamic_linker='AIX lib.a(lib.so.V)' # 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' ;; svr4,*) # full svr4 only dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o)" library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' # We do not specify a path in Import Files, so LIBPATH fires. shlibpath_overrides_runpath=yes ;; *,yes) # both, prefer svr4 dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o), lib.a(lib.so.V)" library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' # unpreferred sharedlib libNAME.a needs extra handling postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"' postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"' # We do not specify a path in Import Files, so LIBPATH fires. shlibpath_overrides_runpath=yes ;; *,no) # both, prefer aix dynamic_linker="AIX lib.a(lib.so.V), lib.so.V($shared_archive_member_spec.o)" library_names_spec='$libname$release.a $libname.a' soname_spec='$libname$release$shared_ext$major' # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)' postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"' ;; esac 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=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; $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 # correct to gnu/linux during the next big refactor 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,$cc_basename in yes,*) # gcc 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="$sys_lib_search_path_spec /usr/lib/w32api" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' ;; 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 dynamic_linker='Win32 ld.exe' ;; *,cl*) # Native MSVC libname_spec='$name' soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' library_names_spec='$libname.dll.lib' case $build_os in mingw*) sys_lib_search_path_spec= lt_save_ifs=$IFS IFS=';' for lt_path in $LIB do IFS=$lt_save_ifs # Let DOS variable expansion print the short 8.3 style file name. lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" done IFS=$lt_save_ifs # Convert to MSYS style. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form # but this time dos style (no spaces!) so that the unix form looks # like /cygdrive/c/PROGRA~1:/cygdr... sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) sys_lib_search_path_spec=$LIB if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH. 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 # FIXME: find the short name or the path components, as spaces are # common. (e.g. "Program Files" -> "PROGRA~1") ;; esac # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \$file`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes dynamic_linker='Win32 link.exe' ;; *) # Assume MSVC wrapper library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac # 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 # correct to gnu/linux during the next big refactor 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 ;; 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[23].*) 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$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' 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 ;; haiku*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" 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=LIBRARY_PATH shlibpath_overrides_runpath=no sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' 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 32 = "$HPUX_IA64_MODE"; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" sys_lib_dlsearch_path_spec=/usr/lib/hpux32 else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" sys_lib_dlsearch_path_spec=/usr/lib/hpux64 fi ;; 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' # or fails outright, so override atomically: install_override_mode=555 ;; interix[3-9]*) version_type=linux # correct to gnu/linux during the next big refactor 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 yes = "$lt_cv_prog_gnu_ld"; then version_type=linux # correct to gnu/linux during the next big refactor 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 ;; linux*android*) version_type=none # Android doesn't support versioned libraries. need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext' soname_spec='$libname$release$shared_ext' finish_cmds= shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # 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 dynamic_linker='Android linker' # Don't embed -rpath directories since the linker doesn't support them. hardcode_libdir_flag_spec='-L$libdir' ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) version_type=linux # correct to gnu/linux during the next big refactor 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 if ${lt_cv_shlibpath_overrides_runpath+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_shlibpath_overrides_runpath=no 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 : lt_cv_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 fi shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # 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 # Ideally, we could use ldconfig to report *all* directores which are # searched for libraries, however this is still not possible. Aside from not # being certain /sbin/ldconfig is available, command # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, # even though it is searched at run-time. Try to do the best guess by # appending ld.so.conf contents (and includes) 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;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' ;; 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 # correct to gnu/linux during the next big refactor 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* | bitrig*) version_type=sunos sys_lib_dlsearch_path_spec=/usr/lib need_lib_prefix=no if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then need_version=no else need_version=yes fi 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 shlibpath_overrides_runpath=yes ;; os2*) libname_spec='$name' version_type=windows shrext_cmds=.dll need_version=no need_lib_prefix=no # OS/2 can only load a DLL with a base name of 8 characters or less. soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; v=$($ECHO $release$versuffix | tr -d .-); n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); $ECHO $n$v`$shared_ext' library_names_spec='${libname}_dll.$libext' dynamic_linker='OS/2 ld.exe' shlibpath_var=BEGINLIBPATH sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec 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' ;; 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 # correct to gnu/linux during the next big refactor 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 yes = "$with_gnu_ld"; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux # correct to gnu/linux during the next big refactor 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 # correct to gnu/linux during the next big refactor 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=sco 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 yes = "$with_gnu_ld"; 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 # correct to gnu/linux during the next big refactor 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 # correct to gnu/linux during the next big refactor 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 no = "$dynamic_linker" && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test yes = "$GCC"; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec fi if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec fi # remember unaugmented sys_lib_dlsearch_path content for libtool script decls... configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec # ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" # to be used as default LT_SYS_LIBRARY_PATH value in generated libtool configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH { $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 yes = "$hardcode_automatic"; then # We can hardcode non-existent directories. if test no != "$hardcode_direct" && # 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 no != "$_LT_TAGVAR(hardcode_shlibpath_var, )" && test no != "$hardcode_minus_L"; 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 relink = "$hardcode_action" || test yes = "$inherit_rpath"; then # Fast installation is not supported enable_fast_install=no elif test yes = "$shlibpath_overrides_runpath" || test no = "$enable_shared"; then # Fast installation is not necessary enable_fast_install=needless fi if test yes != "$enable_dlopen"; 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 ${ac_cv_lib_dl_dlopen+:} false; 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" = xyes; 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 ;; tpf*) # Don't try to run any link tests for TPF. We know it's impossible # because TPF is a cross-compiler, and we know how we open DSOs. lt_cv_dlopen=dlopen lt_cv_dlopen_libs= lt_cv_dlopen_self=no ;; *) ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" if test "x$ac_cv_func_shl_load" = xyes; 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 ${ac_cv_lib_dld_shl_load+:} false; 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" = xyes; 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" = xyes; 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 ${ac_cv_lib_dl_dlopen+:} false; 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" = xyes; 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 ${ac_cv_lib_svld_dlopen+:} false; 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" = xyes; 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 ${ac_cv_lib_dld_dld_link+:} false; 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" = xyes; then : lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld fi fi fi fi fi fi ;; esac if test no = "$lt_cv_dlopen"; then enable_dlopen=no else enable_dlopen=yes fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS=$CPPFLAGS test yes = "$ac_cv_header_dlfcn_h" && 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 ${lt_cv_dlopen_self+:} false; then : $as_echo_n "(cached) " >&6 else if test yes = "$cross_compiling"; 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 $LINENO "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 /* When -fvisibility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 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; else puts (dlerror ()); } /* 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 yes = "$lt_cv_dlopen_self"; 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 ${lt_cv_dlopen_self_static+:} false; then : $as_echo_n "(cached) " >&6 else if test yes = "$cross_compiling"; 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 $LINENO "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 /* When -fvisibility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 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; else puts (dlerror ()); } /* 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 what 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 no = "$can_build_shared" && 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 yes = "$enable_shared" && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[4-9]*) if test ia64 != "$host_cpu"; then case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in yes,aix,yes) ;; # shared object as lib.so file only yes,svr4,*) ;; # shared object as lib.so archive member only yes,*) enable_static=no ;; # shared object in lib.a archive as well esac 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 yes = "$enable_shared" || 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: # By default we simply use the C compiler to build assembly code. test "${CCAS+set}" = set || CCAS=$CC test "${CCASFLAGS+set}" = set || CCASFLAGS=$CFLAGS depcc="$CCAS" 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 ${am_cv_CCAS_dependencies_compiler_type+:} false; 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". rm -rf conftest.dir 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_CCAS_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 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 10 /bin/sh. echo '/* dummy */' > 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 ;; msvc7 | msvc7msys | 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_CCAS_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CCAS_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CCAS_dependencies_compiler_type" >&5 $as_echo "$am_cv_CCAS_dependencies_compiler_type" >&6; } CCASDEPMODE=depmode=$am_cv_CCAS_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CCAS_dependencies_compiler_type" = gcc3; then am__fastdepCCAS_TRUE= am__fastdepCCAS_FALSE='#' else am__fastdepCCAS_TRUE='#' am__fastdepCCAS_FALSE= fi # Check platform { $as_echo "$as_me:${as_lineno-$LINENO}: checking OS" >&5 $as_echo_n "checking OS... " >&6; } if echo $host_os | grep linux ; then os_linux=1 else os_linux=0 fi if test "$os_linux" -eq 1; then OS_LINUX_TRUE= OS_LINUX_FALSE='#' else OS_LINUX_TRUE='#' OS_LINUX_FALSE= fi if echo $host_os | grep -E 'darwin|freebsd'; then OS_BSD_TRUE= OS_BSD_FALSE='#' else OS_BSD_TRUE='#' OS_BSD_FALSE= fi if echo $host_os | grep mingw; then OS_MINGW_TRUE= OS_MINGW_FALSE='#' else OS_MINGW_TRUE='#' OS_MINGW_FALSE= fi if test "$os_linux" -eq 1; then : $as_echo "@%:@define OS_LINUX 1" >>confdefs.h else $as_echo "@%:@define OS_LINUX 0" >>confdefs.h fi CFLAGS="$CFLAGS -Wall -Wno-deprecated-declarations" # DEBUG @%:@ Check whether --enable-debug was given. if test "${enable_debug+set}" = set; then : enableval=$enable_debug; enable_debug="$enableval" fi if test "${enable_debug}" = yes; then CXXFLAGS="$CXXFLAGS -DDEBUG -g" CFLAGS="$CFLAGS -DDEBUG -g" fi # ASM { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use asm checksum routine" >&5 $as_echo_n "checking whether to use asm checksum routine... " >&6; } @%:@ Check whether --enable-asm was given. if test "${enable_asm+set}" = set; then : enableval=$enable_asm; enable_asm="$enableval" else enable_asm="no" fi if test "${enable_asm}" = yes; 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; } $as_echo "@%:@define NO_ASM 1" >>confdefs.h fi if test x$enable_asm = xno; then NO_ASM_TRUE= NO_ASM_FALSE='#' else NO_ASM_TRUE='#' NO_ASM_FALSE= fi if false; then HAVE_NI_TRUE= HAVE_NI_FALSE='#' else HAVE_NI_TRUE='#' HAVE_NI_FALSE= fi # libs { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cap_set_flag in -lcap" >&5 $as_echo_n "checking for cap_set_flag in -lcap... " >&6; } if ${ac_cv_lib_cap_cap_set_flag+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lcap $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 cap_set_flag (); int main () { return cap_set_flag (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_cap_cap_set_flag=yes else ac_cv_lib_cap_cap_set_flag=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_cap_cap_set_flag" >&5 $as_echo "$ac_cv_lib_cap_cap_set_flag" >&6; } if test "x$ac_cv_lib_cap_cap_set_flag" = xyes; then : tcpcryptd_LDADD="-lcap $tcpcryptd_LDADD" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EVP_OpenInit in -lcrypto" >&5 $as_echo_n "checking for EVP_OpenInit in -lcrypto... " >&6; } if ${ac_cv_lib_crypto_EVP_OpenInit+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lcrypto $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 EVP_OpenInit (); int main () { return EVP_OpenInit (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_crypto_EVP_OpenInit=yes else ac_cv_lib_crypto_EVP_OpenInit=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_crypto_EVP_OpenInit" >&5 $as_echo "$ac_cv_lib_crypto_EVP_OpenInit" >&6; } if test "x$ac_cv_lib_crypto_EVP_OpenInit" = xyes; then : crypto_LDADD="-lcrypto" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nfq_open in -lnetfilter_queue" >&5 $as_echo_n "checking for nfq_open in -lnetfilter_queue... " >&6; } if ${ac_cv_lib_netfilter_queue_nfq_open+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lnetfilter_queue $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 nfq_open (); int main () { return nfq_open (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_netfilter_queue_nfq_open=yes else ac_cv_lib_netfilter_queue_nfq_open=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_netfilter_queue_nfq_open" >&5 $as_echo "$ac_cv_lib_netfilter_queue_nfq_open" >&6; } if test "x$ac_cv_lib_netfilter_queue_nfq_open" = xyes; then : tcpcryptd_LDADD="-lnetfilter_queue $tcpcryptd_LDADD" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nfct_open in -lnetfilter_conntrack" >&5 $as_echo_n "checking for nfct_open in -lnetfilter_conntrack... " >&6; } if ${ac_cv_lib_netfilter_conntrack_nfct_open+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lnetfilter_conntrack $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 nfct_open (); int main () { return nfct_open (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_netfilter_conntrack_nfct_open=yes else ac_cv_lib_netfilter_conntrack_nfct_open=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_netfilter_conntrack_nfct_open" >&5 $as_echo "$ac_cv_lib_netfilter_conntrack_nfct_open" >&6; } if test "x$ac_cv_lib_netfilter_conntrack_nfct_open" = xyes; then : tcpcryptd_LDADD="-lnetfilter_conntrack $tcpcryptd_LDADD" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nfnl_rcvbufsiz in -lnfnetlink" >&5 $as_echo_n "checking for nfnl_rcvbufsiz in -lnfnetlink... " >&6; } if ${ac_cv_lib_nfnetlink_nfnl_rcvbufsiz+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lnfnetlink $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 nfnl_rcvbufsiz (); int main () { return nfnl_rcvbufsiz (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_nfnetlink_nfnl_rcvbufsiz=yes else ac_cv_lib_nfnetlink_nfnl_rcvbufsiz=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_nfnetlink_nfnl_rcvbufsiz" >&5 $as_echo "$ac_cv_lib_nfnetlink_nfnl_rcvbufsiz" >&6; } if test "x$ac_cv_lib_nfnetlink_nfnl_rcvbufsiz" = xyes; then : tcpcryptd_LDADD="-lnfnetlink $tcpcryptd_LDADD" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pcap_open_live in -lpcap" >&5 $as_echo_n "checking for pcap_open_live in -lpcap... " >&6; } if ${ac_cv_lib_pcap_pcap_open_live+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lpcap $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 pcap_open_live (); int main () { return pcap_open_live (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_pcap_pcap_open_live=yes else ac_cv_lib_pcap_pcap_open_live=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_pcap_pcap_open_live" >&5 $as_echo "$ac_cv_lib_pcap_pcap_open_live" >&6; } if test "x$ac_cv_lib_pcap_pcap_open_live" = xyes; then : tcpcryptd_LDADD="-lpcap $tcpcryptd_LDADD" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_create in -lpthread" >&5 $as_echo_n "checking for pthread_create in -lpthread... " >&6; } if ${ac_cv_lib_pthread_pthread_create+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lpthread $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 pthread_create (); int main () { return pthread_create (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_pthread_pthread_create=yes else ac_cv_lib_pthread_pthread_create=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_pthread_pthread_create" >&5 $as_echo "$ac_cv_lib_pthread_pthread_create" >&6; } if test "x$ac_cv_lib_pthread_pthread_create" = xyes; then : cat >>confdefs.h <<_ACEOF @%:@define HAVE_LIBPTHREAD 1 _ACEOF LIBS="-lpthread $LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bind in -lwsock32" >&5 $as_echo_n "checking for bind in -lwsock32... " >&6; } if ${ac_cv_lib_wsock32_bind+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lwsock32 $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 bind (); int main () { return bind (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_wsock32_bind=yes else ac_cv_lib_wsock32_bind=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_wsock32_bind" >&5 $as_echo "$ac_cv_lib_wsock32_bind" >&6; } if test "x$ac_cv_lib_wsock32_bind" = xyes; then : cat >>confdefs.h <<_ACEOF @%:@define HAVE_LIBWSOCK32 1 _ACEOF LIBS="-lwsock32 $LIBS" fi # TODO: find symbol name { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GetAdaptersInfo in -liphlpapi" >&5 $as_echo_n "checking for GetAdaptersInfo in -liphlpapi... " >&6; } if ${ac_cv_lib_iphlpapi_GetAdaptersInfo+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-liphlpapi $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 GetAdaptersInfo (); int main () { return GetAdaptersInfo (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_iphlpapi_GetAdaptersInfo=yes else ac_cv_lib_iphlpapi_GetAdaptersInfo=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_iphlpapi_GetAdaptersInfo" >&5 $as_echo "$ac_cv_lib_iphlpapi_GetAdaptersInfo" >&6; } if test "x$ac_cv_lib_iphlpapi_GetAdaptersInfo" = xyes; then : cat >>confdefs.h <<_ACEOF @%:@define HAVE_LIBIPHLPAPI 1 _ACEOF LIBS="-liphlpapi $LIBS" fi # TODO: find symbol name # Checks for header files. for ac_header in arpa/inet.h fcntl.h limits.h netinet/in.h stddef.h stdint.h stdlib.h string.h strings.h sys/socket.h sys/time.h unistd.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF @%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done # Checks for typedefs, structures, and compiler characteristics. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 $as_echo_n "checking for inline... " >&6; } if ${ac_cv_c_inline+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifndef __cplusplus typedef int foo_t; static $ac_kw foo_t static_foo () {return 0; } $ac_kw foo_t foo () {return 0; } #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_inline=$ac_kw fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext test "$ac_cv_c_inline" != no && break done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 $as_echo "$ac_cv_c_inline" >&6; } case $ac_cv_c_inline in inline | yes) ;; *) case $ac_cv_c_inline in no) ac_val=;; *) ac_val=$ac_cv_c_inline;; esac cat >>confdefs.h <<_ACEOF #ifndef __cplusplus #define inline $ac_val #endif _ACEOF ;; esac ac_fn_c_check_type "$LINENO" "mode_t" "ac_cv_type_mode_t" "$ac_includes_default" if test "x$ac_cv_type_mode_t" = xyes; then : else cat >>confdefs.h <<_ACEOF @%:@define mode_t int _ACEOF fi ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" if test "x$ac_cv_type_size_t" = xyes; then : else cat >>confdefs.h <<_ACEOF @%:@define size_t unsigned int _ACEOF fi ac_fn_c_check_type "$LINENO" "ssize_t" "ac_cv_type_ssize_t" "$ac_includes_default" if test "x$ac_cv_type_ssize_t" = xyes; then : else cat >>confdefs.h <<_ACEOF @%:@define ssize_t int _ACEOF fi ac_fn_c_find_uintX_t "$LINENO" "16" "ac_cv_c_uint16_t" case $ac_cv_c_uint16_t in #( no|yes) ;; #( *) cat >>confdefs.h <<_ACEOF @%:@define uint16_t $ac_cv_c_uint16_t _ACEOF ;; esac ac_fn_c_find_uintX_t "$LINENO" "32" "ac_cv_c_uint32_t" case $ac_cv_c_uint32_t in #( no|yes) ;; #( *) $as_echo "@%:@define _UINT32_T 1" >>confdefs.h cat >>confdefs.h <<_ACEOF @%:@define uint32_t $ac_cv_c_uint32_t _ACEOF ;; esac ac_fn_c_find_uintX_t "$LINENO" "64" "ac_cv_c_uint64_t" case $ac_cv_c_uint64_t in #( no|yes) ;; #( *) $as_echo "@%:@define _UINT64_T 1" >>confdefs.h cat >>confdefs.h <<_ACEOF @%:@define uint64_t $ac_cv_c_uint64_t _ACEOF ;; esac ac_fn_c_find_uintX_t "$LINENO" "8" "ac_cv_c_uint8_t" case $ac_cv_c_uint8_t in #( no|yes) ;; #( *) $as_echo "@%:@define _UINT8_T 1" >>confdefs.h cat >>confdefs.h <<_ACEOF @%:@define uint8_t $ac_cv_c_uint8_t _ACEOF ;; esac ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default" if test "x$ac_cv_type_ptrdiff_t" = xyes; then : cat >>confdefs.h <<_ACEOF @%:@define HAVE_PTRDIFF_T 1 _ACEOF fi # testing ac_config_commands="$ac_config_commands tests/atconfig" ac_config_files="$ac_config_files tests/atlocal" # Checks for library functions. # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # for constant arguments. Useless! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5 $as_echo_n "checking for working alloca.h... " >&6; } if ${ac_cv_working_alloca_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @%:@include int main () { char *p = (char *) alloca (2 * sizeof (int)); if (p) return 0; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_working_alloca_h=yes else ac_cv_working_alloca_h=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: $ac_cv_working_alloca_h" >&5 $as_echo "$ac_cv_working_alloca_h" >&6; } if test $ac_cv_working_alloca_h = yes; then $as_echo "@%:@define HAVE_ALLOCA_H 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5 $as_echo_n "checking for alloca... " >&6; } if ${ac_cv_func_alloca_works+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __GNUC__ # define alloca __builtin_alloca #else # ifdef _MSC_VER # include # define alloca _alloca # else # ifdef HAVE_ALLOCA_H # include # else # ifdef _AIX #pragma alloca # else # ifndef alloca /* predefined by HP cc +Olibcalls */ void *alloca (size_t); # endif # endif # endif # endif #endif int main () { char *p = (char *) alloca (1); if (p) return 0; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_func_alloca_works=yes else ac_cv_func_alloca_works=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: $ac_cv_func_alloca_works" >&5 $as_echo "$ac_cv_func_alloca_works" >&6; } if test $ac_cv_func_alloca_works = yes; then $as_echo "@%:@define HAVE_ALLOCA 1" >>confdefs.h else # The SVR3 libPW and SVR4 libucb both contain incompatible functions # that cause trouble. Some versions do not even contain alloca or # contain a buggy version. If you still want to use their alloca, # use ar to extract alloca.o from them instead of compiling alloca.c. ALLOCA=\${LIBOBJDIR}alloca.$ac_objext $as_echo "@%:@define C_ALLOCA 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether \`alloca.c' needs Cray hooks" >&5 $as_echo_n "checking whether \`alloca.c' needs Cray hooks... " >&6; } if ${ac_cv_os_cray+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined CRAY && ! defined CRAY2 webecray #else wenotbecray #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "webecray" >/dev/null 2>&1; then : ac_cv_os_cray=yes else ac_cv_os_cray=no fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_os_cray" >&5 $as_echo "$ac_cv_os_cray" >&6; } if test $ac_cv_os_cray = yes; then for ac_func in _getb67 GETB67 getb67; do as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF @%:@define CRAY_STACKSEG_END $ac_func _ACEOF break fi done fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5 $as_echo_n "checking stack direction for C alloca... " >&6; } if ${ac_cv_c_stack_direction+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_c_stack_direction=0 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int find_stack_direction (int *addr, int depth) { int dir, dummy = 0; if (! addr) addr = &dummy; *addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1; dir = depth ? find_stack_direction (addr, depth - 1) : 0; return dir + dummy; } int main (int argc, char **argv) { return find_stack_direction (0, argc + !argv + 20) < 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_c_stack_direction=1 else ac_cv_c_stack_direction=-1 fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_stack_direction" >&5 $as_echo "$ac_cv_c_stack_direction" >&6; } cat >>confdefs.h <<_ACEOF @%:@define STACK_DIRECTION $ac_cv_c_stack_direction _ACEOF fi ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default" if test "x$ac_cv_type_pid_t" = xyes; then : else cat >>confdefs.h <<_ACEOF @%:@define pid_t int _ACEOF fi for ac_header in vfork.h do : ac_fn_c_check_header_mongrel "$LINENO" "vfork.h" "ac_cv_header_vfork_h" "$ac_includes_default" if test "x$ac_cv_header_vfork_h" = xyes; then : cat >>confdefs.h <<_ACEOF @%:@define HAVE_VFORK_H 1 _ACEOF fi done for ac_func in fork vfork do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF @%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done if test "x$ac_cv_func_fork" = xyes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working fork" >&5 $as_echo_n "checking for working fork... " >&6; } if ${ac_cv_func_fork_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_func_fork_works=cross else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { /* By Ruediger Kuhlmann. */ return fork () < 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_fork_works=yes else ac_cv_func_fork_works=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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_fork_works" >&5 $as_echo "$ac_cv_func_fork_works" >&6; } else ac_cv_func_fork_works=$ac_cv_func_fork fi if test "x$ac_cv_func_fork_works" = xcross; then case $host in *-*-amigaos* | *-*-msdosdjgpp*) # Override, as these systems have only a dummy fork() stub ac_cv_func_fork_works=no ;; *) ac_cv_func_fork_works=yes ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&5 $as_echo "$as_me: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&2;} fi ac_cv_func_vfork_works=$ac_cv_func_vfork if test "x$ac_cv_func_vfork" = xyes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working vfork" >&5 $as_echo_n "checking for working vfork... " >&6; } if ${ac_cv_func_vfork_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_func_vfork_works=cross else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Thanks to Paul Eggert for this test. */ $ac_includes_default #include #ifdef HAVE_VFORK_H # include #endif /* On some sparc systems, changes by the child to local and incoming argument registers are propagated back to the parent. The compiler is told about this with #include , but some compilers (e.g. gcc -O) don't grok . Test for this by using a static variable whose address is put into a register that is clobbered by the vfork. */ static void #ifdef __cplusplus sparc_address_test (int arg) # else sparc_address_test (arg) int arg; #endif { static pid_t child; if (!child) { child = vfork (); if (child < 0) { perror ("vfork"); _exit(2); } if (!child) { arg = getpid(); write(-1, "", 0); _exit (arg); } } } int main () { pid_t parent = getpid (); pid_t child; sparc_address_test (0); child = vfork (); if (child == 0) { /* Here is another test for sparc vfork register problems. This test uses lots of local variables, at least as many local variables as main has allocated so far including compiler temporaries. 4 locals are enough for gcc 1.40.3 on a Solaris 4.1.3 sparc, but we use 8 to be safe. A buggy compiler should reuse the register of parent for one of the local variables, since it will think that parent can't possibly be used any more in this routine. Assigning to the local variable will thus munge parent in the parent process. */ pid_t p = getpid(), p1 = getpid(), p2 = getpid(), p3 = getpid(), p4 = getpid(), p5 = getpid(), p6 = getpid(), p7 = getpid(); /* Convince the compiler that p..p7 are live; otherwise, it might use the same hardware register for all 8 local variables. */ if (p != p1 || p != p2 || p != p3 || p != p4 || p != p5 || p != p6 || p != p7) _exit(1); /* On some systems (e.g. IRIX 3.3), vfork doesn't separate parent from child file descriptors. If the child closes a descriptor before it execs or exits, this munges the parent's descriptor as well. Test for this by closing stdout in the child. */ _exit(close(fileno(stdout)) != 0); } else { int status; struct stat st; while (wait(&status) != child) ; return ( /* Was there some problem with vforking? */ child < 0 /* Did the child fail? (This shouldn't happen.) */ || status /* Did the vfork/compiler bug occur? */ || parent != getpid() /* Did the file descriptor bug occur? */ || fstat(fileno(stdout), &st) != 0 ); } } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_vfork_works=yes else ac_cv_func_vfork_works=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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_vfork_works" >&5 $as_echo "$ac_cv_func_vfork_works" >&6; } fi; if test "x$ac_cv_func_fork_works" = xcross; then ac_cv_func_vfork_works=$ac_cv_func_vfork { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&5 $as_echo "$as_me: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&2;} fi if test "x$ac_cv_func_vfork_works" = xyes; then $as_echo "@%:@define HAVE_WORKING_VFORK 1" >>confdefs.h else $as_echo "@%:@define vfork fork" >>confdefs.h fi if test "x$ac_cv_func_fork_works" = xyes; then $as_echo "@%:@define HAVE_WORKING_FORK 1" >>confdefs.h fi for ac_header in stdlib.h do : ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default" if test "x$ac_cv_header_stdlib_h" = xyes; then : cat >>confdefs.h <<_ACEOF @%:@define HAVE_STDLIB_H 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible malloc" >&5 $as_echo_n "checking for GNU libc compatible malloc... " >&6; } if ${ac_cv_func_malloc_0_nonnull+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_func_malloc_0_nonnull=no else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined STDC_HEADERS || defined HAVE_STDLIB_H # include #else char *malloc (); #endif int main () { return ! malloc (0); ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_malloc_0_nonnull=yes else ac_cv_func_malloc_0_nonnull=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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_malloc_0_nonnull" >&5 $as_echo "$ac_cv_func_malloc_0_nonnull" >&6; } if test $ac_cv_func_malloc_0_nonnull = yes; then : $as_echo "@%:@define HAVE_MALLOC 1" >>confdefs.h else $as_echo "@%:@define HAVE_MALLOC 0" >>confdefs.h case " $LIB@&t@OBJS " in *" malloc.$ac_objext "* ) ;; *) LIB@&t@OBJS="$LIB@&t@OBJS malloc.$ac_objext" ;; esac $as_echo "@%:@define malloc rpl_malloc" >>confdefs.h fi for ac_func in bzero clock_gettime gettimeofday inet_ntoa memmove memset select socket strchr strdup strtoul do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF @%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done ac_config_files="$ac_config_files Makefile src/tcpcrypt_version.h" 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 if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi 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= U= for ac_i in : $LIB@&t@OBJS; 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 LIB@&t@OBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs { $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 $as_echo_n "checking that generated files are newer than configure... " >&6; } if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 $as_echo "done" >&6; } if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' else am__EXEEXT_TRUE='#' am__EXEEXT_FALSE= fi if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 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 if test -z "${am__fastdepCCAS_TRUE}" && test -z "${am__fastdepCCAS_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCCAS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${OS_LINUX_TRUE}" && test -z "${OS_LINUX_FALSE}"; then as_fn_error $? "conditional \"OS_LINUX\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${OS_BSD_TRUE}" && test -z "${OS_BSD_FALSE}"; then as_fn_error $? "conditional \"OS_BSD\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${OS_MINGW_TRUE}" && test -z "${OS_MINGW_FALSE}"; then as_fn_error $? "conditional \"OS_MINGW\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${NO_ASM_TRUE}" && test -z "${NO_ASM_FALSE}"; then as_fn_error $? "conditional \"NO_ASM\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_NI_TRUE}" && test -z "${HAVE_NI_FALSE}"; then as_fn_error $? "conditional \"HAVE_NI\" 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. as_myself= 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 STATUS ERROR [LINENO LOG_FD] @%:@ ---------------------------------------- @%:@ Output "`basename @S|@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=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } @%:@ as_fn_error @%:@ as_fn_set_status STATUS @%:@ ----------------------- @%:@ Set @S|@? 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 @S|@as_val. Take advantage of shells that can avoid forks. The arguments @%:@ must be portable across @S|@(()) 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 -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null @%:@ as_fn_mkdir_p @%:@ ------------- @%:@ Create "@S|@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 @%:@ as_fn_executable_p FILE @%:@ ----------------------- @%:@ Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } @%:@ as_fn_executable_p as_test_x='test -x' as_executable_p=as_fn_executable_p # 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 tcpcrypt $as_me 0.5, which was generated by GNU Autoconf 2.69. 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 . tcpcrypt home page: ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ tcpcrypt config.status 0.5 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" Copyright (C) 2012 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=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= 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"` ;; '') as_fn_error $? "missing file argument" ;; 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' macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' shared_archive_member_spec='`$ECHO "$shared_archive_member_spec" | $SED "$delay_single_quote_subst"`' SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_import='`$ECHO "$lt_cv_sys_global_symbol_to_import" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' lt_cv_nm_interface='`$ECHO "$lt_cv_nm_interface" | $SED "$delay_single_quote_subst"`' nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' lt_cv_truncate_bin='`$ECHO "$lt_cv_truncate_bin" | $SED "$delay_single_quote_subst"`' objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' configure_time_dlsearch_path='`$ECHO "$configure_time_dlsearch_path" | $SED "$delay_single_quote_subst"`' configure_time_lt_sys_library_path='`$ECHO "$configure_time_lt_sys_library_path" | $SED "$delay_single_quote_subst"`' hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$1 _LTECHO_EOF' } # Quote evaled strings. for var in SHELL \ ECHO \ PATH_SEPARATOR \ SED \ GREP \ EGREP \ FGREP \ LD \ NM \ LN_S \ lt_SP2NL \ lt_NL2SP \ reload_flag \ OBJDUMP \ deplibs_check_method \ file_magic_cmd \ file_magic_glob \ want_nocaseglob \ DLLTOOL \ sharedlib_from_linklib_cmd \ AR \ AR_FLAGS \ archiver_list_spec \ STRIP \ RANLIB \ CC \ CFLAGS \ compiler \ lt_cv_sys_global_symbol_pipe \ lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_import \ lt_cv_sys_global_symbol_to_c_name_address \ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ lt_cv_nm_interface \ nm_file_list_spec \ lt_cv_truncate_bin \ lt_prog_compiler_no_builtin_flag \ lt_prog_compiler_pic \ lt_prog_compiler_wl \ lt_prog_compiler_static \ lt_cv_prog_compiler_c_o \ need_locks \ MANIFEST_TOOL \ 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_separator \ exclude_expsyms \ include_expsyms \ file_list_spec \ variables_saved_for_relink \ libname_spec \ library_names_spec \ soname_spec \ install_override_mode \ finish_eval \ old_striplib \ striplib; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes ;; *) 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 \ postlink_cmds \ postinstall_cmds \ postuninstall_cmds \ finish_cmds \ sys_lib_search_path_spec \ configure_time_dlsearch_path \ configure_time_lt_sys_library_path; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done ac_aux_dir='$ac_aux_dir' # See if we are running on zsh, and set the options that 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' 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" ;; "tests/atconfig") CONFIG_COMMANDS="$CONFIG_COMMANDS tests/atconfig" ;; "tests/atlocal") CONFIG_FILES="$CONFIG_FILES tests/atlocal" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "src/tcpcrypt_version.h") CONFIG_FILES="$CONFIG_FILES src/tcpcrypt_version.h" ;; *) 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= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_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 -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # 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 {' >"$ac_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 >>"\$ac_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 >>"\$ac_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 < "$ac_tmp/subs1.awk" > "$ac_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 sole $(srcdir), # ${srcdir} and @srcdir@ entries 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[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// 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 >"$ac_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_tt=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_tt"; 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="$ac_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 1 "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 >"$ac_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 "$ac_tmp/subs.awk" \ >$ac_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' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_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 "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_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 "$ac_tmp/defines.awk"' "$ac_file_inputs" } >"$ac_tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 if diff "$ac_file" "$ac_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 "$ac_tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_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"" || { # Older Autoconf 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"` # 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'`; 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 that 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 # Generated automatically by $as_me ($PACKAGE) $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. # Provide generalized library-building support services. # Written by Gordon Matzigkeit, 1996 # Copyright (C) 2014 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 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 this program. If not, see . # The names of the tagged configurations supported by this script. available_tags='' # Configured defaults for sys_lib_dlsearch_path munging. : \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"} # ### BEGIN LIBTOOL CONFIG # 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 # Whether or not to build static libraries. build_old_libs=$enable_static # What type of objects to build. pic_mode=$pic_mode # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # Shared archive member basename,for filename based shared library versioning on AIX. shared_archive_member_spec=$shared_archive_member_spec # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # An echo program that protects backslashes. ECHO=$lt_ECHO # The PATH separator for the build system. PATH_SEPARATOR=$lt_PATH_SEPARATOR # 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 # convert \$build file names to \$host format. to_host_file_cmd=$lt_cv_to_host_file_cmd # convert \$build files to toolchain format. to_tool_file_cmd=$lt_cv_to_tool_file_cmd # 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 # How to find potential files when deplibs_check_method = "file_magic". file_magic_glob=$lt_file_magic_glob # Find potential files using nocaseglob when deplibs_check_method = "file_magic". want_nocaseglob=$lt_want_nocaseglob # DLL creation program. DLLTOOL=$lt_DLLTOOL # Command to associate shared and link libraries. sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd # The archiver. AR=$lt_AR # Flags to create an archive. AR_FLAGS=$lt_AR_FLAGS # How to feed a file listing to the archiver. archiver_list_spec=$lt_archiver_list_spec # 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 # Whether to use a lock for old archive extraction. lock_old_archive_extraction=$lock_old_archive_extraction # 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 into a list of symbols to manually relocate. global_symbol_to_import=$lt_lt_cv_sys_global_symbol_to_import # 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 lister interface. nm_interface=$lt_lt_cv_nm_interface # Specify filename containing input files for \$NM. nm_file_list_spec=$lt_nm_file_list_spec # The root where to search for dependent libraries,and where our libraries should be installed. lt_sysroot=$lt_sysroot # Command to truncate a binary pipe. lt_truncate_bin=$lt_lt_cv_truncate_bin # The name of the directory that contains temporary libtool files. objdir=$objdir # 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 # Manifest tool. MANIFEST_TOOL=$lt_MANIFEST_TOOL # 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 # Permission mode override for installation of shared libraries. install_override_mode=$lt_install_override_mode # 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 # Detected run-time system search path for libraries. sys_lib_dlsearch_path_spec=$lt_configure_time_dlsearch_path # Explicit LT_SYS_LIBRARY_PATH set during ./configure time. configure_time_lt_sys_library_path=$lt_configure_time_lt_sys_library_path # 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 # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # 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 # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl # 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 # 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 # 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 # Commands necessary for finishing linking programs. postlink_cmds=$lt_postlink_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 cat <<'_LT_EOF' >> "$cfgfile" # ### BEGIN FUNCTIONS SHARED WITH CONFIGURE # func_munge_path_list VARIABLE PATH # ----------------------------------- # VARIABLE is name of variable containing _space_ separated list of # directories to be munged by the contents of PATH, which is string # having a format: # "DIR[:DIR]:" # string "DIR[ DIR]" will be prepended to VARIABLE # ":DIR[:DIR]" # string "DIR[ DIR]" will be appended to VARIABLE # "DIRP[:DIRP]::[DIRA:]DIRA" # string "DIRP[ DIRP]" will be prepended to VARIABLE and string # "DIRA[ DIRA]" will be appended to VARIABLE # "DIR[:DIR]" # VARIABLE will be replaced by "DIR[ DIR]" func_munge_path_list () { case x@S|@2 in x) ;; *:) eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'` \@S|@@S|@1\" ;; x:*) eval @S|@1=\"\@S|@@S|@1 `$ECHO @S|@2 | $SED 's/:/ /g'`\" ;; *::*) eval @S|@1=\"\@S|@@S|@1\ `$ECHO @S|@2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" eval @S|@1=\"`$ECHO @S|@2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \@S|@@S|@1\" ;; *) eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'`\" ;; esac } # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. func_cc_basename () { for cc_temp in @S|@*""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` } # ### END FUNCTIONS SHARED WITH CONFIGURE _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 set != "${COLLECT_NAMES+set}"; 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 '$q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ;; "tests/atconfig":C) cat >tests/atconfig </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 1 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 tcpcrypt-0.5/autom4te.cache/traces.20000644000175200017520000035520212742073026016446 0ustar sorbosorbom4trace:/usr/share/aclocal/ltargz.m4:12: -1- AC_DEFUN([LT_FUNC_ARGZ], [ AC_CHECK_HEADERS([argz.h], [], [], [AC_INCLUDES_DEFAULT]) AC_CHECK_TYPES([error_t], [], [AC_DEFINE([error_t], [int], [Define to a type to use for 'error_t' if it is not otherwise available.]) AC_DEFINE([__error_t_defined], [1], [Define so that glibc/gnulib argp.h does not typedef error_t.])], [#if defined(HAVE_ARGZ_H) # include #endif]) LT_ARGZ_H= AC_CHECK_FUNCS([argz_add argz_append argz_count argz_create_sep argz_insert \ argz_next argz_stringify], [], [LT_ARGZ_H=lt__argz.h; AC_LIBOBJ([lt__argz])]) dnl if have system argz functions, allow forced use of dnl libltdl-supplied implementation (and default to do so dnl on "known bad" systems). Could use a runtime check, but dnl (a) detecting malloc issues is notoriously unreliable dnl (b) only known system that declares argz functions, dnl provides them, yet they are broken, is cygwin dnl releases prior to 16-Mar-2007 (1.5.24 and earlier) dnl So, it's more straightforward simply to special case dnl this for known bad systems. AS_IF([test -z "$LT_ARGZ_H"], [AC_CACHE_CHECK( [if argz actually works], [lt_cv_sys_argz_works], [[case $host_os in #( *cygwin*) lt_cv_sys_argz_works=no if test no != "$cross_compiling"; then lt_cv_sys_argz_works="guessing no" else lt_sed_extract_leading_digits='s/^\([0-9\.]*\).*/\1/' save_IFS=$IFS IFS=-. set x `uname -r | sed -e "$lt_sed_extract_leading_digits"` IFS=$save_IFS lt_os_major=${2-0} lt_os_minor=${3-0} lt_os_micro=${4-0} if test 1 -lt "$lt_os_major" \ || { test 1 -eq "$lt_os_major" \ && { test 5 -lt "$lt_os_minor" \ || { test 5 -eq "$lt_os_minor" \ && test 24 -lt "$lt_os_micro"; }; }; }; then lt_cv_sys_argz_works=yes fi fi ;; #( *) lt_cv_sys_argz_works=yes ;; esac]]) AS_IF([test yes = "$lt_cv_sys_argz_works"], [AC_DEFINE([HAVE_WORKING_ARGZ], 1, [This value is set to 1 to indicate that the system argz facility works])], [LT_ARGZ_H=lt__argz.h AC_LIBOBJ([lt__argz])])]) AC_SUBST([LT_ARGZ_H]) ]) m4trace:/usr/share/aclocal/ltdl.m4:16: -1- AC_DEFUN([LT_CONFIG_LTDL_DIR], [AC_BEFORE([$0], [LTDL_INIT]) _$0($*) ]) m4trace:/usr/share/aclocal/ltdl.m4:68: -1- AC_DEFUN([LTDL_CONVENIENCE], [AC_BEFORE([$0], [LTDL_INIT])dnl dnl Although the argument is deprecated and no longer documented, dnl LTDL_CONVENIENCE used to take a DIRECTORY orgument, if we have one dnl here make sure it is the same as any other declaration of libltdl's dnl location! This also ensures lt_ltdl_dir is set when configure.ac is dnl not yet using an explicit LT_CONFIG_LTDL_DIR. m4_ifval([$1], [_LT_CONFIG_LTDL_DIR([$1])])dnl _$0() ]) m4trace:/usr/share/aclocal/ltdl.m4:81: -1- AU_DEFUN([AC_LIBLTDL_CONVENIENCE], [_LT_CONFIG_LTDL_DIR([m4_default([$1], [libltdl])]) _LTDL_CONVENIENCE]) m4trace:/usr/share/aclocal/ltdl.m4:81: -1- AC_DEFUN([AC_LIBLTDL_CONVENIENCE], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBLTDL_CONVENIENCE' is obsolete. You should run autoupdate.])dnl _LT_CONFIG_LTDL_DIR([m4_default([$1], [libltdl])]) _LTDL_CONVENIENCE]) m4trace:/usr/share/aclocal/ltdl.m4:124: -1- AC_DEFUN([LTDL_INSTALLABLE], [AC_BEFORE([$0], [LTDL_INIT])dnl dnl Although the argument is deprecated and no longer documented, dnl LTDL_INSTALLABLE used to take a DIRECTORY orgument, if we have one dnl here make sure it is the same as any other declaration of libltdl's dnl location! This also ensures lt_ltdl_dir is set when configure.ac is dnl not yet using an explicit LT_CONFIG_LTDL_DIR. m4_ifval([$1], [_LT_CONFIG_LTDL_DIR([$1])])dnl _$0() ]) m4trace:/usr/share/aclocal/ltdl.m4:137: -1- AU_DEFUN([AC_LIBLTDL_INSTALLABLE], [_LT_CONFIG_LTDL_DIR([m4_default([$1], [libltdl])]) _LTDL_INSTALLABLE]) m4trace:/usr/share/aclocal/ltdl.m4:137: -1- AC_DEFUN([AC_LIBLTDL_INSTALLABLE], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBLTDL_INSTALLABLE' is obsolete. You should run autoupdate.])dnl _LT_CONFIG_LTDL_DIR([m4_default([$1], [libltdl])]) _LTDL_INSTALLABLE]) m4trace:/usr/share/aclocal/ltdl.m4:213: -1- AC_DEFUN([_LT_LIBOBJ], [ m4_pattern_allow([^_LT_LIBOBJS$]) _LT_LIBOBJS="$_LT_LIBOBJS $1.$ac_objext" ]) m4trace:/usr/share/aclocal/ltdl.m4:226: -1- AC_DEFUN([LTDL_INIT], [dnl Parse OPTIONS _LT_SET_OPTIONS([$0], [$1]) dnl We need to keep our own list of libobjs separate from our parent project, dnl and the easiest way to do that is redefine the AC_LIBOBJs macro while dnl we look for our own LIBOBJs. m4_pushdef([AC_LIBOBJ], m4_defn([_LT_LIBOBJ])) m4_pushdef([AC_LIBSOURCES]) dnl If not otherwise defined, default to the 1.5.x compatible subproject mode: m4_if(_LTDL_MODE, [], [m4_define([_LTDL_MODE], m4_default([$2], [subproject])) m4_if([-1], [m4_bregexp(_LTDL_MODE, [\(subproject\|\(non\)?recursive\)])], [m4_fatal([unknown libltdl mode: ]_LTDL_MODE)])]) AC_ARG_WITH([included_ltdl], [AS_HELP_STRING([--with-included-ltdl], [use the GNU ltdl sources included here])]) if test yes != "$with_included_ltdl"; then # We are not being forced to use the included libltdl sources, so # decide whether there is a useful installed version we can use. AC_CHECK_HEADER([ltdl.h], [AC_CHECK_DECL([lt_dlinterface_register], [AC_CHECK_LIB([ltdl], [lt_dladvise_preload], [with_included_ltdl=no], [with_included_ltdl=yes])], [with_included_ltdl=yes], [AC_INCLUDES_DEFAULT #include ])], [with_included_ltdl=yes], [AC_INCLUDES_DEFAULT] ) fi dnl If neither LT_CONFIG_LTDL_DIR, LTDL_CONVENIENCE nor LTDL_INSTALLABLE dnl was called yet, then for old times' sake, we assume libltdl is in an dnl eponymous directory: AC_PROVIDE_IFELSE([LT_CONFIG_LTDL_DIR], [], [_LT_CONFIG_LTDL_DIR([libltdl])]) AC_ARG_WITH([ltdl_include], [AS_HELP_STRING([--with-ltdl-include=DIR], [use the ltdl headers installed in DIR])]) if test -n "$with_ltdl_include"; then if test -f "$with_ltdl_include/ltdl.h"; then : else AC_MSG_ERROR([invalid ltdl include directory: '$with_ltdl_include']) fi else with_ltdl_include=no fi AC_ARG_WITH([ltdl_lib], [AS_HELP_STRING([--with-ltdl-lib=DIR], [use the libltdl.la installed in DIR])]) if test -n "$with_ltdl_lib"; then if test -f "$with_ltdl_lib/libltdl.la"; then : else AC_MSG_ERROR([invalid ltdl library directory: '$with_ltdl_lib']) fi else with_ltdl_lib=no fi case ,$with_included_ltdl,$with_ltdl_include,$with_ltdl_lib, in ,yes,no,no,) m4_case(m4_default(_LTDL_TYPE, [convenience]), [convenience], [_LTDL_CONVENIENCE], [installable], [_LTDL_INSTALLABLE], [m4_fatal([unknown libltdl build type: ]_LTDL_TYPE)]) ;; ,no,no,no,) # If the included ltdl is not to be used, then use the # preinstalled libltdl we found. AC_DEFINE([HAVE_LTDL], [1], [Define this if a modern libltdl is already installed]) LIBLTDL=-lltdl LTDLDEPS= LTDLINCL= ;; ,no*,no,*) AC_MSG_ERROR(['--with-ltdl-include' and '--with-ltdl-lib' options must be used together]) ;; *) with_included_ltdl=no LIBLTDL="-L$with_ltdl_lib -lltdl" LTDLDEPS= LTDLINCL=-I$with_ltdl_include ;; esac INCLTDL=$LTDLINCL # Report our decision... AC_MSG_CHECKING([where to find libltdl headers]) AC_MSG_RESULT([$LTDLINCL]) AC_MSG_CHECKING([where to find libltdl library]) AC_MSG_RESULT([$LIBLTDL]) _LTDL_SETUP dnl restore autoconf definition. m4_popdef([AC_LIBOBJ]) m4_popdef([AC_LIBSOURCES]) AC_CONFIG_COMMANDS_PRE([ _ltdl_libobjs= _ltdl_ltlibobjs= if test -n "$_LT_LIBOBJS"; then # Remove the extension. _lt_sed_drop_objext='s/\.o$//;s/\.obj$//' for i in `for i in $_LT_LIBOBJS; do echo "$i"; done | sed "$_lt_sed_drop_objext" | sort -u`; do _ltdl_libobjs="$_ltdl_libobjs $lt_libobj_prefix$i.$ac_objext" _ltdl_ltlibobjs="$_ltdl_ltlibobjs $lt_libobj_prefix$i.lo" done fi AC_SUBST([ltdl_LIBOBJS], [$_ltdl_libobjs]) AC_SUBST([ltdl_LTLIBOBJS], [$_ltdl_ltlibobjs]) ]) # Only expand once: m4_define([LTDL_INIT]) ]) m4trace:/usr/share/aclocal/ltdl.m4:352: -1- AU_DEFUN([AC_LIB_LTDL], [LTDL_INIT($@)]) m4trace:/usr/share/aclocal/ltdl.m4:352: -1- AC_DEFUN([AC_LIB_LTDL], [AC_DIAGNOSE([obsolete], [The macro `AC_LIB_LTDL' is obsolete. You should run autoupdate.])dnl LTDL_INIT($@)]) m4trace:/usr/share/aclocal/ltdl.m4:353: -1- AU_DEFUN([AC_WITH_LTDL], [LTDL_INIT($@)]) m4trace:/usr/share/aclocal/ltdl.m4:353: -1- AC_DEFUN([AC_WITH_LTDL], [AC_DIAGNOSE([obsolete], [The macro `AC_WITH_LTDL' is obsolete. You should run autoupdate.])dnl LTDL_INIT($@)]) m4trace:/usr/share/aclocal/ltdl.m4:354: -1- AU_DEFUN([LT_WITH_LTDL], [LTDL_INIT($@)]) m4trace:/usr/share/aclocal/ltdl.m4:354: -1- AC_DEFUN([LT_WITH_LTDL], [AC_DIAGNOSE([obsolete], [The macro `LT_WITH_LTDL' is obsolete. You should run autoupdate.])dnl LTDL_INIT($@)]) m4trace:/usr/share/aclocal/ltdl.m4:367: -1- AC_DEFUN([_LTDL_SETUP], [AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([LT_SYS_MODULE_EXT])dnl AC_REQUIRE([LT_SYS_MODULE_PATH])dnl AC_REQUIRE([LT_SYS_DLSEARCH_PATH])dnl AC_REQUIRE([LT_LIB_DLLOAD])dnl AC_REQUIRE([LT_SYS_SYMBOL_USCORE])dnl AC_REQUIRE([LT_FUNC_DLSYM_USCORE])dnl AC_REQUIRE([LT_SYS_DLOPEN_DEPLIBS])dnl AC_REQUIRE([LT_FUNC_ARGZ])dnl m4_require([_LT_CHECK_OBJDIR])dnl m4_require([_LT_HEADER_DLFCN])dnl m4_require([_LT_CHECK_DLPREOPEN])dnl m4_require([_LT_DECL_SED])dnl dnl Don't require this, or it will be expanded earlier than the code dnl that sets the variables it relies on: _LT_ENABLE_INSTALL dnl _LTDL_MODE specific code must be called at least once: _LTDL_MODE_DISPATCH # In order that ltdl.c can compile, find out the first AC_CONFIG_HEADERS # the user used. This is so that ltdl.h can pick up the parent projects # config.h file, The first file in AC_CONFIG_HEADERS must contain the # definitions required by ltdl.c. # FIXME: Remove use of undocumented AC_LIST_HEADERS (2.59 compatibility). AC_CONFIG_COMMANDS_PRE([dnl m4_pattern_allow([^LT_CONFIG_H$])dnl m4_ifset([AH_HEADER], [LT_CONFIG_H=AH_HEADER], [m4_ifset([AC_LIST_HEADERS], [LT_CONFIG_H=`echo "AC_LIST_HEADERS" | $SED 's|^[[ ]]*||;s|[[ :]].*$||'`], [])])]) AC_SUBST([LT_CONFIG_H]) AC_CHECK_HEADERS([unistd.h dl.h sys/dl.h dld.h mach-o/dyld.h dirent.h], [], [], [AC_INCLUDES_DEFAULT]) AC_CHECK_FUNCS([closedir opendir readdir], [], [AC_LIBOBJ([lt__dirent])]) AC_CHECK_FUNCS([strlcat strlcpy], [], [AC_LIBOBJ([lt__strl])]) m4_pattern_allow([LT_LIBEXT])dnl AC_DEFINE_UNQUOTED([LT_LIBEXT],["$libext"],[The archive extension]) name= eval "lt_libprefix=\"$libname_spec\"" m4_pattern_allow([LT_LIBPREFIX])dnl AC_DEFINE_UNQUOTED([LT_LIBPREFIX],["$lt_libprefix"],[The archive prefix]) name=ltdl eval "LTDLOPEN=\"$libname_spec\"" AC_SUBST([LTDLOPEN]) ]) m4trace:/usr/share/aclocal/ltdl.m4:443: -1- AC_DEFUN([LT_SYS_DLOPEN_DEPLIBS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_CACHE_CHECK([whether deplibs are loaded by dlopen], [lt_cv_sys_dlopen_deplibs], [# PORTME does your system automatically load deplibs for dlopen? # or its logical equivalent (e.g. shl_load for HP-UX < 11) # For now, we just catch OSes we know something about -- in the # future, we'll try test this programmatically. lt_cv_sys_dlopen_deplibs=unknown case $host_os in aix3*|aix4.1.*|aix4.2.*) # Unknown whether this is true for these versions of AIX, but # we want this 'case' here to explicitly catch those versions. lt_cv_sys_dlopen_deplibs=unknown ;; aix[[4-9]]*) lt_cv_sys_dlopen_deplibs=yes ;; amigaos*) case $host_cpu in powerpc) lt_cv_sys_dlopen_deplibs=no ;; esac ;; bitrig*) lt_cv_sys_dlopen_deplibs=yes ;; darwin*) # Assuming the user has installed a libdl from somewhere, this is true # If you are looking for one http://www.opendarwin.org/projects/dlcompat lt_cv_sys_dlopen_deplibs=yes ;; freebsd* | dragonfly*) lt_cv_sys_dlopen_deplibs=yes ;; gnu* | linux* | k*bsd*-gnu | kopensolaris*-gnu) # GNU and its variants, using gnu ld.so (Glibc) lt_cv_sys_dlopen_deplibs=yes ;; hpux10*|hpux11*) lt_cv_sys_dlopen_deplibs=yes ;; interix*) lt_cv_sys_dlopen_deplibs=yes ;; irix[[12345]]*|irix6.[[01]]*) # Catch all versions of IRIX before 6.2, and indicate that we don't # know how it worked for any of those versions. lt_cv_sys_dlopen_deplibs=unknown ;; irix*) # The case above catches anything before 6.2, and it's known that # at 6.2 and later dlopen does load deplibs. lt_cv_sys_dlopen_deplibs=yes ;; netbsd*) lt_cv_sys_dlopen_deplibs=yes ;; openbsd*) lt_cv_sys_dlopen_deplibs=yes ;; osf[[1234]]*) # dlopen did load deplibs (at least at 4.x), but until the 5.x series, # it did *not* use an RPATH in a shared library to find objects the # library depends on, so we explicitly say 'no'. lt_cv_sys_dlopen_deplibs=no ;; osf5.0|osf5.0a|osf5.1) # dlopen *does* load deplibs and with the right loader patch applied # it even uses RPATH in a shared library to search for shared objects # that the library depends on, but there's no easy way to know if that # patch is installed. Since this is the case, all we can really # say is unknown -- it depends on the patch being installed. If # it is, this changes to 'yes'. Without it, it would be 'no'. lt_cv_sys_dlopen_deplibs=unknown ;; osf*) # the two cases above should catch all versions of osf <= 5.1. Read # the comments above for what we know about them. # At > 5.1, deplibs are loaded *and* any RPATH in a shared library # is used to find them so we can finally say 'yes'. lt_cv_sys_dlopen_deplibs=yes ;; qnx*) lt_cv_sys_dlopen_deplibs=yes ;; solaris*) lt_cv_sys_dlopen_deplibs=yes ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) libltdl_cv_sys_dlopen_deplibs=yes ;; esac ]) if test yes != "$lt_cv_sys_dlopen_deplibs"; then AC_DEFINE([LTDL_DLOPEN_DEPLIBS], [1], [Define if the OS needs help to load dependent libraries for dlopen().]) fi ]) m4trace:/usr/share/aclocal/ltdl.m4:545: -1- AU_DEFUN([AC_LTDL_SYS_DLOPEN_DEPLIBS], [m4_if($#, 0, [LT_SYS_DLOPEN_DEPLIBS], [LT_SYS_DLOPEN_DEPLIBS($@)])]) m4trace:/usr/share/aclocal/ltdl.m4:545: -1- AC_DEFUN([AC_LTDL_SYS_DLOPEN_DEPLIBS], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_SYS_DLOPEN_DEPLIBS' is obsolete. You should run autoupdate.])dnl m4_if($#, 0, [LT_SYS_DLOPEN_DEPLIBS], [LT_SYS_DLOPEN_DEPLIBS($@)])]) m4trace:/usr/share/aclocal/ltdl.m4:552: -1- AC_DEFUN([LT_SYS_MODULE_EXT], [m4_require([_LT_SYS_DYNAMIC_LINKER])dnl AC_CACHE_CHECK([what extension is used for runtime loadable modules], [libltdl_cv_shlibext], [ module=yes eval libltdl_cv_shlibext=$shrext_cmds module=no eval libltdl_cv_shrext=$shrext_cmds ]) if test -n "$libltdl_cv_shlibext"; then m4_pattern_allow([LT_MODULE_EXT])dnl AC_DEFINE_UNQUOTED([LT_MODULE_EXT], ["$libltdl_cv_shlibext"], [Define to the extension used for runtime loadable modules, say, ".so".]) fi if test "$libltdl_cv_shrext" != "$libltdl_cv_shlibext"; then m4_pattern_allow([LT_SHARED_EXT])dnl AC_DEFINE_UNQUOTED([LT_SHARED_EXT], ["$libltdl_cv_shrext"], [Define to the shared library suffix, say, ".dylib".]) fi if test -n "$shared_archive_member_spec"; then m4_pattern_allow([LT_SHARED_LIB_MEMBER])dnl AC_DEFINE_UNQUOTED([LT_SHARED_LIB_MEMBER], ["($shared_archive_member_spec.o)"], [Define to the shared archive member specification, say "(shr.o)".]) fi ]) m4trace:/usr/share/aclocal/ltdl.m4:580: -1- AU_DEFUN([AC_LTDL_SHLIBEXT], [m4_if($#, 0, [LT_SYS_MODULE_EXT], [LT_SYS_MODULE_EXT($@)])]) m4trace:/usr/share/aclocal/ltdl.m4:580: -1- AC_DEFUN([AC_LTDL_SHLIBEXT], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_SHLIBEXT' is obsolete. You should run autoupdate.])dnl m4_if($#, 0, [LT_SYS_MODULE_EXT], [LT_SYS_MODULE_EXT($@)])]) m4trace:/usr/share/aclocal/ltdl.m4:587: -1- AC_DEFUN([LT_SYS_MODULE_PATH], [m4_require([_LT_SYS_DYNAMIC_LINKER])dnl AC_CACHE_CHECK([what variable specifies run-time module search path], [lt_cv_module_path_var], [lt_cv_module_path_var=$shlibpath_var]) if test -n "$lt_cv_module_path_var"; then m4_pattern_allow([LT_MODULE_PATH_VAR])dnl AC_DEFINE_UNQUOTED([LT_MODULE_PATH_VAR], ["$lt_cv_module_path_var"], [Define to the name of the environment variable that determines the run-time module search path.]) fi ]) m4trace:/usr/share/aclocal/ltdl.m4:599: -1- AU_DEFUN([AC_LTDL_SHLIBPATH], [m4_if($#, 0, [LT_SYS_MODULE_PATH], [LT_SYS_MODULE_PATH($@)])]) m4trace:/usr/share/aclocal/ltdl.m4:599: -1- AC_DEFUN([AC_LTDL_SHLIBPATH], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_SHLIBPATH' is obsolete. You should run autoupdate.])dnl m4_if($#, 0, [LT_SYS_MODULE_PATH], [LT_SYS_MODULE_PATH($@)])]) m4trace:/usr/share/aclocal/ltdl.m4:606: -1- AC_DEFUN([LT_SYS_DLSEARCH_PATH], [m4_require([_LT_SYS_DYNAMIC_LINKER])dnl AC_CACHE_CHECK([for the default library search path], [lt_cv_sys_dlsearch_path], [lt_cv_sys_dlsearch_path=$sys_lib_dlsearch_path_spec]) if test -n "$lt_cv_sys_dlsearch_path"; then sys_dlsearch_path= for dir in $lt_cv_sys_dlsearch_path; do if test -z "$sys_dlsearch_path"; then sys_dlsearch_path=$dir else sys_dlsearch_path=$sys_dlsearch_path$PATH_SEPARATOR$dir fi done m4_pattern_allow([LT_DLSEARCH_PATH])dnl AC_DEFINE_UNQUOTED([LT_DLSEARCH_PATH], ["$sys_dlsearch_path"], [Define to the system default library search path.]) fi ]) m4trace:/usr/share/aclocal/ltdl.m4:627: -1- AU_DEFUN([AC_LTDL_SYSSEARCHPATH], [m4_if($#, 0, [LT_SYS_DLSEARCH_PATH], [LT_SYS_DLSEARCH_PATH($@)])]) m4trace:/usr/share/aclocal/ltdl.m4:627: -1- AC_DEFUN([AC_LTDL_SYSSEARCHPATH], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_SYSSEARCHPATH' is obsolete. You should run autoupdate.])dnl m4_if($#, 0, [LT_SYS_DLSEARCH_PATH], [LT_SYS_DLSEARCH_PATH($@)])]) m4trace:/usr/share/aclocal/ltdl.m4:653: -1- AC_DEFUN([LT_LIB_DLLOAD], [m4_pattern_allow([^LT_DLLOADERS$]) LT_DLLOADERS= AC_SUBST([LT_DLLOADERS]) AC_LANG_PUSH([C]) lt_dlload_save_LIBS=$LIBS LIBADD_DLOPEN= AC_SEARCH_LIBS([dlopen], [dl], [AC_DEFINE([HAVE_LIBDL], [1], [Define if you have the libdl library or equivalent.]) if test "$ac_cv_search_dlopen" != "none required"; then LIBADD_DLOPEN=-ldl fi libltdl_cv_lib_dl_dlopen=yes LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dlopen.la"], [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#if HAVE_DLFCN_H # include #endif ]], [[dlopen(0, 0);]])], [AC_DEFINE([HAVE_LIBDL], [1], [Define if you have the libdl library or equivalent.]) libltdl_cv_func_dlopen=yes LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dlopen.la"], [AC_CHECK_LIB([svld], [dlopen], [AC_DEFINE([HAVE_LIBDL], [1], [Define if you have the libdl library or equivalent.]) LIBADD_DLOPEN=-lsvld libltdl_cv_func_dlopen=yes LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dlopen.la"])])]) if test yes = "$libltdl_cv_func_dlopen" || test yes = "$libltdl_cv_lib_dl_dlopen" then lt_save_LIBS=$LIBS LIBS="$LIBS $LIBADD_DLOPEN" AC_CHECK_FUNCS([dlerror]) LIBS=$lt_save_LIBS fi AC_SUBST([LIBADD_DLOPEN]) LIBADD_SHL_LOAD= AC_CHECK_FUNC([shl_load], [AC_DEFINE([HAVE_SHL_LOAD], [1], [Define if you have the shl_load function.]) LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}shl_load.la"], [AC_CHECK_LIB([dld], [shl_load], [AC_DEFINE([HAVE_SHL_LOAD], [1], [Define if you have the shl_load function.]) LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}shl_load.la" LIBADD_SHL_LOAD=-ldld])]) AC_SUBST([LIBADD_SHL_LOAD]) case $host_os in darwin[[1567]].*) # We only want this for pre-Mac OS X 10.4. AC_CHECK_FUNC([_dyld_func_lookup], [AC_DEFINE([HAVE_DYLD], [1], [Define if you have the _dyld_func_lookup function.]) LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dyld.la"]) ;; beos*) LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}load_add_on.la" ;; cygwin* | mingw* | pw32*) AC_CHECK_DECLS([cygwin_conv_path], [], [], [[#include ]]) LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}loadlibrary.la" ;; esac AC_CHECK_LIB([dld], [dld_link], [AC_DEFINE([HAVE_DLD], [1], [Define if you have the GNU dld library.]) LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dld_link.la"]) AC_SUBST([LIBADD_DLD_LINK]) m4_pattern_allow([^LT_DLPREOPEN$]) LT_DLPREOPEN= if test -n "$LT_DLLOADERS" then for lt_loader in $LT_DLLOADERS; do LT_DLPREOPEN="$LT_DLPREOPEN-dlpreopen $lt_loader " done AC_DEFINE([HAVE_LIBDLLOADER], [1], [Define if libdlloader will be built on this platform]) fi AC_SUBST([LT_DLPREOPEN]) dnl This isn't used anymore, but set it for backwards compatibility LIBADD_DL="$LIBADD_DLOPEN $LIBADD_SHL_LOAD" AC_SUBST([LIBADD_DL]) LIBS=$lt_dlload_save_LIBS AC_LANG_POP ]) m4trace:/usr/share/aclocal/ltdl.m4:748: -1- AU_DEFUN([AC_LTDL_DLLIB], [m4_if($#, 0, [LT_LIB_DLLOAD], [LT_LIB_DLLOAD($@)])]) m4trace:/usr/share/aclocal/ltdl.m4:748: -1- AC_DEFUN([AC_LTDL_DLLIB], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_DLLIB' is obsolete. You should run autoupdate.])dnl m4_if($#, 0, [LT_LIB_DLLOAD], [LT_LIB_DLLOAD($@)])]) m4trace:/usr/share/aclocal/ltdl.m4:756: -1- AC_DEFUN([LT_SYS_SYMBOL_USCORE], [m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl AC_CACHE_CHECK([for _ prefix in compiled symbols], [lt_cv_sys_symbol_underscore], [lt_cv_sys_symbol_underscore=no cat > conftest.$ac_ext <<_LT_EOF void nm_test_func(){} int main(){nm_test_func;return 0;} _LT_EOF if AC_TRY_EVAL(ac_compile); then # Now try to grab the symbols. ac_nlist=conftest.nm if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $ac_nlist) && test -s "$ac_nlist"; then # See whether the symbols have a leading underscore. if grep '^. _nm_test_func' "$ac_nlist" >/dev/null; then lt_cv_sys_symbol_underscore=yes else if grep '^. nm_test_func ' "$ac_nlist" >/dev/null; then : else echo "configure: cannot find nm_test_func in $ac_nlist" >&AS_MESSAGE_LOG_FD fi fi else echo "configure: cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD fi else echo "configure: failed program was:" >&AS_MESSAGE_LOG_FD cat conftest.c >&AS_MESSAGE_LOG_FD fi rm -rf conftest* ]) sys_symbol_underscore=$lt_cv_sys_symbol_underscore AC_SUBST([sys_symbol_underscore]) ]) m4trace:/usr/share/aclocal/ltdl.m4:793: -1- AU_DEFUN([AC_LTDL_SYMBOL_USCORE], [m4_if($#, 0, [LT_SYS_SYMBOL_USCORE], [LT_SYS_SYMBOL_USCORE($@)])]) m4trace:/usr/share/aclocal/ltdl.m4:793: -1- AC_DEFUN([AC_LTDL_SYMBOL_USCORE], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_SYMBOL_USCORE' is obsolete. You should run autoupdate.])dnl m4_if($#, 0, [LT_SYS_SYMBOL_USCORE], [LT_SYS_SYMBOL_USCORE($@)])]) m4trace:/usr/share/aclocal/ltdl.m4:800: -1- AC_DEFUN([LT_FUNC_DLSYM_USCORE], [AC_REQUIRE([_LT_COMPILER_PIC])dnl for lt_prog_compiler_wl AC_REQUIRE([LT_SYS_SYMBOL_USCORE])dnl for lt_cv_sys_symbol_underscore AC_REQUIRE([LT_SYS_MODULE_EXT])dnl for libltdl_cv_shlibext if test yes = "$lt_cv_sys_symbol_underscore"; then if test yes = "$libltdl_cv_func_dlopen" || test yes = "$libltdl_cv_lib_dl_dlopen"; then AC_CACHE_CHECK([whether we have to add an underscore for dlsym], [libltdl_cv_need_uscore], [libltdl_cv_need_uscore=unknown dlsym_uscore_save_LIBS=$LIBS LIBS="$LIBS $LIBADD_DLOPEN" libname=conftmod # stay within 8.3 filename limits! cat >$libname.$ac_ext <<_LT_EOF [#line $LINENO "configure" #include "confdefs.h" /* When -fvisibility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 42; }] _LT_EOF # ltfn_module_cmds module_cmds # Execute tilde-delimited MODULE_CMDS with environment primed for # $module_cmds or $archive_cmds type content. ltfn_module_cmds () {( # subshell avoids polluting parent global environment module_cmds_save_ifs=$IFS; IFS='~' for cmd in @S|@1; do IFS=$module_cmds_save_ifs libobjs=$libname.$ac_objext; lib=$libname$libltdl_cv_shlibext rpath=/not-exists; soname=$libname$libltdl_cv_shlibext; output_objdir=. major=; versuffix=; verstring=; deplibs= ECHO=echo; wl=$lt_prog_compiler_wl; allow_undefined_flag= eval $cmd done IFS=$module_cmds_save_ifs )} # Compile a loadable module using libtool macro expansion results. $CC $pic_flag -c $libname.$ac_ext ltfn_module_cmds "${module_cmds:-$archive_cmds}" # Try to fetch fnord with dlsym(). libltdl_dlunknown=0; libltdl_dlnouscore=1; libltdl_dluscore=2 cat >conftest.$ac_ext <<_LT_EOF [#line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifndef RTLD_GLOBAL # ifdef DL_GLOBAL # define RTLD_GLOBAL DL_GLOBAL # else # define RTLD_GLOBAL 0 # endif #endif #ifndef RTLD_NOW # ifdef DL_NOW # define RTLD_NOW DL_NOW # else # define RTLD_NOW 0 # endif #endif int main () { void *handle = dlopen ("`pwd`/$libname$libltdl_cv_shlibext", RTLD_GLOBAL|RTLD_NOW); int status = $libltdl_dlunknown; if (handle) { if (dlsym (handle, "fnord")) status = $libltdl_dlnouscore; else { if (dlsym (handle, "_fnord")) status = $libltdl_dluscore; else puts (dlerror ()); } dlclose (handle); } 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 libltdl_status=$? case x$libltdl_status in x$libltdl_dlnouscore) libltdl_cv_need_uscore=no ;; x$libltdl_dluscore) libltdl_cv_need_uscore=yes ;; x*) libltdl_cv_need_uscore=unknown ;; esac fi rm -rf conftest* $libname* LIBS=$dlsym_uscore_save_LIBS ]) fi fi if test yes = "$libltdl_cv_need_uscore"; then AC_DEFINE([NEED_USCORE], [1], [Define if dlsym() requires a leading underscore in symbol names.]) fi ]) m4trace:/usr/share/aclocal/ltdl.m4:907: -1- AU_DEFUN([AC_LTDL_DLSYM_USCORE], [m4_if($#, 0, [LT_FUNC_DLSYM_USCORE], [LT_FUNC_DLSYM_USCORE($@)])]) m4trace:/usr/share/aclocal/ltdl.m4:907: -1- AC_DEFUN([AC_LTDL_DLSYM_USCORE], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_DLSYM_USCORE' is obsolete. You should run autoupdate.])dnl m4_if($#, 0, [LT_FUNC_DLSYM_USCORE], [LT_FUNC_DLSYM_USCORE($@)])]) m4trace:/usr/share/aclocal-1.15/amversion.m4:14: -1- AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.15' 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.15], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) m4trace:/usr/share/aclocal-1.15/amversion.m4:33: -1- AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.15])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) m4trace:/usr/share/aclocal-1.15/ar-lib.m4:13: -1- AC_DEFUN([AM_PROG_AR], [AC_BEFORE([$0], [LT_INIT])dnl AC_BEFORE([$0], [AC_PROG_LIBTOOL])dnl AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([ar-lib])dnl AC_CHECK_TOOLS([AR], [ar lib "link -lib"], [false]) : ${AR=ar} AC_CACHE_CHECK([the archiver ($AR) interface], [am_cv_ar_interface], [AC_LANG_PUSH([C]) am_cv_ar_interface=ar AC_COMPILE_IFELSE([AC_LANG_SOURCE([[int some_variable = 0;]])], [am_ar_try='$AR cru libconftest.a conftest.$ac_objext >&AS_MESSAGE_LOG_FD' AC_TRY_EVAL([am_ar_try]) if test "$ac_status" -eq 0; then am_cv_ar_interface=ar else am_ar_try='$AR -NOLOGO -OUT:conftest.lib conftest.$ac_objext >&AS_MESSAGE_LOG_FD' AC_TRY_EVAL([am_ar_try]) if test "$ac_status" -eq 0; then am_cv_ar_interface=lib else am_cv_ar_interface=unknown fi fi rm -f conftest.lib libconftest.a ]) AC_LANG_POP([C])]) case $am_cv_ar_interface in ar) ;; lib) # Microsoft lib, so override with the ar-lib wrapper script. # FIXME: It is wrong to rewrite AR. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__AR in this case, # and then we could set am__AR="$am_aux_dir/ar-lib \$(AR)" or something # similar. AR="$am_aux_dir/ar-lib $AR" ;; unknown) m4_default([$1], [AC_MSG_ERROR([could not determine $AR interface])]) ;; esac AC_SUBST([AR])dnl ]) m4trace:/usr/share/aclocal-1.15/as.m4:11: -1- AC_DEFUN([AM_PROG_AS], [# By default we simply use the C compiler to build assembly code. AC_REQUIRE([AC_PROG_CC]) test "${CCAS+set}" = set || CCAS=$CC test "${CCASFLAGS+set}" = set || CCASFLAGS=$CFLAGS AC_ARG_VAR([CCAS], [assembler compiler command (defaults to CC)]) AC_ARG_VAR([CCASFLAGS], [assembler compiler flags (defaults to CFLAGS)]) _AM_IF_OPTION([no-dependencies],, [_AM_DEPENDENCIES([CCAS])])dnl ]) m4trace:/usr/share/aclocal-1.15/auxdir.m4:47: -1- AC_DEFUN([AM_AUX_DIR_EXPAND], [AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl # Expand $ac_aux_dir to an absolute path. am_aux_dir=`cd "$ac_aux_dir" && pwd` ]) m4trace:/usr/share/aclocal-1.15/cond.m4:12: -1- AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ([2.52])dnl m4_if([$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])]) m4trace:/usr/share/aclocal-1.15/depend.m4:26: -1- 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 m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], [$1], [CXX], [depcc="$CXX" am_compiler_list=], [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], [OBJCXX], [depcc="$OBJCXX" 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". rm -rf conftest.dir 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 10 /bin/sh. echo '/* dummy */' > 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 ;; msvc7 | msvc7msys | 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]) ]) m4trace:/usr/share/aclocal-1.15/depend.m4:163: -1- AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ]) m4trace:/usr/share/aclocal-1.15/depend.m4:171: -1- AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE([dependency-tracking], [dnl AS_HELP_STRING( [--enable-dependency-tracking], [do not reject slow dependency extractors]) AS_HELP_STRING( [--disable-dependency-tracking], [speeds up one-time build])]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' am__nodep='_no' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl AC_SUBST([am__nodep])dnl _AM_SUBST_NOTMAKE([am__nodep])dnl ]) m4trace:/usr/share/aclocal-1.15/depout.m4:12: -1- AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ # Older Autoconf 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"` # 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'`; 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 } ]) m4trace:/usr/share/aclocal-1.15/depout.m4:71: -1- 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"]) ]) m4trace:/usr/share/aclocal-1.15/init.m4:29: -1- AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.65])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], [AC_DIAGNOSE([obsolete], [$0: two- and three-arguments forms are deprecated.]) 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], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), [ok:ok],, [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([AC_PROG_MKDIR_P])dnl # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: # # AC_SUBST([mkdir_p], ['$(MKDIR_P)']) # We need awk for the "check" target (and possibly the TAP driver). 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])], [m4_define([AC_PROG_CC], m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES([CXX])], [m4_define([AC_PROG_CXX], m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES([OBJC])], [m4_define([AC_PROG_OBJC], m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], [_AM_DEPENDENCIES([OBJCXX])], [m4_define([AC_PROG_OBJCXX], m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl ]) AC_REQUIRE([AM_SILENT_RULES])dnl dnl The testsuite driver may need to know about EXEEXT, so add the dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This dnl macro 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 # POSIX will say in a future version that running "rm -f" with no argument # is OK; and we want to be able to make that assumption in our Makefile # recipes. So use an aggressive probe to check that the usage we want is # actually supported "in the wild" to an acceptable degree. # See automake bug#10828. # To make any issue more visible, cause the running configure to be aborted # by default if the 'rm' program in use doesn't match our expectations; the # user can still override this though. if rm -f && rm -fr && rm -rf; then : OK; else cat >&2 <<'END' Oops! Your 'rm' program seems unable to run without file operands specified on the command line, even when the '-f' option is present. This is contrary to the behaviour of most rm programs out there, and not conforming with the upcoming POSIX standard: Please tell bug-automake@gnu.org about your system, including the value of your $PATH and any error possibly output before this message. This can help us improve future automake versions. END if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then echo 'Configuration will proceed anyway, since you have set the' >&2 echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 echo >&2 else cat >&2 <<'END' Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation that behaves properly: . If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM to "yes", and re-run configure. END AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) fi fi dnl The trailing newline in this macro's definition is deliberate, for dnl backward compatibility and to allow trailing 'dnl'-style comments dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841. ]) m4trace:/usr/share/aclocal-1.15/init.m4:186: -1- 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]) m4trace:/usr/share/aclocal-1.15/install-sh.m4:11: -1- AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl if test x"${install_sh+set}" != 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])]) m4trace:/usr/share/aclocal-1.15/lead-dot.m4:10: -1- 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])]) m4trace:/usr/share/aclocal-1.15/maintainer.m4:16: -1- AC_DEFUN([AM_MAINTAINER_MODE], [m4_case(m4_default([$1], [disable]), [enable], [m4_define([am_maintainer_other], [disable])], [disable], [m4_define([am_maintainer_other], [enable])], [m4_define([am_maintainer_other], [enable]) m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) dnl maintainer-mode's default is 'disable' unless 'enable' is passed AC_ARG_ENABLE([maintainer-mode], [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode], am_maintainer_other[ make rules and dependencies not useful (and sometimes confusing) to the casual installer])], [USE_MAINTAINER_MODE=$enableval], [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) AC_MSG_RESULT([$USE_MAINTAINER_MODE]) AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) MAINT=$MAINTAINER_MODE_TRUE AC_SUBST([MAINT])dnl ]) m4trace:/usr/share/aclocal-1.15/make.m4:12: -1- 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 ]) m4trace:/usr/share/aclocal-1.15/missing.m4:11: -1- AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) m4trace:/usr/share/aclocal-1.15/missing.m4:20: -1- 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 --is-lightweight"; then am_missing_run="$MISSING " else am_missing_run= AC_MSG_WARN(['missing' script is too old or missing]) fi ]) m4trace:/usr/share/aclocal-1.15/options.m4:11: -1- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) m4trace:/usr/share/aclocal-1.15/options.m4:17: -1- AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), [1])]) m4trace:/usr/share/aclocal-1.15/options.m4:23: -1- AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) m4trace:/usr/share/aclocal-1.15/options.m4:29: -1- AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) m4trace:/usr/share/aclocal-1.15/prog-cc-c-o.m4:12: -1- AC_DEFUN([_AM_PROG_CC_C_O], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([compile])dnl AC_LANG_PUSH([C])dnl AC_CACHE_CHECK( [whether $CC understands -c and -o together], [am_cv_prog_cc_c_o], [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])]) # Make sure it works both with $CC and with simple cc. # Following AC_PROG_CC_C_O, we do the test twice because some # compilers refuse to overwrite an existing .o file with -o, # though they will create one. am_cv_prog_cc_c_o=yes for am_i in 1 2; do if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \ && test -f conftest2.$ac_objext; then : OK else am_cv_prog_cc_c_o=no break fi done rm -f core conftest* unset am_i]) if test "$am_cv_prog_cc_c_o" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" fi AC_LANG_POP([C])]) m4trace:/usr/share/aclocal-1.15/prog-cc-c-o.m4:47: -1- AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) m4trace:/usr/share/aclocal-1.15/runlog.m4:12: -1- AC_DEFUN([AM_RUN_LOG], [{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD (exit $ac_status); }]) m4trace:/usr/share/aclocal-1.15/sanity.m4:11: -1- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # 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 ( am_has_slept=no for am_try in 1 2; do echo "timestamp, slept: $am_has_slept" > conftest.file 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 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 if test "$[2]" = conftest.file || test $am_try -eq 2; then break fi # Just in case. sleep 1 am_has_slept=yes done 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]) # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= if grep 'slept: no' conftest.file >/dev/null 2>&1; then ( sleep 1 ) & am_sleep_pid=$! fi AC_CONFIG_COMMANDS_PRE( [AC_MSG_CHECKING([that generated files are newer than configure]) if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi AC_MSG_RESULT([done])]) rm -f conftest.file ]) m4trace:/usr/share/aclocal-1.15/silent.m4:12: -1- AC_DEFUN([AM_SILENT_RULES], [AC_ARG_ENABLE([silent-rules], [dnl AS_HELP_STRING( [--enable-silent-rules], [less verbose build output (undo: "make V=1")]) AS_HELP_STRING( [--disable-silent-rules], [verbose build output (undo: "make V=0")])dnl ]) case $enable_silent_rules in @%:@ ((( yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; esac dnl dnl A few 'make' implementations (e.g., NonStop OS and NextStep) dnl do not support nested variable expansions. dnl See automake bug#9928 and bug#10237. am_make=${MAKE-make} AC_CACHE_CHECK([whether $am_make supports nested variables], [am_cv_make_support_nested_variables], [if AS_ECHO([['TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 am__doit: @$(TRUE) .PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no fi]) if test $am_cv_make_support_nested_variables = yes; then dnl Using '$V' instead of '$(V)' breaks IRIX make. AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi AC_SUBST([AM_V])dnl AM_SUBST_NOTMAKE([AM_V])dnl AC_SUBST([AM_DEFAULT_V])dnl AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl AC_SUBST([AM_DEFAULT_VERBOSITY])dnl AM_BACKSLASH='\' AC_SUBST([AM_BACKSLASH])dnl _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl ]) m4trace:/usr/share/aclocal-1.15/strip.m4:17: -1- 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])]) m4trace:/usr/share/aclocal-1.15/substnot.m4:12: -1- AC_DEFUN([_AM_SUBST_NOTMAKE]) m4trace:/usr/share/aclocal-1.15/substnot.m4:17: -1- AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) m4trace:/usr/share/aclocal-1.15/tar.m4:23: -1- AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AC_SUBST([AMTAR], ['$${TAR-tar}']) # We'll loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' m4_if([$1], [v7], [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], [m4_case([$1], [ustar], [# The POSIX 1988 'ustar' format is defined with fixed-size fields. # There is notably a 21 bits limit for the UID and the GID. In fact, # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 # and bug#13588). am_max_uid=2097151 # 2^21 - 1 am_max_gid=$am_max_uid # The $UID and $GID variables are not portable, so we need to resort # to the POSIX-mandated id(1) utility. Errors in the 'id' calls # below are definitely unexpected, so allow the users to see them # (that is, avoid stderr redirection). am_uid=`id -u || echo unknown` am_gid=`id -g || echo unknown` AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) if test $am_uid -le $am_max_uid; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) _am_tools=none fi AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) if test $am_gid -le $am_max_gid; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) _am_tools=none fi], [pax], [], [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Go ahead even if we have the value already cached. We do so because we # need to set the values for the 'am__tar' and 'am__untar' variables. _am_tools=${am_cv_prog_tar_$1-$_am_tools} 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]) ]) m4trace:m4/libtool.m4:61: -1- AC_DEFUN([LT_INIT], [AC_PREREQ([2.62])dnl We use AC_PATH_PROGS_FEATURE_CHECK AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl 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 _LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) 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]) ]) m4trace:m4/libtool.m4:99: -1- AU_DEFUN([AC_PROG_LIBTOOL], [m4_if($#, 0, [LT_INIT], [LT_INIT($@)])]) m4trace:m4/libtool.m4:99: -1- AC_DEFUN([AC_PROG_LIBTOOL], [AC_DIAGNOSE([obsolete], [The macro `AC_PROG_LIBTOOL' is obsolete. You should run autoupdate.])dnl m4_if($#, 0, [LT_INIT], [LT_INIT($@)])]) m4trace:m4/libtool.m4:100: -1- AU_DEFUN([AM_PROG_LIBTOOL], [m4_if($#, 0, [LT_INIT], [LT_INIT($@)])]) m4trace:m4/libtool.m4:100: -1- AC_DEFUN([AM_PROG_LIBTOOL], [AC_DIAGNOSE([obsolete], [The macro `AM_PROG_LIBTOOL' is obsolete. You should run autoupdate.])dnl m4_if($#, 0, [LT_INIT], [LT_INIT($@)])]) m4trace:m4/libtool.m4:619: -1- AC_DEFUN([LT_OUTPUT], [: ${CONFIG_LT=./config.lt} AC_MSG_NOTICE([creating $CONFIG_LT]) _LT_GENERATED_FILE_INIT(["$CONFIG_LT"], [# Run this file to recreate a libtool stub with the current configuration.]) cat >>"$CONFIG_LT" <<\_LTEOF lt_cl_silent=false 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) 2011 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. lt_cl_success=: test yes = "$silent" && 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) ]) m4trace:m4/libtool.m4:812: -1- AC_DEFUN([LT_SUPPORTED_TAG], []) m4trace:m4/libtool.m4:823: -1- AC_DEFUN([LT_LANG], [AC_BEFORE([$0], [LT_OUTPUT])dnl m4_case([$1], [C], [_LT_LANG(C)], [C++], [_LT_LANG(CXX)], [Go], [_LT_LANG(GO)], [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 ]) m4trace:m4/libtool.m4:915: -1- AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) m4trace:m4/libtool.m4:915: -1- AC_DEFUN([AC_LIBTOOL_CXX], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_CXX' is obsolete. You should run autoupdate.])dnl LT_LANG(C++)]) m4trace:m4/libtool.m4:916: -1- AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) m4trace:m4/libtool.m4:916: -1- AC_DEFUN([AC_LIBTOOL_F77], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_F77' is obsolete. You should run autoupdate.])dnl LT_LANG(Fortran 77)]) m4trace:m4/libtool.m4:917: -1- AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) m4trace:m4/libtool.m4:917: -1- AC_DEFUN([AC_LIBTOOL_FC], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_FC' is obsolete. You should run autoupdate.])dnl LT_LANG(Fortran)]) m4trace:m4/libtool.m4:918: -1- AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) m4trace:m4/libtool.m4:918: -1- AC_DEFUN([AC_LIBTOOL_GCJ], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_GCJ' is obsolete. You should run autoupdate.])dnl LT_LANG(Java)]) m4trace:m4/libtool.m4:919: -1- AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) m4trace:m4/libtool.m4:919: -1- AC_DEFUN([AC_LIBTOOL_RC], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_RC' is obsolete. You should run autoupdate.])dnl LT_LANG(Windows Resource)]) m4trace:m4/libtool.m4:1247: -1- AC_DEFUN([_LT_WITH_SYSROOT], [AC_MSG_CHECKING([for sysroot]) AC_ARG_WITH([sysroot], [AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@], [Search for dependent libraries within DIR (or the compiler's sysroot if not specified).])], [], [with_sysroot=no]) dnl lt_sysroot will always be passed unquoted. We quote it here dnl in case the user passed a directory name. lt_sysroot= case $with_sysroot in #( yes) if test yes = "$GCC"; then lt_sysroot=`$CC --print-sysroot 2>/dev/null` fi ;; #( /*) lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` ;; #( no|'') ;; #( *) AC_MSG_RESULT([$with_sysroot]) AC_MSG_ERROR([The sysroot must be an absolute path.]) ;; esac AC_MSG_RESULT([${lt_sysroot:-no}]) _LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl [dependent libraries, and where our libraries should be installed.])]) m4trace:m4/libtool.m4:1578: -1- 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" ## exclude from sc_useless_quotes_in_assignment # 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:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:$LINENO: \$? = $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 "$_lt_compiler_boilerplate" | $SED '/^$/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 yes = "[$]$2"; then m4_if([$5], , :, [$5]) else m4_if([$6], , :, [$6]) fi ]) m4trace:m4/libtool.m4:1620: -1- AU_DEFUN([AC_LIBTOOL_COMPILER_OPTION], [m4_if($#, 0, [_LT_COMPILER_OPTION], [_LT_COMPILER_OPTION($@)])]) m4trace:m4/libtool.m4:1620: -1- AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_COMPILER_OPTION' is obsolete. You should run autoupdate.])dnl m4_if($#, 0, [_LT_COMPILER_OPTION], [_LT_COMPILER_OPTION($@)])]) m4trace:m4/libtool.m4:1629: -1- 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 "$_lt_linker_boilerplate" | $SED '/^$/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 yes = "[$]$2"; then m4_if([$4], , :, [$4]) else m4_if([$5], , :, [$5]) fi ]) m4trace:m4/libtool.m4:1664: -1- AU_DEFUN([AC_LIBTOOL_LINKER_OPTION], [m4_if($#, 0, [_LT_LINKER_OPTION], [_LT_LINKER_OPTION($@)])]) m4trace:m4/libtool.m4:1664: -1- AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_LINKER_OPTION' is obsolete. You should run autoupdate.])dnl m4_if($#, 0, [_LT_LINKER_OPTION], [_LT_LINKER_OPTION($@)])]) m4trace:m4/libtool.m4:1671: -1- 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; ;; mint*) # On MiNT this can take a long time and run out of memory. 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; ;; bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*) # 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 ;; os2*) # The test takes a long time on OS/2. lt_cv_sys_max_cmd_len=8192 ;; 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" && \ test undefined != "$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`env echo "$teststring$teststring" 2>/dev/null` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && test 17 != "$i" # 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?]) ]) m4trace:m4/libtool.m4:1810: -1- AU_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [m4_if($#, 0, [LT_CMD_MAX_LEN], [LT_CMD_MAX_LEN($@)])]) m4trace:m4/libtool.m4:1810: -1- AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_SYS_MAX_CMD_LEN' is obsolete. You should run autoupdate.])dnl m4_if($#, 0, [LT_CMD_MAX_LEN], [LT_CMD_MAX_LEN($@)])]) m4trace:m4/libtool.m4:1921: -1- AC_DEFUN([LT_SYS_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test yes != "$enable_dlopen"; 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 ]) ;; tpf*) # Don't try to run any link tests for TPF. We know it's impossible # because TPF is a cross-compiler, and we know how we open DSOs. lt_cv_dlopen=dlopen lt_cv_dlopen_libs= lt_cv_dlopen_self=no ;; *) 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 no = "$lt_cv_dlopen"; then enable_dlopen=no else enable_dlopen=yes fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS=$CPPFLAGS test yes = "$ac_cv_header_dlfcn_h" && 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 yes = "$lt_cv_dlopen_self"; 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]) ]) m4trace:m4/libtool.m4:2046: -1- AU_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [m4_if($#, 0, [LT_SYS_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF($@)])]) m4trace:m4/libtool.m4:2046: -1- AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_DLOPEN_SELF' is obsolete. You should run autoupdate.])dnl m4_if($#, 0, [LT_SYS_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF($@)])]) m4trace:m4/libtool.m4:3155: -1- 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 ]) m4trace:m4/libtool.m4:3217: -1- AU_DEFUN([AC_PATH_TOOL_PREFIX], [m4_if($#, 0, [_LT_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX($@)])]) m4trace:m4/libtool.m4:3217: -1- AC_DEFUN([AC_PATH_TOOL_PREFIX], [AC_DIAGNOSE([obsolete], [The macro `AC_PATH_TOOL_PREFIX' is obsolete. You should run autoupdate.])dnl m4_if($#, 0, [_LT_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX($@)])]) m4trace:m4/libtool.m4:3240: -1- 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 m4_require([_LT_PROG_ECHO_BACKSLASH])dnl AC_ARG_WITH([gnu-ld], [AS_HELP_STRING([--with-gnu-ld], [assume the C compiler uses GNU ld @<:@default=no@:>@])], [test no = "$withval" || with_gnu_ld=yes], [with_gnu_ld=no])dnl ac_prog=ld if test yes = "$GCC"; 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 yes = "$with_gnu_ld"; 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 | sed '1q'` in *$lt_bad_file* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break 2 ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break 2 ;; *) 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 no != "$lt_cv_path_NM"; then NM=$lt_cv_path_NM else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$DUMPBIN"; then : # Let the user override the test. else AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in *COFF*) DUMPBIN="$DUMPBIN -symbols -headers" ;; *) DUMPBIN=: ;; esac fi 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:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:$LINENO: $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:$LINENO: 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*]) ]) m4trace:m4/libtool.m4:3754: -1- AU_DEFUN([AM_PROG_NM], [m4_if($#, 0, [LT_PATH_NM], [LT_PATH_NM($@)])]) m4trace:m4/libtool.m4:3754: -1- AC_DEFUN([AM_PROG_NM], [AC_DIAGNOSE([obsolete], [The macro `AM_PROG_NM' is obsolete. You should run autoupdate.])dnl m4_if($#, 0, [LT_PATH_NM], [LT_PATH_NM($@)])]) m4trace:m4/libtool.m4:3755: -1- AU_DEFUN([AC_PROG_NM], [m4_if($#, 0, [LT_PATH_NM], [LT_PATH_NM($@)])]) m4trace:m4/libtool.m4:3755: -1- AC_DEFUN([AC_PROG_NM], [AC_DIAGNOSE([obsolete], [The macro `AC_PROG_NM' is obsolete. You should run autoupdate.])dnl m4_if($#, 0, [LT_PATH_NM], [LT_PATH_NM($@)])]) m4trace:m4/libtool.m4:3826: -1- AC_DEFUN([_LT_DLL_DEF_P], [dnl test DEF = "`$SED -n dnl -e '\''s/^[[ ]]*//'\'' dnl Strip leading whitespace -e '\''/^\(;.*\)*$/d'\'' dnl Delete empty lines and comments -e '\''s/^\(EXPORTS\|LIBRARY\)\([[ ]].*\)*$/DEF/p'\'' dnl -e q dnl Only consider the first "real" line $1`" dnl ]) m4trace:m4/libtool.m4:3840: -1- AC_DEFUN([LT_LIB_M], [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= case $host in *-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-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]) ]) m4trace:m4/libtool.m4:3859: -1- AU_DEFUN([AC_CHECK_LIBM], [m4_if($#, 0, [LT_LIB_M], [LT_LIB_M($@)])]) m4trace:m4/libtool.m4:3859: -1- AC_DEFUN([AC_CHECK_LIBM], [AC_DIAGNOSE([obsolete], [The macro `AC_CHECK_LIBM' is obsolete. You should run autoupdate.])dnl m4_if($#, 0, [LT_LIB_M], [LT_LIB_M($@)])]) m4trace:m4/libtool.m4:8122: -1- 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 set = "${GCJFLAGS+set}" || GCJFLAGS="-g -O2" AC_SUBST(GCJFLAGS)])])[]dnl ]) m4trace:m4/libtool.m4:8131: -1- AU_DEFUN([LT_AC_PROG_GCJ], [m4_if($#, 0, [LT_PROG_GCJ], [LT_PROG_GCJ($@)])]) m4trace:m4/libtool.m4:8131: -1- AC_DEFUN([LT_AC_PROG_GCJ], [AC_DIAGNOSE([obsolete], [The macro `LT_AC_PROG_GCJ' is obsolete. You should run autoupdate.])dnl m4_if($#, 0, [LT_PROG_GCJ], [LT_PROG_GCJ($@)])]) m4trace:m4/libtool.m4:8138: -1- AC_DEFUN([LT_PROG_GO], [AC_CHECK_TOOL(GOC, gccgo,) ]) m4trace:m4/libtool.m4:8145: -1- AC_DEFUN([LT_PROG_RC], [AC_CHECK_TOOL(RC, windres,) ]) m4trace:m4/libtool.m4:8150: -1- AU_DEFUN([LT_AC_PROG_RC], [m4_if($#, 0, [LT_PROG_RC], [LT_PROG_RC($@)])]) m4trace:m4/libtool.m4:8150: -1- AC_DEFUN([LT_AC_PROG_RC], [AC_DIAGNOSE([obsolete], [The macro `LT_AC_PROG_RC' is obsolete. You should run autoupdate.])dnl m4_if($#, 0, [LT_PROG_RC], [LT_PROG_RC($@)])]) m4trace:m4/libtool.m4:8270: -1- AU_DEFUN([LT_AC_PROG_SED], [m4_if($#, 0, [AC_PROG_SED], [AC_PROG_SED($@)])]) m4trace:m4/libtool.m4:8270: -1- AC_DEFUN([LT_AC_PROG_SED], [AC_DIAGNOSE([obsolete], [The macro `LT_AC_PROG_SED' is obsolete. You should run autoupdate.])dnl m4_if($#, 0, [AC_PROG_SED], [AC_PROG_SED($@)])]) m4trace:m4/ltoptions.m4:14: -1- AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) m4trace:m4/ltoptions.m4:113: -1- 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.]) ]) m4trace:m4/ltoptions.m4:113: -1- AC_DEFUN([AC_LIBTOOL_DLOPEN], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_DLOPEN' is obsolete. You should run autoupdate.])dnl _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.]) ]) m4trace:m4/ltoptions.m4:148: -1- 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.]) ]) m4trace:m4/ltoptions.m4:148: -1- AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_WIN32_DLL' is obsolete. You should run autoupdate.])dnl 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.]) ]) m4trace:m4/ltoptions.m4:197: -1- AC_DEFUN([AC_ENABLE_SHARED], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) ]) m4trace:m4/ltoptions.m4:201: -1- AC_DEFUN([AC_DISABLE_SHARED], [_LT_SET_OPTION([LT_INIT], [disable-shared]) ]) m4trace:m4/ltoptions.m4:205: -1- AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) m4trace:m4/ltoptions.m4:205: -1- AC_DEFUN([AM_ENABLE_SHARED], [AC_DIAGNOSE([obsolete], [The macro `AM_ENABLE_SHARED' is obsolete. You should run autoupdate.])dnl AC_ENABLE_SHARED($@)]) m4trace:m4/ltoptions.m4:206: -1- AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) m4trace:m4/ltoptions.m4:206: -1- AC_DEFUN([AM_DISABLE_SHARED], [AC_DIAGNOSE([obsolete], [The macro `AM_DISABLE_SHARED' is obsolete. You should run autoupdate.])dnl AC_DISABLE_SHARED($@)]) m4trace:m4/ltoptions.m4:251: -1- AC_DEFUN([AC_ENABLE_STATIC], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) ]) m4trace:m4/ltoptions.m4:255: -1- AC_DEFUN([AC_DISABLE_STATIC], [_LT_SET_OPTION([LT_INIT], [disable-static]) ]) m4trace:m4/ltoptions.m4:259: -1- AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) m4trace:m4/ltoptions.m4:259: -1- AC_DEFUN([AM_ENABLE_STATIC], [AC_DIAGNOSE([obsolete], [The macro `AM_ENABLE_STATIC' is obsolete. You should run autoupdate.])dnl AC_ENABLE_STATIC($@)]) m4trace:m4/ltoptions.m4:260: -1- AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) m4trace:m4/ltoptions.m4:260: -1- AC_DEFUN([AM_DISABLE_STATIC], [AC_DIAGNOSE([obsolete], [The macro `AM_DISABLE_STATIC' is obsolete. You should run autoupdate.])dnl AC_DISABLE_STATIC($@)]) m4trace:m4/ltoptions.m4:305: -1- 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.]) ]) m4trace:m4/ltoptions.m4:305: -1- AC_DEFUN([AC_ENABLE_FAST_INSTALL], [AC_DIAGNOSE([obsolete], [The macro `AC_ENABLE_FAST_INSTALL' is obsolete. You should run autoupdate.])dnl _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.]) ]) m4trace:m4/ltoptions.m4:312: -1- 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.]) ]) m4trace:m4/ltoptions.m4:312: -1- AC_DEFUN([AC_DISABLE_FAST_INSTALL], [AC_DIAGNOSE([obsolete], [The macro `AC_DISABLE_FAST_INSTALL' is obsolete. You should run autoupdate.])dnl _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.]) ]) m4trace:m4/ltoptions.m4:411: -1- 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.]) ]) m4trace:m4/ltoptions.m4:411: -1- AC_DEFUN([AC_LIBTOOL_PICMODE], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_PICMODE' is obsolete. You should run autoupdate.])dnl _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.]) ]) m4trace:m4/ltsugar.m4:14: -1- AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) m4trace:m4/ltversion.m4:18: -1- AC_DEFUN([LTVERSION_VERSION], [macro_version='2.4.6' macro_revision='2.4.6' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) m4trace:m4/lt~obsolete.m4:37: -1- AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) m4trace:m4/lt~obsolete.m4:41: -1- AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH]) m4trace:m4/lt~obsolete.m4:42: -1- AC_DEFUN([_LT_AC_SHELL_INIT]) m4trace:m4/lt~obsolete.m4:43: -1- AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX]) m4trace:m4/lt~obsolete.m4:45: -1- AC_DEFUN([_LT_AC_TAGVAR]) m4trace:m4/lt~obsolete.m4:46: -1- AC_DEFUN([AC_LTDL_ENABLE_INSTALL]) m4trace:m4/lt~obsolete.m4:47: -1- AC_DEFUN([AC_LTDL_PREOPEN]) m4trace:m4/lt~obsolete.m4:48: -1- AC_DEFUN([_LT_AC_SYS_COMPILER]) m4trace:m4/lt~obsolete.m4:49: -1- AC_DEFUN([_LT_AC_LOCK]) m4trace:m4/lt~obsolete.m4:50: -1- AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE]) m4trace:m4/lt~obsolete.m4:51: -1- AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF]) m4trace:m4/lt~obsolete.m4:52: -1- AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O]) m4trace:m4/lt~obsolete.m4:53: -1- AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS]) m4trace:m4/lt~obsolete.m4:54: -1- AC_DEFUN([AC_LIBTOOL_OBJDIR]) m4trace:m4/lt~obsolete.m4:55: -1- AC_DEFUN([AC_LTDL_OBJDIR]) m4trace:m4/lt~obsolete.m4:56: -1- AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH]) m4trace:m4/lt~obsolete.m4:57: -1- AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP]) m4trace:m4/lt~obsolete.m4:58: -1- AC_DEFUN([AC_PATH_MAGIC]) m4trace:m4/lt~obsolete.m4:59: -1- AC_DEFUN([AC_PROG_LD_GNU]) m4trace:m4/lt~obsolete.m4:60: -1- AC_DEFUN([AC_PROG_LD_RELOAD_FLAG]) m4trace:m4/lt~obsolete.m4:61: -1- AC_DEFUN([AC_DEPLIBS_CHECK_METHOD]) m4trace:m4/lt~obsolete.m4:62: -1- AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI]) m4trace:m4/lt~obsolete.m4:63: -1- AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE]) m4trace:m4/lt~obsolete.m4:64: -1- AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC]) m4trace:m4/lt~obsolete.m4:65: -1- AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS]) m4trace:m4/lt~obsolete.m4:66: -1- AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP]) m4trace:m4/lt~obsolete.m4:67: -1- AC_DEFUN([LT_AC_PROG_EGREP]) m4trace:m4/lt~obsolete.m4:72: -1- AC_DEFUN([_AC_PROG_LIBTOOL]) m4trace:m4/lt~obsolete.m4:73: -1- AC_DEFUN([AC_LIBTOOL_SETUP]) m4trace:m4/lt~obsolete.m4:74: -1- AC_DEFUN([_LT_AC_CHECK_DLFCN]) m4trace:m4/lt~obsolete.m4:75: -1- AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER]) m4trace:m4/lt~obsolete.m4:76: -1- AC_DEFUN([_LT_AC_TAGCONFIG]) m4trace:m4/lt~obsolete.m4:78: -1- AC_DEFUN([_LT_AC_LANG_CXX]) m4trace:m4/lt~obsolete.m4:79: -1- AC_DEFUN([_LT_AC_LANG_F77]) m4trace:m4/lt~obsolete.m4:80: -1- AC_DEFUN([_LT_AC_LANG_GCJ]) m4trace:m4/lt~obsolete.m4:81: -1- AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG]) m4trace:m4/lt~obsolete.m4:82: -1- AC_DEFUN([_LT_AC_LANG_C_CONFIG]) m4trace:m4/lt~obsolete.m4:83: -1- AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG]) m4trace:m4/lt~obsolete.m4:84: -1- AC_DEFUN([_LT_AC_LANG_CXX_CONFIG]) m4trace:m4/lt~obsolete.m4:85: -1- AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG]) m4trace:m4/lt~obsolete.m4:86: -1- AC_DEFUN([_LT_AC_LANG_F77_CONFIG]) m4trace:m4/lt~obsolete.m4:87: -1- AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG]) m4trace:m4/lt~obsolete.m4:88: -1- AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG]) m4trace:m4/lt~obsolete.m4:89: -1- AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG]) m4trace:m4/lt~obsolete.m4:90: -1- AC_DEFUN([_LT_AC_LANG_RC_CONFIG]) m4trace:m4/lt~obsolete.m4:91: -1- AC_DEFUN([AC_LIBTOOL_CONFIG]) m4trace:m4/lt~obsolete.m4:92: -1- AC_DEFUN([_LT_AC_FILE_LTDLL_C]) m4trace:m4/lt~obsolete.m4:94: -1- AC_DEFUN([_LT_AC_PROG_CXXCPP]) m4trace:m4/lt~obsolete.m4:97: -1- AC_DEFUN([_LT_PROG_F77]) m4trace:m4/lt~obsolete.m4:98: -1- AC_DEFUN([_LT_PROG_FC]) m4trace:m4/lt~obsolete.m4:99: -1- AC_DEFUN([_LT_PROG_CXX]) m4trace:configure.ac:4: -1- m4_pattern_forbid([^_?A[CHUM]_]) m4trace:configure.ac:4: -1- m4_pattern_forbid([_AC_]) m4trace:configure.ac:4: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS']) m4trace:configure.ac:4: -1- m4_pattern_allow([^AS_FLAGS$]) m4trace:configure.ac:4: -1- m4_pattern_forbid([^_?m4_]) m4trace:configure.ac:4: -1- m4_pattern_forbid([^dnl$]) m4trace:configure.ac:4: -1- m4_pattern_forbid([^_?AS_]) m4trace:configure.ac:4: -1- m4_pattern_allow([^SHELL$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^PATH_SEPARATOR$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^PACKAGE_NAME$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^PACKAGE_TARNAME$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^PACKAGE_VERSION$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^PACKAGE_STRING$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^PACKAGE_URL$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^exec_prefix$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^prefix$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^program_transform_name$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^bindir$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^sbindir$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^libexecdir$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^datarootdir$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^datadir$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^sysconfdir$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^sharedstatedir$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^localstatedir$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^includedir$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^oldincludedir$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^docdir$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^infodir$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^htmldir$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^dvidir$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^pdfdir$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^psdir$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^libdir$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^localedir$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^mandir$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^PACKAGE_NAME$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^PACKAGE_TARNAME$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^PACKAGE_VERSION$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^PACKAGE_STRING$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^PACKAGE_URL$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^DEFS$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^ECHO_C$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^ECHO_N$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^ECHO_T$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^LIBS$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^build_alias$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^host_alias$]) m4trace:configure.ac:4: -1- m4_pattern_allow([^target_alias$]) m4trace:configure.ac:8: -1- AC_CONFIG_MACRO_DIR([m4]) m4trace:configure.ac:10: -1- AM_INIT_AUTOMAKE([1.9 foreign dist-xz -Wall subdir-objects]) m4trace:configure.ac:10: -1- m4_pattern_allow([^AM_[A-Z]+FLAGS$]) m4trace:configure.ac:10: -1- AM_SET_CURRENT_AUTOMAKE_VERSION m4trace:configure.ac:10: -1- AM_AUTOMAKE_VERSION([1.15]) m4trace:configure.ac:10: -1- _AM_AUTOCONF_VERSION([2.69]) m4trace:configure.ac:10: -1- m4_pattern_allow([^INSTALL_PROGRAM$]) m4trace:configure.ac:10: -1- m4_pattern_allow([^INSTALL_SCRIPT$]) m4trace:configure.ac:10: -1- m4_pattern_allow([^INSTALL_DATA$]) m4trace:configure.ac:10: -1- m4_pattern_allow([^am__isrc$]) m4trace:configure.ac:10: -1- _AM_SUBST_NOTMAKE([am__isrc]) m4trace:configure.ac:10: -1- m4_pattern_allow([^CYGPATH_W$]) m4trace:configure.ac:10: -1- _AM_SET_OPTIONS([1.9 foreign dist-xz -Wall subdir-objects]) m4trace:configure.ac:10: -1- _AM_SET_OPTION([1.9]) m4trace:configure.ac:10: -2- _AM_MANGLE_OPTION([1.9]) m4trace:configure.ac:10: -1- _AM_SET_OPTION([foreign]) m4trace:configure.ac:10: -2- _AM_MANGLE_OPTION([foreign]) m4trace:configure.ac:10: -1- _AM_SET_OPTION([dist-xz]) m4trace:configure.ac:10: -2- _AM_MANGLE_OPTION([dist-xz]) m4trace:configure.ac:10: -1- _AM_SET_OPTION([-Wall]) m4trace:configure.ac:10: -2- _AM_MANGLE_OPTION([-Wall]) m4trace:configure.ac:10: -1- _AM_SET_OPTION([subdir-objects]) m4trace:configure.ac:10: -2- _AM_MANGLE_OPTION([subdir-objects]) m4trace:configure.ac:10: -1- m4_pattern_allow([^PACKAGE$]) m4trace:configure.ac:10: -1- m4_pattern_allow([^VERSION$]) m4trace:configure.ac:10: -1- _AM_IF_OPTION([no-define], [], [AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])]) m4trace:configure.ac:10: -2- _AM_MANGLE_OPTION([no-define]) m4trace:configure.ac:10: -1- m4_pattern_allow([^PACKAGE$]) m4trace:configure.ac:10: -1- m4_pattern_allow([^VERSION$]) m4trace:configure.ac:10: -1- AM_SANITY_CHECK m4trace:configure.ac:10: -1- AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) m4trace:configure.ac:10: -1- AM_MISSING_HAS_RUN m4trace:configure.ac:10: -1- AM_AUX_DIR_EXPAND m4trace:configure.ac:10: -1- m4_pattern_allow([^ACLOCAL$]) m4trace:configure.ac:10: -1- AM_MISSING_PROG([AUTOCONF], [autoconf]) m4trace:configure.ac:10: -1- m4_pattern_allow([^AUTOCONF$]) m4trace:configure.ac:10: -1- AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) m4trace:configure.ac:10: -1- m4_pattern_allow([^AUTOMAKE$]) m4trace:configure.ac:10: -1- AM_MISSING_PROG([AUTOHEADER], [autoheader]) m4trace:configure.ac:10: -1- m4_pattern_allow([^AUTOHEADER$]) m4trace:configure.ac:10: -1- AM_MISSING_PROG([MAKEINFO], [makeinfo]) m4trace:configure.ac:10: -1- m4_pattern_allow([^MAKEINFO$]) m4trace:configure.ac:10: -1- AM_PROG_INSTALL_SH m4trace:configure.ac:10: -1- m4_pattern_allow([^install_sh$]) m4trace:configure.ac:10: -1- AM_PROG_INSTALL_STRIP m4trace:configure.ac:10: -1- m4_pattern_allow([^STRIP$]) m4trace:configure.ac:10: -1- m4_pattern_allow([^INSTALL_STRIP_PROGRAM$]) m4trace:configure.ac:10: -1- m4_pattern_allow([^MKDIR_P$]) m4trace:configure.ac:10: -1- m4_pattern_allow([^mkdir_p$]) m4trace:configure.ac:10: -1- m4_pattern_allow([^AWK$]) m4trace:configure.ac:10: -1- m4_pattern_allow([^SET_MAKE$]) m4trace:configure.ac:10: -1- AM_SET_LEADING_DOT m4trace:configure.ac:10: -1- m4_pattern_allow([^am__leading_dot$]) m4trace:configure.ac:10: -1- _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) m4trace:configure.ac:10: -2- _AM_MANGLE_OPTION([tar-ustar]) m4trace:configure.ac:10: -1- _AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])]) m4trace:configure.ac:10: -2- _AM_MANGLE_OPTION([tar-pax]) m4trace:configure.ac:10: -1- _AM_PROG_TAR([v7]) m4trace:configure.ac:10: -1- m4_pattern_allow([^AMTAR$]) m4trace:configure.ac:10: -1- m4_pattern_allow([^am__tar$]) m4trace:configure.ac:10: -1- m4_pattern_allow([^am__untar$]) m4trace:configure.ac:10: -1- _AM_IF_OPTION([no-dependencies], [], [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES([CC])], [m4_define([AC_PROG_CC], m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES([CXX])], [m4_define([AC_PROG_CXX], m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES([OBJC])], [m4_define([AC_PROG_OBJC], m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], [_AM_DEPENDENCIES([OBJCXX])], [m4_define([AC_PROG_OBJCXX], m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl ]) m4trace:configure.ac:10: -2- _AM_MANGLE_OPTION([no-dependencies]) m4trace:configure.ac:10: -1- AM_SILENT_RULES m4trace:configure.ac:10: -1- m4_pattern_allow([^AM_V$]) m4trace:configure.ac:10: -1- AM_SUBST_NOTMAKE([AM_V]) m4trace:configure.ac:10: -1- _AM_SUBST_NOTMAKE([AM_V]) m4trace:configure.ac:10: -1- m4_pattern_allow([^AM_DEFAULT_V$]) m4trace:configure.ac:10: -1- AM_SUBST_NOTMAKE([AM_DEFAULT_V]) m4trace:configure.ac:10: -1- _AM_SUBST_NOTMAKE([AM_DEFAULT_V]) m4trace:configure.ac:10: -1- m4_pattern_allow([^AM_DEFAULT_VERBOSITY$]) m4trace:configure.ac:10: -1- m4_pattern_allow([^AM_BACKSLASH$]) m4trace:configure.ac:10: -1- _AM_SUBST_NOTMAKE([AM_BACKSLASH]) m4trace:configure.ac:11: -1- AM_MAINTAINER_MODE([disable]) m4trace:configure.ac:11: -1- AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) m4trace:configure.ac:11: -1- m4_pattern_allow([^MAINTAINER_MODE_TRUE$]) m4trace:configure.ac:11: -1- m4_pattern_allow([^MAINTAINER_MODE_FALSE$]) m4trace:configure.ac:11: -1- _AM_SUBST_NOTMAKE([MAINTAINER_MODE_TRUE]) m4trace:configure.ac:11: -1- _AM_SUBST_NOTMAKE([MAINTAINER_MODE_FALSE]) m4trace:configure.ac:11: -1- m4_pattern_allow([^MAINT$]) m4trace:configure.ac:13: -1- m4_pattern_allow([^DIVERT_PORT$]) m4trace:configure.ac:15: -1- m4_pattern_allow([^TCPCRYPTD_DIVERT_PORT$]) m4trace:configure.ac:17: -1- m4_pattern_allow([^TCPCRYPTD_DIVERT_PORT$]) m4trace:configure.ac:20: -1- m4_pattern_allow([^CONTROL_SOCKET$]) m4trace:configure.ac:23: -1- m4_pattern_allow([^TCPCRYPTD_CONTROL_SOCKET$]) m4trace:configure.ac:26: -1- m4_pattern_allow([^TCPCRYPTD_CONTROL_SOCKET$]) m4trace:configure.ac:30: -1- m4_pattern_allow([^JAIL_DIR$]) m4trace:configure.ac:32: -1- m4_pattern_allow([^TCPCRYPTD_JAIL_DIR$]) m4trace:configure.ac:34: -1- m4_pattern_allow([^TCPCRYPTD_JAIL_DIR$]) m4trace:configure.ac:37: -1- m4_pattern_allow([^JAIL_USER$]) m4trace:configure.ac:39: -1- m4_pattern_allow([^TCPCRYPTD_JAIL_USER$]) m4trace:configure.ac:41: -1- m4_pattern_allow([^TCPCRYPTD_JAIL_USER$]) m4trace:configure.ac:44: -1- m4_pattern_allow([^TEST_SERVER$]) m4trace:configure.ac:46: -1- m4_pattern_allow([^TCPCRYPTD_TEST_SERVER$]) m4trace:configure.ac:48: -1- m4_pattern_allow([^TCPCRYPTD_TEST_SERVER$]) m4trace:configure.ac:52: -1- m4_pattern_allow([^CC$]) m4trace:configure.ac:52: -1- m4_pattern_allow([^CFLAGS$]) m4trace:configure.ac:52: -1- m4_pattern_allow([^LDFLAGS$]) m4trace:configure.ac:52: -1- m4_pattern_allow([^LIBS$]) m4trace:configure.ac:52: -1- m4_pattern_allow([^CPPFLAGS$]) m4trace:configure.ac:52: -1- m4_pattern_allow([^CC$]) m4trace:configure.ac:52: -1- m4_pattern_allow([^CC$]) m4trace:configure.ac:52: -1- m4_pattern_allow([^CC$]) m4trace:configure.ac:52: -1- m4_pattern_allow([^CC$]) m4trace:configure.ac:52: -1- m4_pattern_allow([^ac_ct_CC$]) m4trace:configure.ac:52: -1- m4_pattern_allow([^EXEEXT$]) m4trace:configure.ac:52: -1- m4_pattern_allow([^OBJEXT$]) m4trace:configure.ac:52: -1- _AM_PROG_CC_C_O m4trace:configure.ac:52: -1- AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) m4trace:configure.ac:52: -1- _AM_DEPENDENCIES([CC]) m4trace:configure.ac:52: -1- AM_SET_DEPDIR m4trace:configure.ac:52: -1- m4_pattern_allow([^DEPDIR$]) m4trace:configure.ac:52: -1- AM_OUTPUT_DEPENDENCY_COMMANDS m4trace:configure.ac:52: -1- AM_MAKE_INCLUDE m4trace:configure.ac:52: -1- m4_pattern_allow([^am__include$]) m4trace:configure.ac:52: -1- m4_pattern_allow([^am__quote$]) m4trace:configure.ac:52: -1- AM_DEP_TRACK m4trace:configure.ac:52: -1- AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) m4trace:configure.ac:52: -1- m4_pattern_allow([^AMDEP_TRUE$]) m4trace:configure.ac:52: -1- m4_pattern_allow([^AMDEP_FALSE$]) m4trace:configure.ac:52: -1- _AM_SUBST_NOTMAKE([AMDEP_TRUE]) m4trace:configure.ac:52: -1- _AM_SUBST_NOTMAKE([AMDEP_FALSE]) m4trace:configure.ac:52: -1- m4_pattern_allow([^AMDEPBACKSLASH$]) m4trace:configure.ac:52: -1- _AM_SUBST_NOTMAKE([AMDEPBACKSLASH]) m4trace:configure.ac:52: -1- m4_pattern_allow([^am__nodep$]) m4trace:configure.ac:52: -1- _AM_SUBST_NOTMAKE([am__nodep]) m4trace:configure.ac:52: -1- m4_pattern_allow([^CCDEPMODE$]) m4trace:configure.ac:52: -1- AM_CONDITIONAL([am__fastdepCC], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3]) m4trace:configure.ac:52: -1- m4_pattern_allow([^am__fastdepCC_TRUE$]) m4trace:configure.ac:52: -1- m4_pattern_allow([^am__fastdepCC_FALSE$]) m4trace:configure.ac:52: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_TRUE]) m4trace:configure.ac:52: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_FALSE]) m4trace:configure.ac:53: -1- m4_pattern_allow([^LN_S$]) m4trace:configure.ac:54: -1- AM_PROG_AR m4trace:configure.ac:54: -1- m4_pattern_allow([^AR$]) m4trace:configure.ac:54: -1- m4_pattern_allow([^ac_ct_AR$]) m4trace:configure.ac:54: -1- m4_pattern_allow([^AR$]) m4trace:configure.ac:55: -1- LT_INIT m4trace:configure.ac:55: -1- m4_pattern_forbid([^_?LT_[A-Z_]+$]) m4trace:configure.ac:55: -1- m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$]) m4trace:configure.ac:55: -1- LTOPTIONS_VERSION m4trace:configure.ac:55: -1- LTSUGAR_VERSION m4trace:configure.ac:55: -1- LTVERSION_VERSION m4trace:configure.ac:55: -1- LTOBSOLETE_VERSION m4trace:configure.ac:55: -1- _LT_PROG_LTMAIN m4trace:configure.ac:55: -1- m4_pattern_allow([^LIBTOOL$]) m4trace:configure.ac:55: -1- m4_pattern_allow([^build$]) m4trace:configure.ac:55: -1- m4_pattern_allow([^build_cpu$]) m4trace:configure.ac:55: -1- m4_pattern_allow([^build_vendor$]) m4trace:configure.ac:55: -1- m4_pattern_allow([^build_os$]) m4trace:configure.ac:55: -1- m4_pattern_allow([^host$]) m4trace:configure.ac:55: -1- m4_pattern_allow([^host_cpu$]) m4trace:configure.ac:55: -1- m4_pattern_allow([^host_vendor$]) m4trace:configure.ac:55: -1- m4_pattern_allow([^host_os$]) m4trace:configure.ac:55: -1- _LT_PREPARE_SED_QUOTE_VARS m4trace:configure.ac:55: -1- _LT_PROG_ECHO_BACKSLASH m4trace:configure.ac:55: -1- LT_PATH_LD m4trace:configure.ac:55: -1- m4_pattern_allow([^SED$]) m4trace:configure.ac:55: -1- AC_PROG_EGREP m4trace:configure.ac:55: -1- m4_pattern_allow([^GREP$]) m4trace:configure.ac:55: -1- m4_pattern_allow([^EGREP$]) m4trace:configure.ac:55: -1- m4_pattern_allow([^FGREP$]) m4trace:configure.ac:55: -1- m4_pattern_allow([^GREP$]) m4trace:configure.ac:55: -1- m4_pattern_allow([^LD$]) m4trace:configure.ac:55: -1- LT_PATH_NM m4trace:configure.ac:55: -1- m4_pattern_allow([^DUMPBIN$]) m4trace:configure.ac:55: -1- m4_pattern_allow([^ac_ct_DUMPBIN$]) m4trace:configure.ac:55: -1- m4_pattern_allow([^DUMPBIN$]) m4trace:configure.ac:55: -1- m4_pattern_allow([^NM$]) m4trace:configure.ac:55: -1- LT_CMD_MAX_LEN m4trace:configure.ac:55: -1- m4_pattern_allow([^OBJDUMP$]) m4trace:configure.ac:55: -1- m4_pattern_allow([^OBJDUMP$]) m4trace:configure.ac:55: -1- m4_pattern_allow([^DLLTOOL$]) m4trace:configure.ac:55: -1- m4_pattern_allow([^DLLTOOL$]) m4trace:configure.ac:55: -1- m4_pattern_allow([^AR$]) m4trace:configure.ac:55: -1- m4_pattern_allow([^ac_ct_AR$]) m4trace:configure.ac:55: -1- m4_pattern_allow([^STRIP$]) m4trace:configure.ac:55: -1- m4_pattern_allow([^RANLIB$]) m4trace:configure.ac:55: -1- _LT_WITH_SYSROOT m4trace:configure.ac:55: -1- m4_pattern_allow([LT_OBJDIR]) m4trace:configure.ac:55: -1- m4_pattern_allow([^LT_OBJDIR$]) m4trace:configure.ac:55: -1- _LT_CC_BASENAME([$compiler]) m4trace:configure.ac:55: -1- _LT_PATH_TOOL_PREFIX([${ac_tool_prefix}file], [/usr/bin$PATH_SEPARATOR$PATH]) m4trace:configure.ac:55: -1- _LT_PATH_TOOL_PREFIX([file], [/usr/bin$PATH_SEPARATOR$PATH]) m4trace:configure.ac:55: -1- LT_SUPPORTED_TAG([CC]) m4trace:configure.ac:55: -1- _LT_COMPILER_BOILERPLATE m4trace:configure.ac:55: -1- _LT_LINKER_BOILERPLATE m4trace:configure.ac:55: -1- _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, )="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, ) -fno-rtti -fno-exceptions"]) m4trace:configure.ac:55: -1- _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, ) works], [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, )], [$_LT_TAGVAR(lt_prog_compiler_pic, )@&t@m4_if([],[],[ -DPIC],[m4_if([],[CXX],[ -DPIC],[])])], [], [case $_LT_TAGVAR(lt_prog_compiler_pic, ) in "" | " "*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, )=" $_LT_TAGVAR(lt_prog_compiler_pic, )" ;; esac], [_LT_TAGVAR(lt_prog_compiler_pic, )= _LT_TAGVAR(lt_prog_compiler_can_build_shared, )=no]) m4trace:configure.ac:55: -1- _LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], [lt_cv_prog_compiler_static_works], [$lt_tmp_static_flag], [], [_LT_TAGVAR(lt_prog_compiler_static, )=]) m4trace:configure.ac:55: -1- m4_pattern_allow([^MANIFEST_TOOL$]) m4trace:configure.ac:55: -1- _LT_DLL_DEF_P([$export_symbols]) m4trace:configure.ac:55: -1- _LT_DLL_DEF_P([$export_symbols]) m4trace:configure.ac:55: -1- _LT_REQUIRED_DARWIN_CHECKS m4trace:configure.ac:55: -1- m4_pattern_allow([^DSYMUTIL$]) m4trace:configure.ac:55: -1- m4_pattern_allow([^NMEDIT$]) m4trace:configure.ac:55: -1- m4_pattern_allow([^LIPO$]) m4trace:configure.ac:55: -1- m4_pattern_allow([^OTOOL$]) m4trace:configure.ac:55: -1- m4_pattern_allow([^OTOOL64$]) m4trace:configure.ac:55: -1- _LT_LINKER_OPTION([if $CC understands -b], [lt_cv_prog_compiler__b], [-b], [_LT_TAGVAR(archive_cmds, )='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], [_LT_TAGVAR(archive_cmds, )='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags']) m4trace:configure.ac:55: -1- m4_pattern_allow([^LT_SYS_LIBRARY_PATH$]) m4trace:configure.ac:55: -1- LT_SYS_DLOPEN_SELF m4trace:configure.ac:55: -1- m4_pattern_allow([^CPP$]) m4trace:configure.ac:55: -1- m4_pattern_allow([^CPPFLAGS$]) m4trace:configure.ac:55: -1- m4_pattern_allow([^CPP$]) m4trace:configure.ac:55: -1- m4_pattern_allow([^STDC_HEADERS$]) m4trace:configure.ac:55: -1- m4_pattern_allow([^HAVE_DLFCN_H$]) m4trace:configure.ac:56: -1- AM_PROG_AS m4trace:configure.ac:56: -1- m4_pattern_allow([^CCAS$]) m4trace:configure.ac:56: -1- m4_pattern_allow([^CCASFLAGS$]) m4trace:configure.ac:56: -1- _AM_IF_OPTION([no-dependencies], [], [_AM_DEPENDENCIES([CCAS])]) m4trace:configure.ac:56: -2- _AM_MANGLE_OPTION([no-dependencies]) m4trace:configure.ac:56: -1- _AM_DEPENDENCIES([CCAS]) m4trace:configure.ac:56: -1- m4_pattern_allow([^CCASDEPMODE$]) m4trace:configure.ac:56: -1- AM_CONDITIONAL([am__fastdepCCAS], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CCAS_dependencies_compiler_type" = gcc3]) m4trace:configure.ac:56: -1- m4_pattern_allow([^am__fastdepCCAS_TRUE$]) m4trace:configure.ac:56: -1- m4_pattern_allow([^am__fastdepCCAS_FALSE$]) m4trace:configure.ac:56: -1- _AM_SUBST_NOTMAKE([am__fastdepCCAS_TRUE]) m4trace:configure.ac:56: -1- _AM_SUBST_NOTMAKE([am__fastdepCCAS_FALSE]) m4trace:configure.ac:66: -1- AM_CONDITIONAL([OS_LINUX], [test "$os_linux" -eq 1]) m4trace:configure.ac:66: -1- m4_pattern_allow([^OS_LINUX_TRUE$]) m4trace:configure.ac:66: -1- m4_pattern_allow([^OS_LINUX_FALSE$]) m4trace:configure.ac:66: -1- _AM_SUBST_NOTMAKE([OS_LINUX_TRUE]) m4trace:configure.ac:66: -1- _AM_SUBST_NOTMAKE([OS_LINUX_FALSE]) m4trace:configure.ac:67: -1- AM_CONDITIONAL([OS_BSD], [echo $host_os | grep -E 'darwin|freebsd']) m4trace:configure.ac:67: -1- m4_pattern_allow([^OS_BSD_TRUE$]) m4trace:configure.ac:67: -1- m4_pattern_allow([^OS_BSD_FALSE$]) m4trace:configure.ac:67: -1- _AM_SUBST_NOTMAKE([OS_BSD_TRUE]) m4trace:configure.ac:67: -1- _AM_SUBST_NOTMAKE([OS_BSD_FALSE]) m4trace:configure.ac:68: -1- AM_CONDITIONAL([OS_MINGW], [echo $host_os | grep mingw]) m4trace:configure.ac:68: -1- m4_pattern_allow([^OS_MINGW_TRUE$]) m4trace:configure.ac:68: -1- m4_pattern_allow([^OS_MINGW_FALSE$]) m4trace:configure.ac:68: -1- _AM_SUBST_NOTMAKE([OS_MINGW_TRUE]) m4trace:configure.ac:68: -1- _AM_SUBST_NOTMAKE([OS_MINGW_FALSE]) m4trace:configure.ac:70: -1- m4_pattern_allow([^OS_LINUX$]) m4trace:configure.ac:70: -1- m4_pattern_allow([^OS_LINUX$]) m4trace:configure.ac:86: -1- m4_pattern_allow([^CXXFLAGS$]) m4trace:configure.ac:87: -1- m4_pattern_allow([^CFLAGS$]) m4trace:configure.ac:101: -1- m4_pattern_allow([^NO_ASM$]) m4trace:configure.ac:103: -1- AM_CONDITIONAL([NO_ASM], [test x$enable_asm = xno]) m4trace:configure.ac:103: -1- m4_pattern_allow([^NO_ASM_TRUE$]) m4trace:configure.ac:103: -1- m4_pattern_allow([^NO_ASM_FALSE$]) m4trace:configure.ac:103: -1- _AM_SUBST_NOTMAKE([NO_ASM_TRUE]) m4trace:configure.ac:103: -1- _AM_SUBST_NOTMAKE([NO_ASM_FALSE]) m4trace:configure.ac:105: -1- AM_CONDITIONAL([HAVE_NI], [false]) m4trace:configure.ac:105: -1- m4_pattern_allow([^HAVE_NI_TRUE$]) m4trace:configure.ac:105: -1- m4_pattern_allow([^HAVE_NI_FALSE$]) m4trace:configure.ac:105: -1- _AM_SUBST_NOTMAKE([HAVE_NI_TRUE]) m4trace:configure.ac:105: -1- _AM_SUBST_NOTMAKE([HAVE_NI_FALSE]) m4trace:configure.ac:115: -1- m4_pattern_allow([^HAVE_LIBPTHREAD$]) m4trace:configure.ac:116: -1- m4_pattern_allow([^HAVE_LIBWSOCK32$]) m4trace:configure.ac:117: -1- m4_pattern_allow([^HAVE_LIBIPHLPAPI$]) m4trace:configure.ac:118: -1- m4_pattern_allow([^tcpcryptd_LDADD$]) m4trace:configure.ac:119: -1- m4_pattern_allow([^crypto_LDADD$]) m4trace:configure.ac:126: -1- m4_pattern_allow([^mode_t$]) m4trace:configure.ac:127: -1- m4_pattern_allow([^size_t$]) m4trace:configure.ac:128: -1- m4_pattern_allow([^ssize_t$]) m4trace:configure.ac:129: -1- m4_pattern_allow([^uint16_t$]) m4trace:configure.ac:130: -1- m4_pattern_allow([^_UINT32_T$]) m4trace:configure.ac:130: -1- m4_pattern_allow([^uint32_t$]) m4trace:configure.ac:131: -1- m4_pattern_allow([^_UINT64_T$]) m4trace:configure.ac:131: -1- m4_pattern_allow([^uint64_t$]) m4trace:configure.ac:132: -1- m4_pattern_allow([^_UINT8_T$]) m4trace:configure.ac:132: -1- m4_pattern_allow([^uint8_t$]) m4trace:configure.ac:133: -1- m4_pattern_allow([^HAVE_PTRDIFF_T$]) m4trace:configure.ac:140: -1- m4_pattern_allow([^HAVE_ALLOCA_H$]) m4trace:configure.ac:140: -1- m4_pattern_allow([^HAVE_ALLOCA$]) m4trace:configure.ac:140: -1- m4_pattern_allow([^ALLOCA$]) m4trace:configure.ac:140: -1- m4_pattern_allow([^C_ALLOCA$]) m4trace:configure.ac:140: -1- m4_pattern_allow([^CRAY_STACKSEG_END$]) m4trace:configure.ac:140: -1- m4_pattern_allow([^STACK_DIRECTION$]) m4trace:configure.ac:141: -1- m4_pattern_allow([^pid_t$]) m4trace:configure.ac:141: -1- m4_pattern_allow([^HAVE_VFORK_H$]) m4trace:configure.ac:141: -1- m4_pattern_allow([^HAVE_WORKING_VFORK$]) m4trace:configure.ac:141: -1- m4_pattern_allow([^vfork$]) m4trace:configure.ac:141: -1- m4_pattern_allow([^HAVE_WORKING_FORK$]) m4trace:configure.ac:142: -1- m4_pattern_allow([^HAVE_STDLIB_H$]) m4trace:configure.ac:142: -1- m4_pattern_allow([^HAVE_MALLOC$]) m4trace:configure.ac:142: -1- m4_pattern_allow([^HAVE_MALLOC$]) m4trace:configure.ac:142: -1- m4_pattern_allow([^LIB@&t@OBJS$]) m4trace:configure.ac:142: -1- m4_pattern_allow([^malloc$]) m4trace:configure.ac:146: -1- m4_pattern_allow([^LIB@&t@OBJS$]) m4trace:configure.ac:146: -1- m4_pattern_allow([^LTLIBOBJS$]) m4trace:configure.ac:146: -1- AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"]) m4trace:configure.ac:146: -1- m4_pattern_allow([^am__EXEEXT_TRUE$]) m4trace:configure.ac:146: -1- m4_pattern_allow([^am__EXEEXT_FALSE$]) m4trace:configure.ac:146: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_TRUE]) m4trace:configure.ac:146: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_FALSE]) m4trace:configure.ac:146: -1- _AC_AM_CONFIG_HEADER_HOOK(["$ac_file"]) m4trace:configure.ac:146: -1- _AM_OUTPUT_DEPENDENCY_COMMANDS m4trace:configure.ac:146: -1- _LT_PROG_LTMAIN tcpcrypt-0.5/autom4te.cache/output.10000644000175200017520000164447012742073030016530 0ustar sorbosorbo@%:@! /bin/sh @%:@ Guess values for system-dependent variables and create Makefiles. @%:@ Generated by GNU Autoconf 2.69 for tcpcrypt 0.5. @%:@ @%:@ Report bugs to . @%:@ @%:@ @%:@ Copyright (C) 1992-1996, 1998-2012 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. as_myself= 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 # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then _as_can_reexec=no; export _as_can_reexec; # 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. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in @%:@ (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 as_fn_exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} 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 test -x / || 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 -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO PATH=/empty FPATH=/empty; export PATH FPATH test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || 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 : export CONFIG_SHELL # 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. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in @%:@ (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 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 and $0: tcpcrypt-users@lists.stanford.edu 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 @S|@? 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 "@S|@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_executable_p FILE @%:@ ----------------------- @%:@ Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } @%:@ as_fn_executable_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 @S|@as_val. Take advantage of shells that can avoid forks. The arguments @%:@ must be portable across @S|@(()) 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 STATUS ERROR [LINENO LOG_FD] @%:@ ---------------------------------------- @%:@ Output "`basename @S|@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=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&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; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall # in an infinite loop. This has already happened in practice. _as_can_reexec=no; export _as_can_reexec # 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 -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' 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 as_test_x='test -x' as_executable_p=as_fn_executable_p # 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'" SHELL=${CONFIG_SHELL-/bin/sh} test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/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=. LIB@&t@OBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='tcpcrypt' PACKAGE_TARNAME='tcpcrypt' PACKAGE_VERSION='0.5' PACKAGE_STRING='tcpcrypt 0.5' PACKAGE_BUGREPORT='tcpcrypt-users@lists.stanford.edu' PACKAGE_URL='http://tcpcrypt.org' ac_unique_file="src/tcpcryptd.c" # 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 LIB@&t@OBJS ALLOCA crypto_LDADD tcpcryptd_LDADD HAVE_NI_FALSE HAVE_NI_TRUE NO_ASM_FALSE NO_ASM_TRUE CXXFLAGS OS_MINGW_FALSE OS_MINGW_TRUE OS_BSD_FALSE OS_BSD_TRUE OS_LINUX_FALSE OS_LINUX_TRUE am__fastdepCCAS_FALSE am__fastdepCCAS_TRUE CCASDEPMODE CCASFLAGS CCAS CPP LT_SYS_LIBRARY_PATH OTOOL64 OTOOL LIPO NMEDIT DSYMUTIL MANIFEST_TOOL RANLIB DLLTOOL OBJDUMP 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 ac_ct_AR AR LN_S am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE am__nodep AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE am__quote am__include DEPDIR OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC TEST_SERVER JAIL_USER JAIL_DIR CONTROL_SOCKET DIVERT_PORT MAINT MAINTAINER_MODE_FALSE MAINTAINER_MODE_TRUE AM_BACKSLASH AM_DEFAULT_VERBOSITY AM_DEFAULT_V AM_V 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_silent_rules enable_maintainer_mode enable_dependency_tracking enable_shared enable_static with_pic enable_fast_install with_aix_soname with_gnu_ld with_sysroot enable_libtool_lock enable_debug enable_asm ' ac_precious_vars='build_alias host_alias target_alias DIVERT_PORT CONTROL_SOCKET JAIL_DIR JAIL_USER TEST_SERVER CC CFLAGS LDFLAGS LIBS CPPFLAGS LT_SYS_LIBRARY_PATH CPP CCAS CCASFLAGS' # 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= ;; *) 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 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 tcpcrypt 0.5 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 @<:@@S|@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/tcpcrypt@:>@ --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 tcpcrypt 0.5:";; 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] --enable-silent-rules less verbose build output (undo: "make V=1") --disable-silent-rules verbose build output (undo: "make V=0") --enable-maintainer-mode enable make rules and dependencies not useful (and sometimes confusing) to the casual installer --enable-dependency-tracking do not reject slow dependency extractors --disable-dependency-tracking speeds up one-time build --enable-shared@<:@=PKGS@:>@ build shared libraries @<:@default=yes@:>@ --enable-static@<:@=PKGS@:>@ build static libraries @<:@default=yes@:>@ --enable-fast-install@<:@=PKGS@:>@ optimize for fast installation @<:@default=yes@:>@ --disable-libtool-lock avoid locking (might break parallel builds) --enable-debug enable tracing and debugging flags for all components --enable-asm use asm checksum routine Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-pic@<:@=PKGS@:>@ try to use only PIC/non-PIC objects @<:@default=use both@:>@ --with-aix-soname=aix|svr4|both shared library versioning (aka "SONAME") variant to provide on AIX, @<:@default=aix@:>@. --with-gnu-ld assume the C compiler uses GNU ld @<:@default=no@:>@ --with-sysroot@<:@=DIR@:>@ Search for dependent libraries within DIR (or the compiler's sysroot if not specified). Some influential environment variables: DIVERT_PORT Default divert port for tcpcryptd CONTROL_SOCKET Default local control socket for tcpcryptd: unix-domain path or localhost port-number JAIL_DIR Default jail directory for tcpcryptd JAIL_USER Default jail username for tcpcryptd TEST_SERVER Default network test server for tcpcryptd 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 LT_SYS_LIBRARY_PATH User-defined run-time library search path. CPP C preprocessor CCAS assembler compiler command (defaults to CC) CCASFLAGS assembler compiler flags (defaults to CFLAGS) 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 . tcpcrypt home page: . _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 tcpcrypt configure 0.5 generated by GNU Autoconf 2.69 Copyright (C) 2012 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.@S|@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; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } @%:@ ac_fn_c_try_compile @%:@ ac_fn_c_try_link LINENO @%:@ ----------------------- @%:@ Try to link conftest.@S|@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 || 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; ${as_lineno_stack:+:} 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 eval \${$3+:} false; 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; ${as_lineno_stack:+:} unset as_lineno } @%:@ ac_fn_c_check_header_compile @%:@ ac_fn_c_try_cpp LINENO @%:@ ---------------------- @%:@ Try to preprocess conftest.@S|@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; } > conftest.i && { 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; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } @%:@ ac_fn_c_try_cpp @%:@ ac_fn_c_try_run LINENO @%:@ ---------------------- @%:@ Try to link conftest.@S|@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; ${as_lineno_stack:+:} 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 eval \${$3+:} false; 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; ${as_lineno_stack:+:} 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 eval \${$3+:} false; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; 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.i 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;} ( $as_echo "## ------------------------------------------------ ## ## Report this to tcpcrypt-users@lists.stanford.edu ## ## ------------------------------------------------ ##" ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; 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; ${as_lineno_stack:+:} unset as_lineno } @%:@ ac_fn_c_check_header_mongrel @%:@ ac_fn_c_check_type LINENO TYPE VAR INCLUDES @%:@ ------------------------------------------- @%:@ Tests whether TYPE exists after having included INCLUDES, setting cache @%:@ variable VAR accordingly. ac_fn_c_check_type () { 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 eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=no" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof ($2)) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof (($2))) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else eval "$3=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 eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } @%:@ ac_fn_c_check_type @%:@ ac_fn_c_find_uintX_t LINENO BITS VAR @%:@ ------------------------------------ @%:@ Finds an unsigned integer type with width BITS, setting cache variable VAR @%:@ accordingly. ac_fn_c_find_uintX_t () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uint$2_t" >&5 $as_echo_n "checking for uint$2_t... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=no" # Order is important - never check a type that is potentially smaller # than half of the expected target width. for ac_type in uint$2_t 'unsigned int' 'unsigned long int' \ 'unsigned long long int' 'unsigned short int' 'unsigned char'; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { static int test_array @<:@1 - 2 * !((($ac_type) -1 >> ($2 / 2 - 1)) >> ($2 / 2 - 1) == 3)@:>@; test_array @<:@0@:>@ = 0; return test_array @<:@0@:>@; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : case $ac_type in @%:@( uint$2_t) : eval "$3=yes" ;; @%:@( *) : eval "$3=\$ac_type" ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if eval test \"x\$"$3"\" = x"no"; then : else break fi done 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; ${as_lineno_stack:+:} unset as_lineno } @%:@ ac_fn_c_find_uintX_t 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 tcpcrypt $as_me 0.5, which was generated by GNU Autoconf 2.69. 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 $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" 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 $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" 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 $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" 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 $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" 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 # We do not want a PATH search for config.site. case $CONFIG_SITE in @%:@(( -*) ac_site_file1=./$CONFIG_SITE;; */*) ac_site_file1=$CONFIG_SITE;; *) ac_site_file1=./$CONFIG_SITE;; esac 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" \ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } 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" ac_aux_dir= for ac_dir in config "$srcdir"/config; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then as_fn_error $? "cannot find install-sh, install.sh, or shtool in config \"$srcdir\"/config" "$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. am__api_version='1.15' # 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 ${ac_cv_path_install+:} false; 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 as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else 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; } # 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 ( am_has_slept=no for am_try in 1 2; do echo "timestamp, slept: $am_has_slept" > conftest.file 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 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 if test "$2" = conftest.file || test $am_try -eq 2; then break fi # Just in case. sleep 1 am_has_slept=yes done 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; } # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= if grep 'slept: no' conftest.file >/dev/null 2>&1; then ( sleep 1 ) & am_sleep_pid=$! fi rm -f conftest.file 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 --is-lightweight"; then am_missing_run="$MISSING " 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+set}" != 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 ${ac_cv_prog_STRIP+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_ac_ct_STRIP+:} false; 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 as_fn_executable_p "$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 ${ac_cv_path_mkdir+:} false; 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 as_fn_executable_p "$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; } 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 ${ac_cv_prog_AWK+:} false; 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 as_fn_executable_p "$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 eval \${ac_cv_prog_make_${ac_make}_set+:} false; 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 @%:@ Check whether --enable-silent-rules was given. if test "${enable_silent_rules+set}" = set; then : enableval=$enable_silent_rules; fi case $enable_silent_rules in @%:@ ((( yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=1;; esac am_make=${MAKE-make} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 $as_echo_n "checking whether $am_make supports nested variables... " >&6; } if ${am_cv_make_support_nested_variables+:} false; then : $as_echo_n "(cached) " >&6 else if $as_echo 'TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 am__doit: @$(TRUE) .PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 $as_echo "$am_cv_make_support_nested_variables" >&6; } if test $am_cv_make_support_nested_variables = yes; then AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi AM_BACKSLASH='\' 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='tcpcrypt' VERSION='0.5' 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"} # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: # # mkdir_p='$(MKDIR_P)' # We need awk for the "check" target (and possibly the TAP driver). The # system "awk" is bad on some platforms. # Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AMTAR='$${TAR-tar}' # We'll loop over all known methods to create a tar archive until one works. _am_tools='gnutar pax cpio none' am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' # POSIX will say in a future version that running "rm -f" with no argument # is OK; and we want to be able to make that assumption in our Makefile # recipes. So use an aggressive probe to check that the usage we want is # actually supported "in the wild" to an acceptable degree. # See automake bug#10828. # To make any issue more visible, cause the running configure to be aborted # by default if the 'rm' program in use doesn't match our expectations; the # user can still override this though. if rm -f && rm -fr && rm -rf; then : OK; else cat >&2 <<'END' Oops! Your 'rm' program seems unable to run without file operands specified on the command line, even when the '-f' option is present. This is contrary to the behaviour of most rm programs out there, and not conforming with the upcoming POSIX standard: Please tell bug-automake@gnu.org about your system, including the value of your $PATH and any error possibly output before this message. This can help us improve future automake versions. END if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then echo 'Configuration will proceed anyway, since you have set the' >&2 echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 echo >&2 else cat >&2 <<'END' Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation that behaves properly: . If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM to "yes", and re-run configure. END as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 $as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } @%:@ Check whether --enable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then : enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval else USE_MAINTAINER_MODE=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 $as_echo "$USE_MAINTAINER_MODE" >&6; } if test $USE_MAINTAINER_MODE = yes; then MAINTAINER_MODE_TRUE= MAINTAINER_MODE_FALSE='#' else MAINTAINER_MODE_TRUE='#' MAINTAINER_MODE_FALSE= fi MAINT=$MAINTAINER_MODE_TRUE if test -n "$DIVERT_PORT"; then cat >>confdefs.h <<_ACEOF @%:@define TCPCRYPTD_DIVERT_PORT $DIVERT_PORT _ACEOF else $as_echo "@%:@define TCPCRYPTD_DIVERT_PORT 666" >>confdefs.h fi if test -n "$CONTROL_SOCKET"; then cat >>confdefs.h <<_ACEOF @%:@define TCPCRYPTD_CONTROL_SOCKET $CONTROL_SOCKET _ACEOF else $as_echo "@%:@define TCPCRYPTD_CONTROL_SOCKET \"/var/run/tcpcryptd.control\"" >>confdefs.h fi if test -n "$JAIL_DIR"; then cat >>confdefs.h <<_ACEOF @%:@define TCPCRYPTD_JAIL_DIR "$JAIL_DIR" _ACEOF else $as_echo "@%:@define TCPCRYPTD_JAIL_DIR \"/var/run/tcpcryptd\"" >>confdefs.h fi if test -n "$JAIL_USER"; then cat >>confdefs.h <<_ACEOF @%:@define TCPCRYPTD_JAIL_USER "$JAIL_USER" _ACEOF else $as_echo "@%:@define TCPCRYPTD_JAIL_USER \"tcpcryptd\"" >>confdefs.h fi if test -n "$TEST_SERVER"; then cat >>confdefs.h <<_ACEOF @%:@define TCPCRYPTD_TEST_SERVER "$TEST_SERVER" _ACEOF else $as_echo "@%:@define TCPCRYPTD_TEST_SERVER \"check.tcpcrypt.org\"" >>confdefs.h fi # Checks for programs. 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 ${ac_cv_prog_CC+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_ac_ct_CC+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_CC+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_CC+:} false; 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $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 ${ac_cv_prog_CC+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_ac_ct_CC+:} false; 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 as_fn_executable_p "$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_error 77 "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 ${ac_cv_objext+:} false; 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 ${ac_cv_c_compiler_gnu+:} false; 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 ${ac_cv_prog_cc_g+:} false; 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 ${ac_cv_prog_cc_c89+:} false; 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 struct stat; /* 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 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 whether $CC understands -c and -o together" >&5 $as_echo_n "checking whether $CC understands -c and -o together... " >&6; } if ${am_cv_prog_cc_c_o+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF # Make sure it works both with $CC and with simple cc. # Following AC_PROG_CC_C_O, we do the test twice because some # compilers refuse to overwrite an existing .o file with -o, # though they will create one. am_cv_prog_cc_c_o=yes for am_i in 1 2; do if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } \ && test -f conftest2.$ac_objext; then : OK else am_cv_prog_cc_c_o=no break fi done rm -f core conftest* unset am_i fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 $as_echo "$am_cv_prog_cc_c_o" >&6; } if test "$am_cv_prog_cc_c_o" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" 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='\' am__nodep='_no' 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 ${am_cv_CC_dependencies_compiler_type+:} false; 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". rm -rf conftest.dir 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 10 /bin/sh. echo '/* dummy */' > 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 ;; msvc7 | msvc7msys | 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 { $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 if test -n "$ac_tool_prefix"; then for ac_prog in ar lib "link -lib" 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 ${ac_cv_prog_AR+:} false; 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AR="$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 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 test -n "$AR" && break done fi if test -z "$AR"; then ac_ct_AR=$AR for ac_prog in ar lib "link -lib" 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 ${ac_cv_prog_ac_ct_AR+:} false; 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="$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_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 test -n "$ac_ct_AR" && break done 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 fi : ${AR=ar} { $as_echo "$as_me:${as_lineno-$LINENO}: checking the archiver ($AR) interface" >&5 $as_echo_n "checking the archiver ($AR) interface... " >&6; } if ${am_cv_ar_interface+:} false; 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 am_cv_ar_interface=ar cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int some_variable = 0; _ACEOF if ac_fn_c_try_compile "$LINENO"; then : am_ar_try='$AR cru libconftest.a conftest.$ac_objext >&5' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$am_ar_try\""; } >&5 (eval $am_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test "$ac_status" -eq 0; then am_cv_ar_interface=ar else am_ar_try='$AR -NOLOGO -OUT:conftest.lib conftest.$ac_objext >&5' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$am_ar_try\""; } >&5 (eval $am_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test "$ac_status" -eq 0; then am_cv_ar_interface=lib else am_cv_ar_interface=unknown fi fi rm -f conftest.lib libconftest.a fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_ar_interface" >&5 $as_echo "$am_cv_ar_interface" >&6; } case $am_cv_ar_interface in ar) ;; lib) # Microsoft lib, so override with the ar-lib wrapper script. # FIXME: It is wrong to rewrite AR. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__AR in this case, # and then we could set am__AR="$am_aux_dir/ar-lib \$(AR)" or something # similar. AR="$am_aux_dir/ar-lib $AR" ;; unknown) as_fn_error $? "could not determine $AR interface" "$LINENO" 5 ;; esac 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.4.6' macro_revision='2.4.6' 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 ${ac_cv_build+:} false; 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 ${ac_cv_host+:} false; 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 # Backslashify 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' ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 $as_echo_n "checking how to print strings... " >&6; } # Test print first, because it will be a builtin if present. if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='print -r --' elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='printf %s\n' else # Use this function as a fallback that always works. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $1 _LTECHO_EOF' } ECHO='func_fallback_echo' fi # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "" } case $ECHO in printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5 $as_echo "printf" >&6; } ;; print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 $as_echo "print -r" >&6; } ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5 $as_echo "cat" >&6; } ;; 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 ${ac_cv_path_SED+:} false; 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" as_fn_executable_p "$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 ${ac_cv_path_GREP+:} false; 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" as_fn_executable_p "$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 ${ac_cv_path_EGREP+:} false; 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" as_fn_executable_p "$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 ${ac_cv_path_FGREP+:} false; 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" as_fn_executable_p "$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 no = "$withval" || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld if test yes = "$GCC"; 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 yes = "$with_gnu_ld"; 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 ${lt_cv_path_LD+:} false; 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 ${lt_cv_prog_gnu_ld+:} false; 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 ${lt_cv_path_NM+:} false; 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 # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty case $build_os in mingw*) lt_bad_file=conftest.nm/nofile ;; *) lt_bad_file=/dev/null ;; esac case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in *$lt_bad_file* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break 2 ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break 2 ;; *) 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 no != "$lt_cv_path_NM"; then NM=$lt_cv_path_NM else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$DUMPBIN"; then : # Let the user override the test. else if test -n "$ac_tool_prefix"; then for ac_prog in dumpbin "link -dump" 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 ${ac_cv_prog_DUMPBIN+:} false; 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 as_fn_executable_p "$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 "link -dump" 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 ${ac_cv_prog_ac_ct_DUMPBIN+:} false; 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 as_fn_executable_p "$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 case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in *COFF*) DUMPBIN="$DUMPBIN -symbols -headers" ;; *) DUMPBIN=: ;; esac 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 ${lt_cv_nm_interface+:} false; 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:$LINENO: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 (eval echo "\"\$as_me:$LINENO: 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; } # 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 ${lt_cv_sys_max_cmd_len+:} false; 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; ;; mint*) # On MiNT this can take a long time and run out of memory. 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; ;; bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*) # 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 ;; os2*) # The test takes a long time on OS/2. lt_cv_sys_max_cmd_len=8192 ;; 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" && \ test undefined != "$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`env echo "$teststring$teststring" 2>/dev/null` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && test 17 != "$i" # 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"} 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 how to convert $build file names to $host format" >&5 $as_echo_n "checking how to convert $build file names to $host format... " >&6; } if ${lt_cv_to_host_file_cmd+:} false; then : $as_echo_n "(cached) " >&6 else case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ;; esac ;; *-*-cygwin* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_noop ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ;; esac ;; * ) # unhandled hosts (and "normal" native builds) lt_cv_to_host_file_cmd=func_convert_file_noop ;; esac fi to_host_file_cmd=$lt_cv_to_host_file_cmd { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 $as_echo "$lt_cv_to_host_file_cmd" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 $as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } if ${lt_cv_to_tool_file_cmd+:} false; then : $as_echo_n "(cached) " >&6 else #assume ordinary cross tools, or native build. lt_cv_to_tool_file_cmd=func_convert_file_noop case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ;; esac ;; esac fi to_tool_file_cmd=$lt_cv_to_tool_file_cmd { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 $as_echo "$lt_cv_to_tool_file_cmd" >&6; } { $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 ${lt_cv_ld_reload_flag+:} false; 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 cygwin* | mingw* | pw32* | cegcc*) if test yes != "$GCC"; then reload_cmds=false fi ;; darwin*) if test yes = "$GCC"; 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 ${ac_cv_prog_OBJDUMP+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_ac_ct_OBJDUMP+:} false; 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 as_fn_executable_p "$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 ${lt_cv_deplibs_check_method+:} false; 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 # that 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 # Keep this pattern in sync with the one in func_win32_libid. lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' 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 ;; haiku*) 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])(-bit)?( [LM]SB)? 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 glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) lt_cv_deplibs_check_method=pass_all ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd* | bitrig*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; 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 ;; os2*) 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_glob= want_nocaseglob=no if test "$build" = "$host"; then case $host_os in mingw* | pw32*) if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then want_nocaseglob=yes else file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` fi ;; esac fi 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}dlltool", so it can be a program name with args. set dummy ${ac_tool_prefix}dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DLLTOOL"; then ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" $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 DLLTOOL=$ac_cv_prog_DLLTOOL if test -n "$DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 $as_echo "$DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DLLTOOL"; then ac_ct_DLLTOOL=$DLLTOOL # Extract the first word of "dlltool", so it can be a program name with args. set dummy dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DLLTOOL"; then ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DLLTOOL="dlltool" $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_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL if test -n "$ac_ct_DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 $as_echo "$ac_ct_DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DLLTOOL" = x; then DLLTOOL="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 DLLTOOL=$ac_ct_DLLTOOL fi else DLLTOOL="$ac_cv_prog_DLLTOOL" fi test -z "$DLLTOOL" && DLLTOOL=dlltool { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 $as_echo_n "checking how to associate runtime and link libraries... " >&6; } if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_sharedlib_from_linklib_cmd='unknown' case $host_os in cygwin* | mingw* | pw32* | cegcc*) # two different shell functions defined in ltmain.sh; # decide which one to use based on capabilities of $DLLTOOL case `$DLLTOOL --help 2>&1` in *--identify-strict*) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ;; *) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ;; esac ;; *) # fallback: assume linklib IS sharedlib lt_cv_sharedlib_from_linklib_cmd=$ECHO ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 $as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO if test -n "$ac_tool_prefix"; then for ac_prog in ar 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 ${ac_cv_prog_AR+:} false; 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AR="$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 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 test -n "$AR" && break done fi if test -z "$AR"; then ac_ct_AR=$AR for ac_prog in ar 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 ${ac_cv_prog_ac_ct_AR+:} false; 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="$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_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 test -n "$ac_ct_AR" && break done 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 fi : ${AR=ar} : ${AR_FLAGS=cru} { $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 $as_echo_n "checking for archiver @FILE support... " >&6; } if ${lt_cv_ar_at_file+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ar_at_file=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : echo conftest.$ac_objext > conftest.lst lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 (eval $lt_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test 0 -eq "$ac_status"; then # Ensure the archiver fails upon bogus file names. rm -f conftest.$ac_objext libconftest.a { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 (eval $lt_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test 0 -ne "$ac_status"; then lt_cv_ar_at_file=@ fi fi rm -f conftest.* libconftest.a fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 $as_echo "$lt_cv_ar_at_file" >&6; } if test no = "$lt_cv_ar_at_file"; then archiver_list_spec= else archiver_list_spec=$lt_cv_ar_at_file fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_STRIP+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_ac_ct_STRIP+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_RANLIB+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_ac_ct_RANLIB+:} false; 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 as_fn_executable_p "$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 bitrig* | openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" fi case $host_os in darwin*) lock_old_archive_extraction=yes ;; *) lock_old_archive_extraction=no ;; esac # 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 ${lt_cv_sys_global_symbol_pipe+:} false; 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 ia64 = "$host_cpu"; 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 if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Gets list of data symbols to import. lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'" # Adjust the below global symbol transforms to fixup imported variables. lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" lt_c_name_lib_hook="\ -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\ -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'" else # Disable hooks by default. lt_cv_sys_global_symbol_to_import= lt_cdecl_hook= lt_c_name_hook= lt_c_name_lib_hook= fi # 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"\ $lt_cdecl_hook\ " -e 's/^T .* \(.*\)$/extern int \1();/p'"\ " -e 's/^$symcode$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"\ $lt_c_name_hook\ " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" # Transform an extracted symbol line into symbol name with lib prefix and # symbol address. lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\ $lt_c_name_lib_hook\ " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ " -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/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, # D for any global variable and I for any imported 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};"\ " /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\ " /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\ " /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\ " {split(\$ 0,a,/\||\r/); split(a[2],s)};"\ " s[1]~/^[@?]/{print f,s[1],s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print f,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 lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" # 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 /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE /* DATA imports from DLLs on WIN32 can't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT@&t@_DLSYM_CONST #elif defined __osf__ /* This system does not cope well with relocations in const data. */ # define LT@&t@_DLSYM_CONST #else # define LT@&t@_DLSYM_CONST const #endif #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. */ LT@&t@_DLSYM_CONST struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$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_globsym_save_LIBS=$LIBS lt_globsym_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_globsym_save_LIBS CFLAGS=$lt_globsym_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 yes = "$pipe_works"; 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 # Response file support. if test "$lt_cv_nm_interface" = "MS dumpbin"; then nm_file_list_spec='@' elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then nm_file_list_spec='@' fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 $as_echo_n "checking for sysroot... " >&6; } @%:@ Check whether --with-sysroot was given. if test "${with_sysroot+set}" = set; then : withval=$with_sysroot; else with_sysroot=no fi lt_sysroot= case $with_sysroot in #( yes) if test yes = "$GCC"; then lt_sysroot=`$CC --print-sysroot 2>/dev/null` fi ;; #( /*) lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` ;; #( no|'') ;; #( *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5 $as_echo "$with_sysroot" >&6; } as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 $as_echo "${lt_sysroot:-no}" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5 $as_echo_n "checking for a working dd... " >&6; } if ${ac_cv_path_lt_DD+:} false; then : $as_echo_n "(cached) " >&6 else printf 0123456789abcdef0123456789abcdef >conftest.i cat conftest.i conftest.i >conftest2.i : ${lt_DD:=$DD} if test -z "$lt_DD"; then ac_path_lt_DD_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 dd; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_lt_DD="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_lt_DD" || continue if "$ac_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then cmp -s conftest.i conftest.out \ && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=: fi $ac_path_lt_DD_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_lt_DD"; then : fi else ac_cv_path_lt_DD=$lt_DD fi rm -f conftest.i conftest2.i conftest.out fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5 $as_echo "$ac_cv_path_lt_DD" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5 $as_echo_n "checking how to truncate binary pipes... " >&6; } if ${lt_cv_truncate_bin+:} false; then : $as_echo_n "(cached) " >&6 else printf 0123456789abcdef0123456789abcdef >conftest.i cat conftest.i conftest.i >conftest2.i lt_cv_truncate_bin= if "$ac_cv_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then cmp -s conftest.i conftest.out \ && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1" fi rm -f conftest.i conftest2.i conftest.out test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5 $as_echo "$lt_cv_truncate_bin" >&6; } # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. func_cc_basename () { for cc_temp in @S|@*""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` } @%:@ Check whether --enable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then : enableval=$enable_libtool_lock; fi test no = "$enable_libtool_lock" || 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 what ABI is being produced by ac_compile, and set mode # options accordingly. 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 what ABI is being produced by ac_compile, and set linker # options accordingly. echo '#line '$LINENO' "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 yes = "$lt_cv_prog_gnu_ld"; 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* ;; mips64*-*linux*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. echo '#line '$LINENO' "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 emul=elf case `/usr/bin/file conftest.$ac_objext` in *32-bit*) emul="${emul}32" ;; *64-bit*) emul="${emul}64" ;; esac case `/usr/bin/file conftest.$ac_objext` in *MSB*) emul="${emul}btsmip" ;; *LSB*) emul="${emul}ltsmip" ;; esac case `/usr/bin/file conftest.$ac_objext` in *N32*) emul="${emul}n32" ;; esac LD="${LD-ld} -m $emul" fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. Note that the listed cases only cover the # situations where additional linker options are needed (such as when # doing 32-bit compilation for a host where ld defaults to 64-bit, or # vice versa); the common cases where no linker options are needed do # not appear in the list. 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*) case `/usr/bin/file conftest.o` in *x86-64*) LD="${LD-ld} -m elf32_x86_64" ;; *) LD="${LD-ld} -m elf_i386" ;; esac ;; powerpc64le-*linux*) LD="${LD-ld} -m elf32lppclinux" ;; 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" ;; powerpcle-*linux*) LD="${LD-ld} -m elf64lppc" ;; 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 ${lt_cv_cc_needs_belf+:} false; 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 yes != "$lt_cv_cc_needs_belf"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS=$SAVE_CFLAGS fi ;; *-*solaris*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. 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*) case $host in i?86-*-solaris*|x86_64-*-solaris*) LD="${LD-ld} -m elf_x86_64" ;; sparc*-*-solaris*) LD="${LD-ld} -m elf64_sparc" ;; esac # GNU ld 2.21 introduced _sol2 emulations. Use them if available. if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then LD=${LD-ld}_sol2 fi ;; *) 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 if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. set dummy ${ac_tool_prefix}mt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$MANIFEST_TOOL"; then ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" $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 MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL if test -n "$MANIFEST_TOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 $as_echo "$MANIFEST_TOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_MANIFEST_TOOL"; then ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL # Extract the first word of "mt", so it can be a program name with args. set dummy mt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_MANIFEST_TOOL"; then ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" $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_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL if test -n "$ac_ct_MANIFEST_TOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 $as_echo "$ac_ct_MANIFEST_TOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_MANIFEST_TOOL" = x; then MANIFEST_TOOL=":" 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 MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL fi else MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" fi test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 $as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } if ${lt_cv_path_mainfest_tool+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_path_mainfest_tool=no echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out cat conftest.err >&5 if $GREP 'Manifest Tool' conftest.out > /dev/null; then lt_cv_path_mainfest_tool=yes fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 $as_echo "$lt_cv_path_mainfest_tool" >&6; } if test yes != "$lt_cv_path_mainfest_tool"; then MANIFEST_TOOL=: fi 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 ${ac_cv_prog_DSYMUTIL+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_NMEDIT+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_ac_ct_NMEDIT+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_LIPO+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_ac_ct_LIPO+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_OTOOL+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_ac_ct_OTOOL+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_OTOOL64+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_ac_ct_OTOOL64+:} false; 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 as_fn_executable_p "$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 ${lt_cv_apple_cc_single_mod+:} false; 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 there is a non-empty error log, and "single_module" # appears in it, assume the flag caused a linker warning if test -s conftest.err && $GREP single_module conftest.err; then cat conftest.err >&5 # Otherwise, if the output was created with a 0 exit code from # the compiler, it worked. elif test -f libconftest.dylib && test 0 = "$_lt_result"; 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 ${lt_cv_ld_exported_symbols_list+:} false; 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; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 $as_echo_n "checking for -force_load linker flag... " >&6; } if ${lt_cv_ld_force_load+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 echo "$AR cru libconftest.a conftest.o" >&5 $AR cru libconftest.a conftest.o 2>&5 echo "$RANLIB libconftest.a" >&5 $RANLIB libconftest.a 2>&5 cat > conftest.c << _LT_EOF int main() { return 0;} _LT_EOF echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err _lt_result=$? if test -s conftest.err && $GREP force_load conftest.err; then cat conftest.err >&5 elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then lt_cv_ld_force_load=yes else cat conftest.err >&5 fi rm -f conftest.err libconftest.a conftest conftest.c rm -rf conftest.dSYM fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 $as_echo "$lt_cv_ld_force_load" >&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 yes = "$lt_cv_apple_cc_single_mod"; then _lt_dar_single_mod='$single_module' fi if test yes = "$lt_cv_ld_exported_symbols_list"; 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" && test no = "$lt_cv_ld_force_load"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac # func_munge_path_list VARIABLE PATH # ----------------------------------- # VARIABLE is name of variable containing _space_ separated list of # directories to be munged by the contents of PATH, which is string # having a format: # "DIR[:DIR]:" # string "DIR[ DIR]" will be prepended to VARIABLE # ":DIR[:DIR]" # string "DIR[ DIR]" will be appended to VARIABLE # "DIRP[:DIRP]::[DIRA:]DIRA" # string "DIRP[ DIRP]" will be prepended to VARIABLE and string # "DIRA[ DIRA]" will be appended to VARIABLE # "DIR[:DIR]" # VARIABLE will be replaced by "DIR[ DIR]" func_munge_path_list () { case x@S|@2 in x) ;; *:) eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'` \@S|@@S|@1\" ;; x:*) eval @S|@1=\"\@S|@@S|@1 `$ECHO @S|@2 | $SED 's/:/ /g'`\" ;; *::*) eval @S|@1=\"\@S|@@S|@1\ `$ECHO @S|@2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" eval @S|@1=\"`$ECHO @S|@2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \@S|@@S|@1\" ;; *) eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'`\" ;; 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 ${ac_cv_prog_CPP+:} false; 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.i 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.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i 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.i 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.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i 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 ${ac_cv_header_stdc+:} false; 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 " if eval test \"x\$"$as_ac_Header"\" = 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" = xyes; 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 --enable-static was given. if test "${enable_static+set}" = set; then : enableval=$enable_static; p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for pkg in $enableval; do IFS=$lt_save_ifs if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS=$lt_save_ifs ;; esac else enable_static=yes fi @%:@ Check whether --with-pic was given. if test "${with_pic+set}" = set; then : withval=$with_pic; lt_p=${PACKAGE-default} case $withval in yes|no) pic_mode=$withval ;; *) pic_mode=default # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for lt_pkg in $withval; do IFS=$lt_save_ifs if test "X$lt_pkg" = "X$lt_p"; then pic_mode=yes fi done IFS=$lt_save_ifs ;; esac else pic_mode=default fi @%:@ Check whether --enable-fast-install was given. if test "${enable_fast_install+set}" = set; then : enableval=$enable_fast_install; p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for pkg in $enableval; do IFS=$lt_save_ifs if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS=$lt_save_ifs ;; esac else enable_fast_install=yes fi shared_archive_member_spec= case $host,$enable_shared in power*-*-aix[5-9]*,yes) { $as_echo "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5 $as_echo_n "checking which variant of shared library versioning to provide... " >&6; } @%:@ Check whether --with-aix-soname was given. if test "${with_aix_soname+set}" = set; then : withval=$with_aix_soname; case $withval in aix|svr4|both) ;; *) as_fn_error $? "Unknown argument to --with-aix-soname" "$LINENO" 5 ;; esac lt_cv_with_aix_soname=$with_aix_soname else if ${lt_cv_with_aix_soname+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_with_aix_soname=aix fi with_aix_soname=$lt_cv_with_aix_soname fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5 $as_echo "$with_aix_soname" >&6; } if test aix != "$with_aix_soname"; then # For the AIX way of multilib, we name the shared archive member # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o', # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File. # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag, # the AIX toolchain works better with OBJECT_MODE set (default 32). if test 64 = "${OBJECT_MODE-32}"; then shared_archive_member_spec=shr_64 else shared_archive_member_spec=shr fi fi ;; *) with_aix_soname=aix ;; esac # 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 ${lt_cv_objdir+:} false; 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 set != "${COLLECT_NAMES+set}"; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # 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 func_cc_basename $compiler cc_basename=$func_cc_basename_result # 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 ${lt_cv_path_MAGIC_CMD+:} false; 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 ${lt_cv_path_MAGIC_CMD+:} false; 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* ## 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... if test -n "$compiler"; then lt_prog_compiler_no_builtin_flag= if test yes = "$GCC"; then case $cc_basename in nvcc*) lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; *) lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; esac { $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 ${lt_cv_prog_compiler_rtti_exceptions+:} false; 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" ## exclude from sc_useless_quotes_in_assignment # 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:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $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 "$_lt_compiler_boilerplate" | $SED '/^$/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 yes = "$lt_cv_prog_compiler_rtti_exceptions"; 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= if test yes = "$GCC"; then lt_prog_compiler_wl='-Wl,' lt_prog_compiler_static='-static' case $host_os in aix*) # All AIX code is PIC. if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' fi lt_prog_compiler_pic='-fPIC' ;; 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' case $host_os in os2*) lt_prog_compiler_static='$wl-static' ;; esac ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. lt_prog_compiler_static= ;; 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 case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 lt_prog_compiler_wl='-Xlinker ' if test -n "$lt_prog_compiler_pic"; then lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic" fi ;; 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 ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' else lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' fi ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' case $cc_basename in nagfor*) # NAG Fortran compiler lt_prog_compiler_wl='-Wl,-Wl,,' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; esac ;; 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' case $host_os in os2*) lt_prog_compiler_static='$wl-static' ;; esac ;; 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 | 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' ;; nagfor*) # NAG Fortran compiler lt_prog_compiler_wl='-Wl,-Wl,,' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; tcc*) # Fabrice Bellard et al's Tiny C Compiler lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # 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* | bgxl* | bgf* | mpixl*) # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-qpic' lt_prog_compiler_static='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) # 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='' ;; *Sun\ F* | *Sun*Fortran*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Qoption ld ' ;; *Sun\ C*) # Sun C 5.9 lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Wl,' ;; *Intel*\ [CF]*Compiler*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; *Portland\ Group*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; 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* | sunf77* | sunf90* | sunf95*) 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 that do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic= ;; *) lt_prog_compiler_pic="$lt_prog_compiler_pic@&t@ -DPIC" ;; esac { $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 ${lt_cv_prog_compiler_pic+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic=$lt_prog_compiler_pic fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 $as_echo "$lt_cv_prog_compiler_pic" >&6; } lt_prog_compiler_pic=$lt_cv_prog_compiler_pic # # 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 ${lt_cv_prog_compiler_pic_works+:} false; 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@&t@ -DPIC" ## exclude from sc_useless_quotes_in_assignment # 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:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $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 "$_lt_compiler_boilerplate" | $SED '/^$/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 yes = "$lt_cv_prog_compiler_pic_works"; 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 ${lt_cv_prog_compiler_static_works+:} false; 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 "$_lt_linker_boilerplate" | $SED '/^$/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 yes = "$lt_cv_prog_compiler_static_works"; 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 ${lt_cv_prog_compiler_c_o+:} false; 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:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $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 "$_lt_compiler_boilerplate" | $SED '/^$/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 ${lt_cv_prog_compiler_c_o+:} false; 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:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $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 "$_lt_compiler_boilerplate" | $SED '/^$/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 no = "$lt_cv_prog_compiler_c_o" && test no != "$need_locks"; 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 no = "$hard_links"; 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_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 yes != "$GCC"; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd* | bitrig*) with_gnu_ld=no ;; esac ld_shlibs=yes # On some targets, GNU ld is compatible enough with the native linker # that we're better off using the native interface for both. lt_use_gnu_ld_interface=no if test yes = "$with_gnu_ld"; then case $host_os in aix*) # The AIX port of GNU ld has always aspired to compatibility # with the native linker. However, as the warning in the GNU ld # block says, versions before 2.19.5* couldn't really create working # shared libraries, regardless of the interface used. case `$LD -v 2>&1` in *\ \(GNU\ Binutils\)\ 2.19.5*) ;; *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; *\ \(GNU\ Binutils\)\ [3-9]*) ;; *) lt_use_gnu_ld_interface=yes ;; esac ;; *) lt_use_gnu_ld_interface=yes ;; esac fi if test yes = "$lt_use_gnu_ld_interface"; 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 | $SED -e 's/(^)\+)\s\+//' 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 ia64 != "$host_cpu"; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.19, 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 install binutils *** 2.20 or above, or modify your PATH so that a non-GNU linker is found. *** You will then need to restart the configuration process. _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' export_dynamic_flag_spec='$wl--export-all-symbols' 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/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' 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, use it as # is; otherwise, prepend EXPORTS... archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; 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 ;; haiku*) archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' link_all_deplibs=yes ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported shrext_cmds=.dll archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ prefix_cmds="$SED"~ if test EXPORTS = "`$SED 1q $export_symbols`"; then prefix_cmds="$prefix_cmds -e 1d"; fi~ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' enable_shared_with_static_runtimes=yes ;; 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 linux-dietlibc = "$host_os"; 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 no = "$tmp_diet" then tmp_addflag=' $pic_flag' 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; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95* | pgfortran*) # 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; func_echo_all \"$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' ;; nagfor*) # NAGFOR 5.3 tmp_sharedflag='-Wl,-shared' ;; xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; nvcc*) # Cuda Compiler Driver 2.2 whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' compiler_needs_object=yes ;; 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; func_echo_all \"$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 yes = "$supports_anon_versioning"; 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 tcc*) export_dynamic_flag_spec='-rdynamic' ;; xlf* | bgf* | bgxlf* | mpixlf*) # 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='$wl-rpath $wl$libdir' archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test yes = "$supports_anon_versioning"; 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 $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else ld_shlibs=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $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 $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $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 cannot *** 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 $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $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 no = "$ld_shlibs"; 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 yes = "$GCC" && 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 ia64 = "$host_cpu"; 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 GNU nm, but means don't demangle to AIX nm. # Without the "-l" option, or with the "-B" option, AIX nm treats # weak defined symbols like other global defined symbols, whereas # GNU nm marks them as "W". # While the 'weak' keyword is ignored in the Export File, we need # it in the Import File for the 'aix-soname' feature, so we have # to replace the "-B" option with "-P" for AIX 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") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' else export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | 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 # have runtime linking enabled, and use it for executables. # For shared libraries, we enable/disable runtime linking # depending on the kind of the shared library created - # when "with_aix_soname,aix_use_runtimelinking" is: # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables # "aix,yes" lib.so shared, rtl:yes, for executables # lib.a static archive # "both,no" lib.so.V(shr.o) shared, rtl:yes # lib.a(lib.so.V) shared, rtl:no, for executables # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a(lib.so.V) shared, rtl:no # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a static archive case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then aix_use_runtimelinking=yes break fi done if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then # With aix-soname=svr4, we create the lib.so.V shared archives only, # so we don't have lib.a shared libs to link our executables. # We have to force runtime linking in this case. aix_use_runtimelinking=yes LDFLAGS="$LDFLAGS -Wl,-brtl" fi ;; 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,' case $with_aix_soname,$aix_use_runtimelinking in aix,*) ;; # traditional, no import file svr4,* | *,yes) # use import file # The Import File defines what to hardcode. hardcode_direct=no hardcode_direct_absolute=no ;; esac if test yes = "$GCC"; 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 yes = "$aix_use_runtimelinking"; then shared_flag="$shared_flag "'$wl-G' fi # Need to ensure runtime linking is disabled for the traditional # shared library, or the linker may eventually find shared libraries # /with/ Import File - we do not want to mix them. shared_flag_aix='-shared' shared_flag_svr4='-shared $wl-G' else # not using gcc if test ia64 = "$host_cpu"; 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 yes = "$aix_use_runtimelinking"; then shared_flag='$wl-G' else shared_flag='$wl-bM:SRE' fi shared_flag_aix='$wl-bM:SRE' shared_flag_svr4='$wl-G' 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,yes = "$with_aix_soname,$aix_use_runtimelinking"; 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. if test set = "${lt_cv_aix_libpath+set}"; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath_+:} false; then : $as_echo_n "(cached) " >&6 else 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 } }' lt_cv_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 "$lt_cv_aix_libpath_"; then lt_cv_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 "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=/usr/lib:/lib fi fi aix_libpath=$lt_cv_aix_libpath_ 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 -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag else if test ia64 = "$host_cpu"; 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. if test set = "${lt_cv_aix_libpath+set}"; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath_+:} false; then : $as_echo_n "(cached) " >&6 else 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 } }' lt_cv_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 "$lt_cv_aix_libpath_"; then lt_cv_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 "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=/usr/lib:/lib fi fi aix_libpath=$lt_cv_aix_libpath_ 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' if test yes = "$with_gnu_ld"; then # We only use this code for GNU lds that support --whole-archive. whole_archive_flag_spec='$wl--whole-archive$convenience $wl--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec='$convenience' fi archive_cmds_need_lc=yes archive_expsym_cmds='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' # -brtl affects multiple linker settings, -berok does not and is overridden later compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([, ]\\)%-berok\\1%g"`' if test svr4 != "$with_aix_soname"; then # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' fi if test aix != "$with_aix_soname"; then archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' else # used by -dlpreopen to get the symbols archive_expsym_cmds="$archive_expsym_cmds"'~$MV $output_objdir/$realname.d/$soname $output_objdir' fi archive_expsym_cmds="$archive_expsym_cmds"'~$RM -r $output_objdir/$realname.d' 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. case $cc_basename in cl*) # Native MSVC hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported always_export_symbols=yes file_list_spec='@' # 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 $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then cp "$export_symbols" "$output_objdir/$soname.def"; echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; else $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, )='true' enable_shared_with_static_runtimes=yes exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' # Don't use ranlib old_postinstall_cmds='chmod 644 $oldlib' postlink_cmds='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile=$lt_outputfile.exe lt_tool_outputfile=$lt_tool_outputfile.exe ;; esac~ if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # Assume MSVC wrapper 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 `func_echo_all "$deplibs" | $SED '\''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' enable_shared_with_static_runtimes=yes ;; esac ;; darwin* | rhapsody*) archive_cmds_need_lc=no hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported if test yes = "$lt_cv_ld_force_load"; then whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' else whole_archive_flag_spec='' fi link_all_deplibs=yes allow_undefined_flag=$_lt_dar_allow_undefined case $cc_basename in ifort*|nagfor*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test yes = "$_lt_dar_can_shared"; then output_verbose_link_cmd=func_echo_all 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 ;; # 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 $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; hpux9*) if test yes = "$GCC"; then archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$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 "x$output_objdir/$soname" = "x$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 yes,no = "$GCC,$with_gnu_ld"; then archive_cmds='$CC -shared $pic_flag $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 no = "$with_gnu_ld"; then hardcode_libdir_flag_spec='$wl+b $wl$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 yes,no = "$GCC,$with_gnu_ld"; 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 $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -shared $pic_flag $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' ;; *) # Older versions of the 11.00 compiler do not understand -b yet # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 $as_echo_n "checking if $CC understands -b... " >&6; } if ${lt_cv_prog_compiler__b+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler__b=no save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -b" 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 "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler__b=yes fi else lt_cv_prog_compiler__b=yes fi fi $RM -r conftest* LDFLAGS=$save_LDFLAGS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 $as_echo "$lt_cv_prog_compiler__b" >&6; } if test yes = "$lt_cv_prog_compiler__b"; then archive_cmds='$CC -b $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 ;; esac fi if test no = "$with_gnu_ld"; 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 yes = "$GCC"; then archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $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. # This should be the same for all languages, so no per-tag cache variable. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 $as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } if ${lt_cv_irix_exported_symbol+:} false; then : $as_echo_n "(cached) " >&6 else 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) { return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_irix_exported_symbol=yes else lt_cv_irix_exported_symbol=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_irix_exported_symbol" >&5 $as_echo "$lt_cv_irix_exported_symbol" >&6; } if test yes = "$lt_cv_irix_exported_symbol"; then archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' fi else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -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 ;; linux*) case $cc_basename in tcc*) # Fabrice Bellard et al's Tiny C Compiler ld_shlibs=yes archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; newsos6) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' hardcode_libdir_separator=: hardcode_shlibpath_var=no ;; *nto* | *qnx*) ;; openbsd* | bitrig*) 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__`"; 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 archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='$wl-rpath,$libdir' fi else ld_shlibs=no fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported shrext_cmds=.dll archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ prefix_cmds="$SED"~ if test EXPORTS = "`$SED 1q $export_symbols`"; then prefix_cmds="$prefix_cmds -e 1d"; fi~ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' enable_shared_with_static_runtimes=yes ;; osf3*) if test yes = "$GCC"; 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" && func_echo_all "$wl-set_version $wl$verstring"` $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" && func_echo_all "-set_version $verstring"` -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 yes = "$GCC"; then allow_undefined_flag=' $wl-expect_unresolved $wl\*' archive_cmds='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; 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 "-set_version $verstring"` -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 yes = "$GCC"; then wlarc='$wl' archive_cmds='$CC -shared $pic_flag $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 $pic_flag $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 yes = "$GCC"; 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 sequent = "$host_vendor"; 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 yes = "$GCC"; 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 CANNOT 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 yes = "$GCC"; 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 sni = "$host_vendor"; 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 no = "$ld_shlibs" && 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 yes,yes = "$GCC,$enable_shared"; 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; } if ${lt_cv_archive_cmds_need_lc+:} false; then : $as_echo_n "(cached) " >&6 else $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 lt_cv_archive_cmds_need_lc=no else lt_cv_archive_cmds_need_lc=yes fi allow_undefined_flag=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 $as_echo "$lt_cv_archive_cmds_need_lc" >&6; } archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc ;; 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 yes = "$GCC"; then case $host_os in darwin*) lt_awk_arg='/^libraries:/,/LR/' ;; *) lt_awk_arg='/^libraries:/' ;; esac case $host_os in mingw* | cegcc*) lt_sed_strip_eq='s|=\([A-Za-z]:\)|\1|g' ;; *) lt_sed_strip_eq='s|=/|/|g' ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` case $lt_search_path_spec in *\;*) # 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 's/;/ /g'` ;; *) lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` ;; esac # 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` # ...but if some path component already ends with the multilib dir we assume # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer). case "$lt_multi_os_dir; $lt_search_path_spec " in "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*) lt_multi_os_dir= ;; esac 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" elif test -n "$lt_multi_os_dir"; then 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; } }'` # AWK program above erroneously prepends '/' to C:/dos/paths # for these hosts. case $host_os in mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ $SED 's|/\([A-Za-z]:\)|\1|g'` ;; esac sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` 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 # correct to gnu/linux during the next big refactor 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 # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes if test ia64 = "$host_cpu"; 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 # Using Import Files as archive members, it is possible to support # filename-based versioning of shared library archives on AIX. While # this would work for both with and without runtime linking, it will # prevent static linking of such archives. So we do filename-based # shared library versioning with .so extension only, which is used # when both runtime linking and shared linking is enabled. # Unfortunately, runtime linking may impact performance, so we do # not want this to be the default eventually. Also, we use the # versioned .so libs for executables only if there is the -brtl # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only. # To allow for filename-based versioning support, we need to create # libNAME.so.V as an archive file, containing: # *) an Import File, referring to the versioned filename of the # archive as well as the shared archive member, telling the # bitwidth (32 or 64) of that shared object, and providing the # list of exported symbols of that shared object, eventually # decorated with the 'weak' keyword # *) the shared object with the F_LOADONLY flag set, to really avoid # it being seen by the linker. # At run time we better use the real file rather than another symlink, # but for link time we create the symlink libNAME.so -> libNAME.so.V case $with_aix_soname,$aix_use_runtimelinking in # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. aix,yes) # traditional libtool dynamic_linker='AIX unversionable lib.so' # 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' ;; aix,no) # traditional AIX only dynamic_linker='AIX lib.a(lib.so.V)' # 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' ;; svr4,*) # full svr4 only dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o)" library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' # We do not specify a path in Import Files, so LIBPATH fires. shlibpath_overrides_runpath=yes ;; *,yes) # both, prefer svr4 dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o), lib.a(lib.so.V)" library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' # unpreferred sharedlib libNAME.a needs extra handling postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"' postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"' # We do not specify a path in Import Files, so LIBPATH fires. shlibpath_overrides_runpath=yes ;; *,no) # both, prefer aix dynamic_linker="AIX lib.a(lib.so.V), lib.so.V($shared_archive_member_spec.o)" library_names_spec='$libname$release.a $libname.a' soname_spec='$libname$release$shared_ext$major' # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)' postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"' ;; esac 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=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; $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 # correct to gnu/linux during the next big refactor 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,$cc_basename in yes,*) # gcc 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="$sys_lib_search_path_spec /usr/lib/w32api" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' ;; 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 dynamic_linker='Win32 ld.exe' ;; *,cl*) # Native MSVC libname_spec='$name' soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' library_names_spec='$libname.dll.lib' case $build_os in mingw*) sys_lib_search_path_spec= lt_save_ifs=$IFS IFS=';' for lt_path in $LIB do IFS=$lt_save_ifs # Let DOS variable expansion print the short 8.3 style file name. lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" done IFS=$lt_save_ifs # Convert to MSYS style. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form # but this time dos style (no spaces!) so that the unix form looks # like /cygdrive/c/PROGRA~1:/cygdr... sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) sys_lib_search_path_spec=$LIB if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH. 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 # FIXME: find the short name or the path components, as spaces are # common. (e.g. "Program Files" -> "PROGRA~1") ;; esac # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \$file`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes dynamic_linker='Win32 link.exe' ;; *) # Assume MSVC wrapper library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac # 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 # correct to gnu/linux during the next big refactor 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 ;; 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[23].*) 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$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' 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 ;; haiku*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" 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=LIBRARY_PATH shlibpath_overrides_runpath=no sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' 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 32 = "$HPUX_IA64_MODE"; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" sys_lib_dlsearch_path_spec=/usr/lib/hpux32 else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" sys_lib_dlsearch_path_spec=/usr/lib/hpux64 fi ;; 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' # or fails outright, so override atomically: install_override_mode=555 ;; interix[3-9]*) version_type=linux # correct to gnu/linux during the next big refactor 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 yes = "$lt_cv_prog_gnu_ld"; then version_type=linux # correct to gnu/linux during the next big refactor 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 ;; linux*android*) version_type=none # Android doesn't support versioned libraries. need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext' soname_spec='$libname$release$shared_ext' finish_cmds= shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # 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 dynamic_linker='Android linker' # Don't embed -rpath directories since the linker doesn't support them. hardcode_libdir_flag_spec='-L$libdir' ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) version_type=linux # correct to gnu/linux during the next big refactor 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 if ${lt_cv_shlibpath_overrides_runpath+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_shlibpath_overrides_runpath=no 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 : lt_cv_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 fi shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # 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 # Ideally, we could use ldconfig to report *all* directores which are # searched for libraries, however this is still not possible. Aside from not # being certain /sbin/ldconfig is available, command # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, # even though it is searched at run-time. Try to do the best guess by # appending ld.so.conf contents (and includes) 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;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' ;; 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 # correct to gnu/linux during the next big refactor 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* | bitrig*) version_type=sunos sys_lib_dlsearch_path_spec=/usr/lib need_lib_prefix=no if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then need_version=no else need_version=yes fi 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 shlibpath_overrides_runpath=yes ;; os2*) libname_spec='$name' version_type=windows shrext_cmds=.dll need_version=no need_lib_prefix=no # OS/2 can only load a DLL with a base name of 8 characters or less. soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; v=$($ECHO $release$versuffix | tr -d .-); n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); $ECHO $n$v`$shared_ext' library_names_spec='${libname}_dll.$libext' dynamic_linker='OS/2 ld.exe' shlibpath_var=BEGINLIBPATH sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec 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' ;; 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 # correct to gnu/linux during the next big refactor 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 yes = "$with_gnu_ld"; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux # correct to gnu/linux during the next big refactor 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 # correct to gnu/linux during the next big refactor 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=sco 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 yes = "$with_gnu_ld"; 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 # correct to gnu/linux during the next big refactor 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 # correct to gnu/linux during the next big refactor 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 no = "$dynamic_linker" && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test yes = "$GCC"; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec fi if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec fi # remember unaugmented sys_lib_dlsearch_path content for libtool script decls... configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec # ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" # to be used as default LT_SYS_LIBRARY_PATH value in generated libtool configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH { $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 yes = "$hardcode_automatic"; then # We can hardcode non-existent directories. if test no != "$hardcode_direct" && # 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 no != "$_LT_TAGVAR(hardcode_shlibpath_var, )" && test no != "$hardcode_minus_L"; 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 relink = "$hardcode_action" || test yes = "$inherit_rpath"; then # Fast installation is not supported enable_fast_install=no elif test yes = "$shlibpath_overrides_runpath" || test no = "$enable_shared"; then # Fast installation is not necessary enable_fast_install=needless fi if test yes != "$enable_dlopen"; 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 ${ac_cv_lib_dl_dlopen+:} false; 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" = xyes; 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 ;; tpf*) # Don't try to run any link tests for TPF. We know it's impossible # because TPF is a cross-compiler, and we know how we open DSOs. lt_cv_dlopen=dlopen lt_cv_dlopen_libs= lt_cv_dlopen_self=no ;; *) ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" if test "x$ac_cv_func_shl_load" = xyes; 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 ${ac_cv_lib_dld_shl_load+:} false; 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" = xyes; 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" = xyes; 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 ${ac_cv_lib_dl_dlopen+:} false; 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" = xyes; 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 ${ac_cv_lib_svld_dlopen+:} false; 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" = xyes; 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 ${ac_cv_lib_dld_dld_link+:} false; 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" = xyes; then : lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld fi fi fi fi fi fi ;; esac if test no = "$lt_cv_dlopen"; then enable_dlopen=no else enable_dlopen=yes fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS=$CPPFLAGS test yes = "$ac_cv_header_dlfcn_h" && 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 ${lt_cv_dlopen_self+:} false; then : $as_echo_n "(cached) " >&6 else if test yes = "$cross_compiling"; 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 $LINENO "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 /* When -fvisibility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 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; else puts (dlerror ()); } /* 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 yes = "$lt_cv_dlopen_self"; 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 ${lt_cv_dlopen_self_static+:} false; then : $as_echo_n "(cached) " >&6 else if test yes = "$cross_compiling"; 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 $LINENO "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 /* When -fvisibility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 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; else puts (dlerror ()); } /* 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 what 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 no = "$can_build_shared" && 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 yes = "$enable_shared" && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[4-9]*) if test ia64 != "$host_cpu"; then case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in yes,aix,yes) ;; # shared object as lib.so file only yes,svr4,*) ;; # shared object as lib.so archive member only yes,*) enable_static=no ;; # shared object in lib.a archive as well esac 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 yes = "$enable_shared" || 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: # By default we simply use the C compiler to build assembly code. test "${CCAS+set}" = set || CCAS=$CC test "${CCASFLAGS+set}" = set || CCASFLAGS=$CFLAGS depcc="$CCAS" 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 ${am_cv_CCAS_dependencies_compiler_type+:} false; 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". rm -rf conftest.dir 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_CCAS_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 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 10 /bin/sh. echo '/* dummy */' > 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 ;; msvc7 | msvc7msys | 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_CCAS_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CCAS_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CCAS_dependencies_compiler_type" >&5 $as_echo "$am_cv_CCAS_dependencies_compiler_type" >&6; } CCASDEPMODE=depmode=$am_cv_CCAS_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CCAS_dependencies_compiler_type" = gcc3; then am__fastdepCCAS_TRUE= am__fastdepCCAS_FALSE='#' else am__fastdepCCAS_TRUE='#' am__fastdepCCAS_FALSE= fi # Check platform { $as_echo "$as_me:${as_lineno-$LINENO}: checking OS" >&5 $as_echo_n "checking OS... " >&6; } if echo $host_os | grep linux ; then os_linux=1 else os_linux=0 fi if test "$os_linux" -eq 1; then OS_LINUX_TRUE= OS_LINUX_FALSE='#' else OS_LINUX_TRUE='#' OS_LINUX_FALSE= fi if echo $host_os | grep -E 'darwin|freebsd'; then OS_BSD_TRUE= OS_BSD_FALSE='#' else OS_BSD_TRUE='#' OS_BSD_FALSE= fi if echo $host_os | grep mingw; then OS_MINGW_TRUE= OS_MINGW_FALSE='#' else OS_MINGW_TRUE='#' OS_MINGW_FALSE= fi if test "$os_linux" -eq 1; then : $as_echo "@%:@define OS_LINUX 1" >>confdefs.h else $as_echo "@%:@define OS_LINUX 0" >>confdefs.h fi CFLAGS="$CFLAGS -Wall -Wno-deprecated-declarations" # DEBUG @%:@ Check whether --enable-debug was given. if test "${enable_debug+set}" = set; then : enableval=$enable_debug; enable_debug="$enableval" fi if test "${enable_debug}" = yes; then CXXFLAGS="$CXXFLAGS -DDEBUG -g" CFLAGS="$CFLAGS -DDEBUG -g" fi # ASM { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use asm checksum routine" >&5 $as_echo_n "checking whether to use asm checksum routine... " >&6; } @%:@ Check whether --enable-asm was given. if test "${enable_asm+set}" = set; then : enableval=$enable_asm; enable_asm="$enableval" else enable_asm="no" fi if test "${enable_asm}" = yes; 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; } $as_echo "@%:@define NO_ASM 1" >>confdefs.h fi if test x$enable_asm = xno; then NO_ASM_TRUE= NO_ASM_FALSE='#' else NO_ASM_TRUE='#' NO_ASM_FALSE= fi if false; then HAVE_NI_TRUE= HAVE_NI_FALSE='#' else HAVE_NI_TRUE='#' HAVE_NI_FALSE= fi # libs { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cap_set_flag in -lcap" >&5 $as_echo_n "checking for cap_set_flag in -lcap... " >&6; } if ${ac_cv_lib_cap_cap_set_flag+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lcap $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 cap_set_flag (); int main () { return cap_set_flag (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_cap_cap_set_flag=yes else ac_cv_lib_cap_cap_set_flag=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_cap_cap_set_flag" >&5 $as_echo "$ac_cv_lib_cap_cap_set_flag" >&6; } if test "x$ac_cv_lib_cap_cap_set_flag" = xyes; then : tcpcryptd_LDADD="-lcap $tcpcryptd_LDADD" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EVP_OpenInit in -lcrypto" >&5 $as_echo_n "checking for EVP_OpenInit in -lcrypto... " >&6; } if ${ac_cv_lib_crypto_EVP_OpenInit+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lcrypto $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 EVP_OpenInit (); int main () { return EVP_OpenInit (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_crypto_EVP_OpenInit=yes else ac_cv_lib_crypto_EVP_OpenInit=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_crypto_EVP_OpenInit" >&5 $as_echo "$ac_cv_lib_crypto_EVP_OpenInit" >&6; } if test "x$ac_cv_lib_crypto_EVP_OpenInit" = xyes; then : crypto_LDADD="-lcrypto" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nfq_open in -lnetfilter_queue" >&5 $as_echo_n "checking for nfq_open in -lnetfilter_queue... " >&6; } if ${ac_cv_lib_netfilter_queue_nfq_open+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lnetfilter_queue $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 nfq_open (); int main () { return nfq_open (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_netfilter_queue_nfq_open=yes else ac_cv_lib_netfilter_queue_nfq_open=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_netfilter_queue_nfq_open" >&5 $as_echo "$ac_cv_lib_netfilter_queue_nfq_open" >&6; } if test "x$ac_cv_lib_netfilter_queue_nfq_open" = xyes; then : tcpcryptd_LDADD="-lnetfilter_queue $tcpcryptd_LDADD" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nfct_open in -lnetfilter_conntrack" >&5 $as_echo_n "checking for nfct_open in -lnetfilter_conntrack... " >&6; } if ${ac_cv_lib_netfilter_conntrack_nfct_open+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lnetfilter_conntrack $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 nfct_open (); int main () { return nfct_open (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_netfilter_conntrack_nfct_open=yes else ac_cv_lib_netfilter_conntrack_nfct_open=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_netfilter_conntrack_nfct_open" >&5 $as_echo "$ac_cv_lib_netfilter_conntrack_nfct_open" >&6; } if test "x$ac_cv_lib_netfilter_conntrack_nfct_open" = xyes; then : tcpcryptd_LDADD="-lnetfilter_conntrack $tcpcryptd_LDADD" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nfnl_rcvbufsiz in -lnfnetlink" >&5 $as_echo_n "checking for nfnl_rcvbufsiz in -lnfnetlink... " >&6; } if ${ac_cv_lib_nfnetlink_nfnl_rcvbufsiz+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lnfnetlink $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 nfnl_rcvbufsiz (); int main () { return nfnl_rcvbufsiz (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_nfnetlink_nfnl_rcvbufsiz=yes else ac_cv_lib_nfnetlink_nfnl_rcvbufsiz=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_nfnetlink_nfnl_rcvbufsiz" >&5 $as_echo "$ac_cv_lib_nfnetlink_nfnl_rcvbufsiz" >&6; } if test "x$ac_cv_lib_nfnetlink_nfnl_rcvbufsiz" = xyes; then : tcpcryptd_LDADD="-lnfnetlink $tcpcryptd_LDADD" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pcap_open_live in -lpcap" >&5 $as_echo_n "checking for pcap_open_live in -lpcap... " >&6; } if ${ac_cv_lib_pcap_pcap_open_live+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lpcap $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 pcap_open_live (); int main () { return pcap_open_live (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_pcap_pcap_open_live=yes else ac_cv_lib_pcap_pcap_open_live=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_pcap_pcap_open_live" >&5 $as_echo "$ac_cv_lib_pcap_pcap_open_live" >&6; } if test "x$ac_cv_lib_pcap_pcap_open_live" = xyes; then : tcpcryptd_LDADD="-lpcap $tcpcryptd_LDADD" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_create in -lpthread" >&5 $as_echo_n "checking for pthread_create in -lpthread... " >&6; } if ${ac_cv_lib_pthread_pthread_create+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lpthread $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 pthread_create (); int main () { return pthread_create (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_pthread_pthread_create=yes else ac_cv_lib_pthread_pthread_create=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_pthread_pthread_create" >&5 $as_echo "$ac_cv_lib_pthread_pthread_create" >&6; } if test "x$ac_cv_lib_pthread_pthread_create" = xyes; then : cat >>confdefs.h <<_ACEOF @%:@define HAVE_LIBPTHREAD 1 _ACEOF LIBS="-lpthread $LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bind in -lwsock32" >&5 $as_echo_n "checking for bind in -lwsock32... " >&6; } if ${ac_cv_lib_wsock32_bind+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lwsock32 $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 bind (); int main () { return bind (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_wsock32_bind=yes else ac_cv_lib_wsock32_bind=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_wsock32_bind" >&5 $as_echo "$ac_cv_lib_wsock32_bind" >&6; } if test "x$ac_cv_lib_wsock32_bind" = xyes; then : cat >>confdefs.h <<_ACEOF @%:@define HAVE_LIBWSOCK32 1 _ACEOF LIBS="-lwsock32 $LIBS" fi # TODO: find symbol name { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GetAdaptersInfo in -liphlpapi" >&5 $as_echo_n "checking for GetAdaptersInfo in -liphlpapi... " >&6; } if ${ac_cv_lib_iphlpapi_GetAdaptersInfo+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-liphlpapi $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 GetAdaptersInfo (); int main () { return GetAdaptersInfo (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_iphlpapi_GetAdaptersInfo=yes else ac_cv_lib_iphlpapi_GetAdaptersInfo=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_iphlpapi_GetAdaptersInfo" >&5 $as_echo "$ac_cv_lib_iphlpapi_GetAdaptersInfo" >&6; } if test "x$ac_cv_lib_iphlpapi_GetAdaptersInfo" = xyes; then : cat >>confdefs.h <<_ACEOF @%:@define HAVE_LIBIPHLPAPI 1 _ACEOF LIBS="-liphlpapi $LIBS" fi # TODO: find symbol name # Checks for header files. for ac_header in arpa/inet.h fcntl.h limits.h netinet/in.h stddef.h stdint.h stdlib.h string.h strings.h sys/socket.h sys/time.h unistd.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF @%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done # Checks for typedefs, structures, and compiler characteristics. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 $as_echo_n "checking for inline... " >&6; } if ${ac_cv_c_inline+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifndef __cplusplus typedef int foo_t; static $ac_kw foo_t static_foo () {return 0; } $ac_kw foo_t foo () {return 0; } #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_inline=$ac_kw fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext test "$ac_cv_c_inline" != no && break done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 $as_echo "$ac_cv_c_inline" >&6; } case $ac_cv_c_inline in inline | yes) ;; *) case $ac_cv_c_inline in no) ac_val=;; *) ac_val=$ac_cv_c_inline;; esac cat >>confdefs.h <<_ACEOF #ifndef __cplusplus #define inline $ac_val #endif _ACEOF ;; esac ac_fn_c_check_type "$LINENO" "mode_t" "ac_cv_type_mode_t" "$ac_includes_default" if test "x$ac_cv_type_mode_t" = xyes; then : else cat >>confdefs.h <<_ACEOF @%:@define mode_t int _ACEOF fi ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" if test "x$ac_cv_type_size_t" = xyes; then : else cat >>confdefs.h <<_ACEOF @%:@define size_t unsigned int _ACEOF fi ac_fn_c_check_type "$LINENO" "ssize_t" "ac_cv_type_ssize_t" "$ac_includes_default" if test "x$ac_cv_type_ssize_t" = xyes; then : else cat >>confdefs.h <<_ACEOF @%:@define ssize_t int _ACEOF fi ac_fn_c_find_uintX_t "$LINENO" "16" "ac_cv_c_uint16_t" case $ac_cv_c_uint16_t in #( no|yes) ;; #( *) cat >>confdefs.h <<_ACEOF @%:@define uint16_t $ac_cv_c_uint16_t _ACEOF ;; esac ac_fn_c_find_uintX_t "$LINENO" "32" "ac_cv_c_uint32_t" case $ac_cv_c_uint32_t in #( no|yes) ;; #( *) $as_echo "@%:@define _UINT32_T 1" >>confdefs.h cat >>confdefs.h <<_ACEOF @%:@define uint32_t $ac_cv_c_uint32_t _ACEOF ;; esac ac_fn_c_find_uintX_t "$LINENO" "64" "ac_cv_c_uint64_t" case $ac_cv_c_uint64_t in #( no|yes) ;; #( *) $as_echo "@%:@define _UINT64_T 1" >>confdefs.h cat >>confdefs.h <<_ACEOF @%:@define uint64_t $ac_cv_c_uint64_t _ACEOF ;; esac ac_fn_c_find_uintX_t "$LINENO" "8" "ac_cv_c_uint8_t" case $ac_cv_c_uint8_t in #( no|yes) ;; #( *) $as_echo "@%:@define _UINT8_T 1" >>confdefs.h cat >>confdefs.h <<_ACEOF @%:@define uint8_t $ac_cv_c_uint8_t _ACEOF ;; esac ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default" if test "x$ac_cv_type_ptrdiff_t" = xyes; then : cat >>confdefs.h <<_ACEOF @%:@define HAVE_PTRDIFF_T 1 _ACEOF fi # testing ac_config_commands="$ac_config_commands tests/atconfig" ac_config_files="$ac_config_files tests/atlocal" # Checks for library functions. # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # for constant arguments. Useless! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5 $as_echo_n "checking for working alloca.h... " >&6; } if ${ac_cv_working_alloca_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @%:@include int main () { char *p = (char *) alloca (2 * sizeof (int)); if (p) return 0; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_working_alloca_h=yes else ac_cv_working_alloca_h=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: $ac_cv_working_alloca_h" >&5 $as_echo "$ac_cv_working_alloca_h" >&6; } if test $ac_cv_working_alloca_h = yes; then $as_echo "@%:@define HAVE_ALLOCA_H 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5 $as_echo_n "checking for alloca... " >&6; } if ${ac_cv_func_alloca_works+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __GNUC__ # define alloca __builtin_alloca #else # ifdef _MSC_VER # include # define alloca _alloca # else # ifdef HAVE_ALLOCA_H # include # else # ifdef _AIX #pragma alloca # else # ifndef alloca /* predefined by HP cc +Olibcalls */ void *alloca (size_t); # endif # endif # endif # endif #endif int main () { char *p = (char *) alloca (1); if (p) return 0; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_func_alloca_works=yes else ac_cv_func_alloca_works=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: $ac_cv_func_alloca_works" >&5 $as_echo "$ac_cv_func_alloca_works" >&6; } if test $ac_cv_func_alloca_works = yes; then $as_echo "@%:@define HAVE_ALLOCA 1" >>confdefs.h else # The SVR3 libPW and SVR4 libucb both contain incompatible functions # that cause trouble. Some versions do not even contain alloca or # contain a buggy version. If you still want to use their alloca, # use ar to extract alloca.o from them instead of compiling alloca.c. ALLOCA=\${LIBOBJDIR}alloca.$ac_objext $as_echo "@%:@define C_ALLOCA 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether \`alloca.c' needs Cray hooks" >&5 $as_echo_n "checking whether \`alloca.c' needs Cray hooks... " >&6; } if ${ac_cv_os_cray+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined CRAY && ! defined CRAY2 webecray #else wenotbecray #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "webecray" >/dev/null 2>&1; then : ac_cv_os_cray=yes else ac_cv_os_cray=no fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_os_cray" >&5 $as_echo "$ac_cv_os_cray" >&6; } if test $ac_cv_os_cray = yes; then for ac_func in _getb67 GETB67 getb67; do as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF @%:@define CRAY_STACKSEG_END $ac_func _ACEOF break fi done fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5 $as_echo_n "checking stack direction for C alloca... " >&6; } if ${ac_cv_c_stack_direction+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_c_stack_direction=0 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int find_stack_direction (int *addr, int depth) { int dir, dummy = 0; if (! addr) addr = &dummy; *addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1; dir = depth ? find_stack_direction (addr, depth - 1) : 0; return dir + dummy; } int main (int argc, char **argv) { return find_stack_direction (0, argc + !argv + 20) < 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_c_stack_direction=1 else ac_cv_c_stack_direction=-1 fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_stack_direction" >&5 $as_echo "$ac_cv_c_stack_direction" >&6; } cat >>confdefs.h <<_ACEOF @%:@define STACK_DIRECTION $ac_cv_c_stack_direction _ACEOF fi ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default" if test "x$ac_cv_type_pid_t" = xyes; then : else cat >>confdefs.h <<_ACEOF @%:@define pid_t int _ACEOF fi for ac_header in vfork.h do : ac_fn_c_check_header_mongrel "$LINENO" "vfork.h" "ac_cv_header_vfork_h" "$ac_includes_default" if test "x$ac_cv_header_vfork_h" = xyes; then : cat >>confdefs.h <<_ACEOF @%:@define HAVE_VFORK_H 1 _ACEOF fi done for ac_func in fork vfork do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF @%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done if test "x$ac_cv_func_fork" = xyes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working fork" >&5 $as_echo_n "checking for working fork... " >&6; } if ${ac_cv_func_fork_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_func_fork_works=cross else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { /* By Ruediger Kuhlmann. */ return fork () < 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_fork_works=yes else ac_cv_func_fork_works=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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_fork_works" >&5 $as_echo "$ac_cv_func_fork_works" >&6; } else ac_cv_func_fork_works=$ac_cv_func_fork fi if test "x$ac_cv_func_fork_works" = xcross; then case $host in *-*-amigaos* | *-*-msdosdjgpp*) # Override, as these systems have only a dummy fork() stub ac_cv_func_fork_works=no ;; *) ac_cv_func_fork_works=yes ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&5 $as_echo "$as_me: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&2;} fi ac_cv_func_vfork_works=$ac_cv_func_vfork if test "x$ac_cv_func_vfork" = xyes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working vfork" >&5 $as_echo_n "checking for working vfork... " >&6; } if ${ac_cv_func_vfork_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_func_vfork_works=cross else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Thanks to Paul Eggert for this test. */ $ac_includes_default #include #ifdef HAVE_VFORK_H # include #endif /* On some sparc systems, changes by the child to local and incoming argument registers are propagated back to the parent. The compiler is told about this with #include , but some compilers (e.g. gcc -O) don't grok . Test for this by using a static variable whose address is put into a register that is clobbered by the vfork. */ static void #ifdef __cplusplus sparc_address_test (int arg) # else sparc_address_test (arg) int arg; #endif { static pid_t child; if (!child) { child = vfork (); if (child < 0) { perror ("vfork"); _exit(2); } if (!child) { arg = getpid(); write(-1, "", 0); _exit (arg); } } } int main () { pid_t parent = getpid (); pid_t child; sparc_address_test (0); child = vfork (); if (child == 0) { /* Here is another test for sparc vfork register problems. This test uses lots of local variables, at least as many local variables as main has allocated so far including compiler temporaries. 4 locals are enough for gcc 1.40.3 on a Solaris 4.1.3 sparc, but we use 8 to be safe. A buggy compiler should reuse the register of parent for one of the local variables, since it will think that parent can't possibly be used any more in this routine. Assigning to the local variable will thus munge parent in the parent process. */ pid_t p = getpid(), p1 = getpid(), p2 = getpid(), p3 = getpid(), p4 = getpid(), p5 = getpid(), p6 = getpid(), p7 = getpid(); /* Convince the compiler that p..p7 are live; otherwise, it might use the same hardware register for all 8 local variables. */ if (p != p1 || p != p2 || p != p3 || p != p4 || p != p5 || p != p6 || p != p7) _exit(1); /* On some systems (e.g. IRIX 3.3), vfork doesn't separate parent from child file descriptors. If the child closes a descriptor before it execs or exits, this munges the parent's descriptor as well. Test for this by closing stdout in the child. */ _exit(close(fileno(stdout)) != 0); } else { int status; struct stat st; while (wait(&status) != child) ; return ( /* Was there some problem with vforking? */ child < 0 /* Did the child fail? (This shouldn't happen.) */ || status /* Did the vfork/compiler bug occur? */ || parent != getpid() /* Did the file descriptor bug occur? */ || fstat(fileno(stdout), &st) != 0 ); } } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_vfork_works=yes else ac_cv_func_vfork_works=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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_vfork_works" >&5 $as_echo "$ac_cv_func_vfork_works" >&6; } fi; if test "x$ac_cv_func_fork_works" = xcross; then ac_cv_func_vfork_works=$ac_cv_func_vfork { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&5 $as_echo "$as_me: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&2;} fi if test "x$ac_cv_func_vfork_works" = xyes; then $as_echo "@%:@define HAVE_WORKING_VFORK 1" >>confdefs.h else $as_echo "@%:@define vfork fork" >>confdefs.h fi if test "x$ac_cv_func_fork_works" = xyes; then $as_echo "@%:@define HAVE_WORKING_FORK 1" >>confdefs.h fi for ac_header in stdlib.h do : ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default" if test "x$ac_cv_header_stdlib_h" = xyes; then : cat >>confdefs.h <<_ACEOF @%:@define HAVE_STDLIB_H 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible malloc" >&5 $as_echo_n "checking for GNU libc compatible malloc... " >&6; } if ${ac_cv_func_malloc_0_nonnull+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_func_malloc_0_nonnull=no else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined STDC_HEADERS || defined HAVE_STDLIB_H # include #else char *malloc (); #endif int main () { return ! malloc (0); ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_malloc_0_nonnull=yes else ac_cv_func_malloc_0_nonnull=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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_malloc_0_nonnull" >&5 $as_echo "$ac_cv_func_malloc_0_nonnull" >&6; } if test $ac_cv_func_malloc_0_nonnull = yes; then : $as_echo "@%:@define HAVE_MALLOC 1" >>confdefs.h else $as_echo "@%:@define HAVE_MALLOC 0" >>confdefs.h case " $LIB@&t@OBJS " in *" malloc.$ac_objext "* ) ;; *) LIB@&t@OBJS="$LIB@&t@OBJS malloc.$ac_objext" ;; esac $as_echo "@%:@define malloc rpl_malloc" >>confdefs.h fi for ac_func in bzero clock_gettime gettimeofday inet_ntoa memmove memset select socket strchr strdup strtoul do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF @%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done ac_config_files="$ac_config_files Makefile src/tcpcrypt_version.h" 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 if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi 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= U= for ac_i in : $LIB@&t@OBJS; 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 LIB@&t@OBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs { $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 $as_echo_n "checking that generated files are newer than configure... " >&6; } if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 $as_echo "done" >&6; } if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' else am__EXEEXT_TRUE='#' am__EXEEXT_FALSE= fi if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 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 if test -z "${am__fastdepCCAS_TRUE}" && test -z "${am__fastdepCCAS_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCCAS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${OS_LINUX_TRUE}" && test -z "${OS_LINUX_FALSE}"; then as_fn_error $? "conditional \"OS_LINUX\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${OS_BSD_TRUE}" && test -z "${OS_BSD_FALSE}"; then as_fn_error $? "conditional \"OS_BSD\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${OS_MINGW_TRUE}" && test -z "${OS_MINGW_FALSE}"; then as_fn_error $? "conditional \"OS_MINGW\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${NO_ASM_TRUE}" && test -z "${NO_ASM_FALSE}"; then as_fn_error $? "conditional \"NO_ASM\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_NI_TRUE}" && test -z "${HAVE_NI_FALSE}"; then as_fn_error $? "conditional \"HAVE_NI\" 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. as_myself= 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 STATUS ERROR [LINENO LOG_FD] @%:@ ---------------------------------------- @%:@ Output "`basename @S|@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=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } @%:@ as_fn_error @%:@ as_fn_set_status STATUS @%:@ ----------------------- @%:@ Set @S|@? 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 @S|@as_val. Take advantage of shells that can avoid forks. The arguments @%:@ must be portable across @S|@(()) 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 -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null @%:@ as_fn_mkdir_p @%:@ ------------- @%:@ Create "@S|@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 @%:@ as_fn_executable_p FILE @%:@ ----------------------- @%:@ Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } @%:@ as_fn_executable_p as_test_x='test -x' as_executable_p=as_fn_executable_p # 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 tcpcrypt $as_me 0.5, which was generated by GNU Autoconf 2.69. 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 . tcpcrypt home page: ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ tcpcrypt config.status 0.5 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" Copyright (C) 2012 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=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= 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"` ;; '') as_fn_error $? "missing file argument" ;; 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' macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' shared_archive_member_spec='`$ECHO "$shared_archive_member_spec" | $SED "$delay_single_quote_subst"`' SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_import='`$ECHO "$lt_cv_sys_global_symbol_to_import" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' lt_cv_nm_interface='`$ECHO "$lt_cv_nm_interface" | $SED "$delay_single_quote_subst"`' nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' lt_cv_truncate_bin='`$ECHO "$lt_cv_truncate_bin" | $SED "$delay_single_quote_subst"`' objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' configure_time_dlsearch_path='`$ECHO "$configure_time_dlsearch_path" | $SED "$delay_single_quote_subst"`' configure_time_lt_sys_library_path='`$ECHO "$configure_time_lt_sys_library_path" | $SED "$delay_single_quote_subst"`' hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$1 _LTECHO_EOF' } # Quote evaled strings. for var in SHELL \ ECHO \ PATH_SEPARATOR \ SED \ GREP \ EGREP \ FGREP \ LD \ NM \ LN_S \ lt_SP2NL \ lt_NL2SP \ reload_flag \ OBJDUMP \ deplibs_check_method \ file_magic_cmd \ file_magic_glob \ want_nocaseglob \ DLLTOOL \ sharedlib_from_linklib_cmd \ AR \ AR_FLAGS \ archiver_list_spec \ STRIP \ RANLIB \ CC \ CFLAGS \ compiler \ lt_cv_sys_global_symbol_pipe \ lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_import \ lt_cv_sys_global_symbol_to_c_name_address \ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ lt_cv_nm_interface \ nm_file_list_spec \ lt_cv_truncate_bin \ lt_prog_compiler_no_builtin_flag \ lt_prog_compiler_pic \ lt_prog_compiler_wl \ lt_prog_compiler_static \ lt_cv_prog_compiler_c_o \ need_locks \ MANIFEST_TOOL \ 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_separator \ exclude_expsyms \ include_expsyms \ file_list_spec \ variables_saved_for_relink \ libname_spec \ library_names_spec \ soname_spec \ install_override_mode \ finish_eval \ old_striplib \ striplib; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes ;; *) 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 \ postlink_cmds \ postinstall_cmds \ postuninstall_cmds \ finish_cmds \ sys_lib_search_path_spec \ configure_time_dlsearch_path \ configure_time_lt_sys_library_path; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done ac_aux_dir='$ac_aux_dir' # See if we are running on zsh, and set the options that 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' 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" ;; "tests/atconfig") CONFIG_COMMANDS="$CONFIG_COMMANDS tests/atconfig" ;; "tests/atlocal") CONFIG_FILES="$CONFIG_FILES tests/atlocal" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "src/tcpcrypt_version.h") CONFIG_FILES="$CONFIG_FILES src/tcpcrypt_version.h" ;; *) 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= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_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 -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # 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 {' >"$ac_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 >>"\$ac_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 >>"\$ac_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 < "$ac_tmp/subs1.awk" > "$ac_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 sole $(srcdir), # ${srcdir} and @srcdir@ entries 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[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// 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 >"$ac_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_tt=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_tt"; 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="$ac_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 1 "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 >"$ac_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 "$ac_tmp/subs.awk" \ >$ac_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' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_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 "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_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 "$ac_tmp/defines.awk"' "$ac_file_inputs" } >"$ac_tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 if diff "$ac_file" "$ac_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 "$ac_tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_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"" || { # Older Autoconf 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"` # 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'`; 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 that 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 # Generated automatically by $as_me ($PACKAGE) $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. # Provide generalized library-building support services. # Written by Gordon Matzigkeit, 1996 # Copyright (C) 2014 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 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 this program. If not, see . # The names of the tagged configurations supported by this script. available_tags='' # Configured defaults for sys_lib_dlsearch_path munging. : \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"} # ### BEGIN LIBTOOL CONFIG # 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 # Whether or not to build static libraries. build_old_libs=$enable_static # What type of objects to build. pic_mode=$pic_mode # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # Shared archive member basename,for filename based shared library versioning on AIX. shared_archive_member_spec=$shared_archive_member_spec # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # An echo program that protects backslashes. ECHO=$lt_ECHO # The PATH separator for the build system. PATH_SEPARATOR=$lt_PATH_SEPARATOR # 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 # convert \$build file names to \$host format. to_host_file_cmd=$lt_cv_to_host_file_cmd # convert \$build files to toolchain format. to_tool_file_cmd=$lt_cv_to_tool_file_cmd # 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 # How to find potential files when deplibs_check_method = "file_magic". file_magic_glob=$lt_file_magic_glob # Find potential files using nocaseglob when deplibs_check_method = "file_magic". want_nocaseglob=$lt_want_nocaseglob # DLL creation program. DLLTOOL=$lt_DLLTOOL # Command to associate shared and link libraries. sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd # The archiver. AR=$lt_AR # Flags to create an archive. AR_FLAGS=$lt_AR_FLAGS # How to feed a file listing to the archiver. archiver_list_spec=$lt_archiver_list_spec # 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 # Whether to use a lock for old archive extraction. lock_old_archive_extraction=$lock_old_archive_extraction # 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 into a list of symbols to manually relocate. global_symbol_to_import=$lt_lt_cv_sys_global_symbol_to_import # 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 lister interface. nm_interface=$lt_lt_cv_nm_interface # Specify filename containing input files for \$NM. nm_file_list_spec=$lt_nm_file_list_spec # The root where to search for dependent libraries,and where our libraries should be installed. lt_sysroot=$lt_sysroot # Command to truncate a binary pipe. lt_truncate_bin=$lt_lt_cv_truncate_bin # The name of the directory that contains temporary libtool files. objdir=$objdir # 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 # Manifest tool. MANIFEST_TOOL=$lt_MANIFEST_TOOL # 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 # Permission mode override for installation of shared libraries. install_override_mode=$lt_install_override_mode # 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 # Detected run-time system search path for libraries. sys_lib_dlsearch_path_spec=$lt_configure_time_dlsearch_path # Explicit LT_SYS_LIBRARY_PATH set during ./configure time. configure_time_lt_sys_library_path=$lt_configure_time_lt_sys_library_path # 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 # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # 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 # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl # 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 # 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 # 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 # Commands necessary for finishing linking programs. postlink_cmds=$lt_postlink_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 cat <<'_LT_EOF' >> "$cfgfile" # ### BEGIN FUNCTIONS SHARED WITH CONFIGURE # func_munge_path_list VARIABLE PATH # ----------------------------------- # VARIABLE is name of variable containing _space_ separated list of # directories to be munged by the contents of PATH, which is string # having a format: # "DIR[:DIR]:" # string "DIR[ DIR]" will be prepended to VARIABLE # ":DIR[:DIR]" # string "DIR[ DIR]" will be appended to VARIABLE # "DIRP[:DIRP]::[DIRA:]DIRA" # string "DIRP[ DIRP]" will be prepended to VARIABLE and string # "DIRA[ DIRA]" will be appended to VARIABLE # "DIR[:DIR]" # VARIABLE will be replaced by "DIR[ DIR]" func_munge_path_list () { case x@S|@2 in x) ;; *:) eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'` \@S|@@S|@1\" ;; x:*) eval @S|@1=\"\@S|@@S|@1 `$ECHO @S|@2 | $SED 's/:/ /g'`\" ;; *::*) eval @S|@1=\"\@S|@@S|@1\ `$ECHO @S|@2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" eval @S|@1=\"`$ECHO @S|@2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \@S|@@S|@1\" ;; *) eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'`\" ;; esac } # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. func_cc_basename () { for cc_temp in @S|@*""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` } # ### END FUNCTIONS SHARED WITH CONFIGURE _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 set != "${COLLECT_NAMES+set}"; 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 '$q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ;; "tests/atconfig":C) cat >tests/atconfig </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 1 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 tcpcrypt-0.5/config/0000755000175200017520000000000012742073030013527 5ustar sorbosorbotcpcrypt-0.5/config/install-sh0000755000175200017520000003452312742073030015542 0ustar sorbosorbo#!/bin/sh # install - install a program, script, or datafile scriptversion=2013-12-25.23; # 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. tab=' ' nl=' ' IFS=" $tab$nl" # Set DOITPROG to "echo" to test this script. doit=${DOITPROG-} doit_exec=${doit:-exec} # 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_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 is_target_a_directory=possibly 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 *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*) echo "$0: invalid mode: $mode" >&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) is_target_a_directory=always dst_arg=$2 # Protect names problematic for 'test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac shift;; -T) is_target_a_directory=never;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done # We allow the use of options -d and -T together, by making -d # take the precedence; this is for compatibility with GNU install. if test -n "$dir_arg"; then if test -n "$dst_arg"; then echo "$0: target directory not allowed when installing a directory." >&2 exit 1 fi fi 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 # Protect names problematic for 'test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac 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 if test $# -gt 1 || test "$is_target_a_directory" = always; then if test ! -d "$dst_arg"; then echo "$0: $dst_arg: Is not a directory." >&2 exit 1 fi fi fi if test -z "$dir_arg"; then do_exit='(exit $ret); exit $ret' trap "ret=129; $do_exit" 1 trap "ret=130; $do_exit" 2 trap "ret=141; $do_exit" 13 trap "ret=143; $do_exit" 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 problematic for 'test' and other utilities. 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 # 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 "$is_target_a_directory" = never; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else dstdir=`dirname "$dst"` 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-writable 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 oIFS=$IFS IFS=/ set -f set fnord $dstdir shift set +f IFS=$oIFS prefixes= for d do test X"$d" = X && 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` && set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && 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: tcpcrypt-0.5/config/ar-lib0000755000175200017520000001330212742073030014622 0ustar sorbosorbo#! /bin/sh # Wrapper for Microsoft lib.exe me=ar-lib scriptversion=2012-03-01.08; # UTC # Copyright (C) 2010-2014 Free Software Foundation, Inc. # Written by Peter Rosin . # # 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. # This file is maintained in Automake, please report # bugs to or send patches to # . # func_error message func_error () { echo "$me: $1" 1>&2 exit 1 } file_conv= # func_file_conv build_file # Convert a $build file to $host form and store it in $file # Currently only supports Windows hosts. func_file_conv () { file=$1 case $file in / | /[!/]*) # absolute file, and not a UNC file if test -z "$file_conv"; then # lazily determine how to convert abs files case `uname -s` in MINGW*) file_conv=mingw ;; CYGWIN*) file_conv=cygwin ;; *) file_conv=wine ;; esac fi case $file_conv in mingw) file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` ;; cygwin) file=`cygpath -m "$file" || echo "$file"` ;; wine) file=`winepath -w "$file" || echo "$file"` ;; esac ;; esac } # func_at_file at_file operation archive # Iterate over all members in AT_FILE performing OPERATION on ARCHIVE # for each of them. # When interpreting the content of the @FILE, do NOT use func_file_conv, # since the user would need to supply preconverted file names to # binutils ar, at least for MinGW. func_at_file () { operation=$2 archive=$3 at_file_contents=`cat "$1"` eval set x "$at_file_contents" shift for member do $AR -NOLOGO $operation:"$member" "$archive" || exit $? done } case $1 in '') func_error "no command. Try '$0 --help' for more information." ;; -h | --h*) cat <. # # 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. This Exception is an additional permission under section 7 # of the GNU General Public License, version 3 ("GPLv3"). # Please send patches to . # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD # 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 1992-2014 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-android* | linux-dietlibc | linux-newlib* | \ linux-musl* | 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/'` ;; android-linux) os=-linux-android basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown ;; *) 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 | -microblaze*) 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*178) os=-lynxos178 ;; -lynx*5) os=-lynxos5 ;; -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 \ | aarch64 | aarch64_be \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arceb \ | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ | avr | avr32 \ | be32 | be64 \ | bfin \ | c4x | c8051 | clipper \ | d10v | d30v | dlx | dsp16xx \ | epiphany \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | hexagon \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | k1om \ | le32 | le64 \ | lm32 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | microblazeel | 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 \ | mipsisa32r6 | mipsisa32r6el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64r6 | mipsisa64r6el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipsr5900 | mipsr5900el \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | moxie \ | mt \ | msp430 \ | nds32 | nds32le | nds32be \ | nios | nios2 | nios2eb | nios2el \ | ns16k | ns32k \ | open8 | or1k | or1knd | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle \ | pyramid \ | riscv32 | riscv64 \ | rl78 | rx \ | 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 \ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ | ubicom32 \ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ | visium \ | we32k \ | x86 | xc16x | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown ;; c54x) basic_machine=tic54x-unknown ;; c55x) basic_machine=tic55x-unknown ;; c6x) basic_machine=tic6x-unknown ;; leon|leon[3-9]) basic_machine=sparc-$basic_machine ;; m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; strongarm | thumb | xscale) basic_machine=arm-unknown ;; xgate) basic_machine=$basic_machine-unknown os=-none ;; xscaleeb) basic_machine=armeb-unknown ;; xscaleel) basic_machine=armel-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-* \ | aarch64-* | aarch64_be-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | be32-* | be64-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* \ | c8051-* | 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-* \ | hexagon-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | k1om-* \ | le32-* | le64-* \ | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ | microblaze-* | microblazeel-* \ | 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-* \ | mipsisa32r6-* | mipsisa32r6el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64r6-* | mipsisa64r6el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipsr5900-* | mipsr5900el-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nds32-* | nds32le-* | nds32be-* \ | nios-* | nios2-* | nios2eb-* | nios2el-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | open8-* \ | or1k*-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ | pyramid-* \ | rl78-* | romp-* | rs6000-* | rx-* \ | 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-* | sv1-* | sx?-* \ | tahoe-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tile*-* \ | tron-* \ | ubicom32-* \ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ | vax-* \ | visium-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* \ | 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 ;; c54x-*) basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c55x-*) basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c6x-*) basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; 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 | 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*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 ;; leon-*|leon[3-9]-*) basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'` ;; 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 ;; microblaze*) basic_machine=microblaze-xilinx ;; mingw64) basic_machine=x86_64-pc os=-mingw64 ;; mingw32) basic_machine=i686-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 ;; moxiebox) basic_machine=moxie-unknown os=-moxiebox ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; msys) basic_machine=i686-pc os=-msys ;; mvs) basic_machine=i370-ibm os=-mvs ;; nacl) basic_machine=le32-unknown os=-nacl ;; 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 ;; neo-tandem) basic_machine=neo-tandem ;; nse-tandem) basic_machine=nse-tandem ;; 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 | ppcbe) basic_machine=powerpc-unknown ;; ppc-* | ppcbe-*) 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 | rdos64) basic_machine=x86_64-pc os=-rdos ;; rdos32) 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 ;; strongarm-* | thumb-*) basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` ;; 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 ;; tile*) basic_machine=$basic_machine-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 ;; xscale-* | xscalee[bl]-*) basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` ;; 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. -auroraux) os=-auroraux ;; -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* | -auroraux* | -solaris* \ | -sym* | -kopensolaris* | -plan9* \ | -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* \ | -bitrig* | -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* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ | -linux-newlib* | -linux-musl* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ | -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* | -es* | -tirtos*) # 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 ;; -zvmoe) os=-zvmoe ;; -dicos*) os=-dicos ;; -nacl*) ;; -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 ;; c8051-*) os=-elf ;; hexagon-*) os=-elf ;; tic54x-*) os=-coff ;; tic55x-*) os=-coff ;; tic6x-*) 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 ;; 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: tcpcrypt-0.5/config/missing0000755000175200017520000001533012742073030015130 0ustar sorbosorbo#! /bin/sh # Common wrapper for a few potentially missing GNU programs. scriptversion=2013-10-28.13; # UTC # Copyright (C) 1996-2014 Free Software Foundation, Inc. # Originally written 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 case $1 in --is-lightweight) # Used by our autoconf macros to check whether the available missing # script is modern enough. exit 0 ;; --run) # Back-compat with the calling convention used by older automake. shift ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due to PROGRAM being missing or too old. Options: -h, --help display this help and exit -v, --version output version information and exit Supported PROGRAM values: aclocal autoconf autoheader autom4te automake makeinfo bison yacc flex lex help2man 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 # Run the given program, remember its exit status. "$@"; st=$? # If it succeeded, we are done. test $st -eq 0 && exit 0 # Also exit now if we it failed (or wasn't found), and '--version' was # passed; such an option is passed most likely to detect whether the # program is present and works. case $2 in --version|--help) exit $st;; esac # Exit code 63 means version mismatch. This often happens when the user # tries to use an ancient version of a tool on a file that requires a # minimum version. if test $st -eq 63; then msg="probably too old" elif test $st -eq 127; then # Program was missing. msg="missing on your system" else # Program was found and executed, but failed. Give up. exit $st fi perl_URL=http://www.perl.org/ flex_URL=http://flex.sourceforge.net/ gnu_software_URL=http://www.gnu.org/software program_details () { case $1 in aclocal|automake) echo "The '$1' program is part of the GNU Automake package:" echo "<$gnu_software_URL/automake>" echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:" echo "<$gnu_software_URL/autoconf>" echo "<$gnu_software_URL/m4/>" echo "<$perl_URL>" ;; autoconf|autom4te|autoheader) echo "The '$1' program is part of the GNU Autoconf package:" echo "<$gnu_software_URL/autoconf/>" echo "It also requires GNU m4 and Perl in order to run:" echo "<$gnu_software_URL/m4/>" echo "<$perl_URL>" ;; esac } give_advice () { # Normalize program name to check for. normalized_program=`echo "$1" | sed ' s/^gnu-//; t s/^gnu//; t s/^g//; t'` printf '%s\n' "'$1' is $msg." configure_deps="'configure.ac' or m4 files included by 'configure.ac'" case $normalized_program in autoconf*) echo "You should only need it if you modified 'configure.ac'," echo "or m4 files included by it." program_details 'autoconf' ;; autoheader*) echo "You should only need it if you modified 'acconfig.h' or" echo "$configure_deps." program_details 'autoheader' ;; automake*) echo "You should only need it if you modified 'Makefile.am' or" echo "$configure_deps." program_details 'automake' ;; aclocal*) echo "You should only need it if you modified 'acinclude.m4' or" echo "$configure_deps." program_details 'aclocal' ;; autom4te*) echo "You might have modified some maintainer files that require" echo "the 'autom4te' program to be rebuilt." program_details 'autom4te' ;; bison*|yacc*) echo "You should only need it if you modified a '.y' file." echo "You may want to install the GNU Bison package:" echo "<$gnu_software_URL/bison/>" ;; lex*|flex*) echo "You should only need it if you modified a '.l' file." echo "You may want to install the Fast Lexical Analyzer package:" echo "<$flex_URL>" ;; help2man*) echo "You should only need it if you modified a dependency" \ "of a man page." echo "You may want to install the GNU Help2man package:" echo "<$gnu_software_URL/help2man/>" ;; makeinfo*) echo "You should only need it if you modified a '.texi' file, or" echo "any other file indirectly affecting the aspect of the manual." echo "You might want to install the Texinfo package:" echo "<$gnu_software_URL/texinfo/>" echo "The spurious makeinfo call might also be the consequence of" echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might" echo "want to install GNU make:" echo "<$gnu_software_URL/make/>" ;; *) echo "You might have modified some files without having the proper" echo "tools for further handling them. Check the 'README' file, it" echo "often tells you about the needed prerequisites for installing" echo "this package. You may also peek at any GNU archive site, in" echo "case some other package contains this missing '$1' program." ;; esac } give_advice "$1" | sed -e '1s/^/WARNING: /' \ -e '2,$s/^/ /' >&2 # Propagate the correct exit status (expected to be 127 for a program # not found, 63 for a program that failed due to version mismatch). exit $st # 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: tcpcrypt-0.5/config/depcomp0000755000175200017520000005601612742073030015114 0ustar sorbosorbo#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2013-05-30.07; # UTC # Copyright (C) 1999-2014 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 outputting dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac # Get the directory component of the given path, and save it in the # global variables '$dir'. Note that this directory component will # be either empty or ending with a '/' character. This is deliberate. set_dir_from () { case $1 in */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;; *) dir=;; esac } # Get the suffix-stripped basename of the given path, and save it the # global variable '$base'. set_base_from () { base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'` } # If no dependency file was actually created by the compiler invocation, # we still have to create a dummy depfile, to avoid errors with the # Makefile "include basename.Plo" scheme. make_dummy_depfile () { echo "#dummy" > "$depfile" } # Factor out some common post-processing of the generated depfile. # Requires the auxiliary global variable '$tmpdepfile' to be set. aix_post_process_depfile () { # If the compiler actually managed to produce a dependency file, # post-process it. if test -f "$tmpdepfile"; then # Each line is of the form 'foo.o: dependency.h'. # Do two passes, one to just change these to # $object: dependency.h # and one to simply output # dependency.h: # which is needed to avoid the deleted-header problem. { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile" sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile" } > "$depfile" rm -f "$tmpdepfile" else make_dummy_depfile fi } # A tabulation character. tab=' ' # A newline character. nl=' ' # Character ranges might be problematic outside the C locale. # These definitions help. upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ lower=abcdefghijklmnopqrstuvwxyz digits=0123456789 alpha=${upper}${lower} 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" # Avoid interferences from the environment. gccflag= dashmflag= # 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 if test "$depmode" = msvc7msys; then # This is just like msvc7 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=msvc7 fi if test "$depmode" = xlc; then # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information. gccflag=-qmakedep=gcc,-MF depmode=gcc 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 -ne 0; then rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## Note that this doesn't just cater to obsosete pre-3.x GCC compilers. ## but also to in-use compilers like IMB xlc/xlC and the HP C compiler. ## (see the conditional assignment to $gccflag above). ## 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). Also, it might not be ## supported by the other compilers which use the 'gcc' depmode. ## - 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 -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" # 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. ## 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. hp depmode also adds that space, but also prefixes the VPATH ## to the object. Take care to not repeat it in the output. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -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 -ne 0; then 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 ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \ | tr "$nl" ' ' >> "$depfile" echo >> "$depfile" # The second pass generates a dummy entry for each header file. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> "$depfile" else make_dummy_depfile fi rm -f "$tmpdepfile" ;; xlc) # 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 ;; 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. set_dir_from "$object" set_base_from "$object" 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 -ne 0; then rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done aix_post_process_depfile ;; tcc) # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26 # FIXME: That version still under development at the moment of writing. # Make that this statement remains true also for stable, released # versions. # It will wrap lines (doesn't matter whether long or short) with a # trailing '\', as in: # # foo.o : \ # foo.c \ # foo.h \ # # It will put a trailing '\' even on the last line, and will use leading # spaces rather than leading tabs (at least since its commit 0394caf7 # "Emit spaces for -MD"). "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'. # We have to change lines of the first kind to '$object: \'. sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile" # And for each line of the second kind, we have to emit a 'dep.h:' # dummy dependency, to avoid the deleted-header problem. sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile" rm -f "$tmpdepfile" ;; ## The order of this option in the case statement is important, since the ## shell code in configure will try each of these formats in the order ## listed in this file. A plain '-MD' option would be understood by many ## compilers, so we must ensure this comes after the gcc and icc options. pgcc) # Portland's C compiler understands '-MD'. # Will always output deps to 'file.d' where file is the root name of the # source file under compilation, even if file resides in a subdirectory. # The object file name does not affect the name of the '.d' file. # pgcc 10.2 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using '\' : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... set_dir_from "$object" # Use the source, not the object, to determine the base name, since # that's sadly what pgcc will do too. set_base_from "$source" tmpdepfile=$base.d # For projects that build the same source file twice into different object # files, the pgcc approach of using the *source* file root name can cause # problems in parallel builds. Use a locking strategy to avoid stomping on # the same $tmpdepfile. lockdir=$base.d-lock trap " echo '$0: caught signal, cleaning up...' >&2 rmdir '$lockdir' exit 1 " 1 2 13 15 numtries=100 i=$numtries while test $i -gt 0; do # mkdir is a portable test-and-set. if mkdir "$lockdir" 2>/dev/null; then # This process acquired the lock. "$@" -MD stat=$? # Release the lock. rmdir "$lockdir" break else # If the lock is being held by a different process, wait # until the winning process is done or we timeout. while test -d "$lockdir" && test $i -gt 0; do sleep 1 i=`expr $i - 1` done fi i=`expr $i - 1` done trap - 1 2 13 15 if test $i -le 0; then echo "$0: failed to acquire lock after $numtries attempts" >&2 echo "$0: check lockdir '$lockdir'" >&2 exit 1 fi if test $stat -ne 0; then 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. set_dir_from "$object" set_base_from "$object" 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 -ne 0; then 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,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile" # Add 'dependent.h:' lines. sed -ne '2,${ s/^ *// s/ \\*$// s/$/:/ p }' "$tmpdepfile" >> "$depfile" else make_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. set_dir_from "$object" set_base_from "$object" if test "$libtool" = yes; then # Libtool 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$base.o.d # libtool 1.5 tmpdepfile2=$dir.libs/$base.o.d # Likewise. tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d "$@" -MD fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done # Same post-processing that is required for AIX mode. aix_post_process_depfile ;; msvc7) if test "$libtool" = yes; then showIncludes=-Wc,-showIncludes else showIncludes=-showIncludes fi "$@" $showIncludes > "$tmpdepfile" stat=$? grep -v '^Note: including file: ' "$tmpdepfile" if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" # The first sed program below extracts the file names and escapes # backslashes for cygpath. The second sed program outputs the file # name when reading, but also accumulates all include files in the # hold buffer in order to output them again at the end. This only # works with sed implementations that can handle large buffers. sed < "$tmpdepfile" -n ' /^Note: including file: *\(.*\)/ { s//\1/ s/\\/\\\\/g p }' | $cygpath_u | sort -u | sed -n ' s/ /\\ /g s/\(.*\)/'"$tab"'\1 \\/p s/.\(.*\) \\/\1:/ H $ { s/.*/'"$tab"'/ G p }' >> "$depfile" echo >> "$depfile" # make sure the fragment doesn't end with a backslash rm -f "$tmpdepfile" ;; msvc7msys) # 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 ;; #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|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this sed invocation # correctly. Breaking it into two sed invocations is a workaround. tr ' ' "$nl" < "$tmpdepfile" \ | 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" # makedepend may prepend the VPATH from the source file name to the object. # No need to regex-escape $object, excess matching of '.' is harmless. sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process the last invocation # correctly. Breaking it into two sed invocations is a workaround. sed '1,2d' "$tmpdepfile" \ | tr ' ' "$nl" \ | 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::'"$tab"'\1 \\:p' >> "$depfile" echo "$tab" >> "$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: tcpcrypt-0.5/config/ltmain.sh0000644000175200017520000117077112742073023015367 0ustar sorbosorbo#! /bin/sh ## DO NOT EDIT - This file generated from ./build-aux/ltmain.in ## by inline-source v2014-01-03.01 # libtool (GNU libtool) 2.4.6 # Provide generalized library-building support services. # Written by Gordon Matzigkeit , 1996 # Copyright (C) 1996-2015 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 this program. If not, see . PROGRAM=libtool PACKAGE=libtool VERSION=2.4.6 package_revision=2.4.6 ## ------ ## ## Usage. ## ## ------ ## # Run './libtool --help' for help with using this script from the # command line. ## ------------------------------- ## ## User overridable command paths. ## ## ------------------------------- ## # After configure completes, it has a better idea of some of the # shell tools we need than the defaults used by the functions shared # with bootstrap, so set those here where they can still be over- # ridden by the user, but otherwise take precedence. : ${AUTOCONF="autoconf"} : ${AUTOMAKE="automake"} ## -------------------------- ## ## Source external libraries. ## ## -------------------------- ## # Much of our low-level functionality needs to be sourced from external # libraries, which are installed to $pkgauxdir. # Set a version string for this script. scriptversion=2015-01-20.17; # UTC # General shell script boiler plate, and helper functions. # Written by Gary V. Vaughan, 2004 # Copyright (C) 2004-2015 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. # 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 3 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. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNES 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 . # Please report bugs or propose patches to gary@gnu.org. ## ------ ## ## Usage. ## ## ------ ## # Evaluate this file near the top of your script to gain access to # the functions and variables defined here: # # . `echo "$0" | ${SED-sed} 's|[^/]*$||'`/build-aux/funclib.sh # # If you need to override any of the default environment variable # settings, do that before evaluating this file. ## -------------------- ## ## Shell normalisation. ## ## -------------------- ## # Some shells need a little help to be as Bourne compatible as possible. # Before doing anything else, make sure all that help has been provided! 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 # NLS nuisances: We save the old values in case they are required later. _G_user_locale= _G_safe_locale= for _G_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test set = \"\${$_G_var+set}\"; then save_$_G_var=\$$_G_var $_G_var=C export $_G_var _G_user_locale=\"$_G_var=\\\$save_\$_G_var; \$_G_user_locale\" _G_safe_locale=\"$_G_var=C; \$_G_safe_locale\" fi" done # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # Make sure IFS has a sensible default sp=' ' nl=' ' IFS="$sp $nl" # There are apparently some retarded systems that use ';' as a PATH separator! 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 ## ------------------------- ## ## Locate command utilities. ## ## ------------------------- ## # func_executable_p FILE # ---------------------- # Check that FILE is an executable regular file. func_executable_p () { test -f "$1" && test -x "$1" } # func_path_progs PROGS_LIST CHECK_FUNC [PATH] # -------------------------------------------- # Search for either a program that responds to --version with output # containing "GNU", or else returned by CHECK_FUNC otherwise, by # trying all the directories in PATH with each of the elements of # PROGS_LIST. # # CHECK_FUNC should accept the path to a candidate program, and # set $func_check_prog_result if it truncates its output less than # $_G_path_prog_max characters. func_path_progs () { _G_progs_list=$1 _G_check_func=$2 _G_PATH=${3-"$PATH"} _G_path_prog_max=0 _G_path_prog_found=false _G_save_IFS=$IFS; IFS=${PATH_SEPARATOR-:} for _G_dir in $_G_PATH; do IFS=$_G_save_IFS test -z "$_G_dir" && _G_dir=. for _G_prog_name in $_G_progs_list; do for _exeext in '' .EXE; do _G_path_prog=$_G_dir/$_G_prog_name$_exeext func_executable_p "$_G_path_prog" || continue case `"$_G_path_prog" --version 2>&1` in *GNU*) func_path_progs_result=$_G_path_prog _G_path_prog_found=: ;; *) $_G_check_func $_G_path_prog func_path_progs_result=$func_check_prog_result ;; esac $_G_path_prog_found && break 3 done done done IFS=$_G_save_IFS test -z "$func_path_progs_result" && { echo "no acceptable sed could be found in \$PATH" >&2 exit 1 } } # We want to be able to use the functions in this file before configure # has figured out where the best binaries are kept, which means we have # to search for them ourselves - except when the results are already set # where we skip the searches. # Unless the user overrides by setting SED, search the path for either GNU # sed, or the sed that truncates its output the least. test -z "$SED" && { _G_sed_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ for _G_i in 1 2 3 4 5 6 7; do _G_sed_script=$_G_sed_script$nl$_G_sed_script done echo "$_G_sed_script" 2>/dev/null | sed 99q >conftest.sed _G_sed_script= func_check_prog_sed () { _G_path_prog=$1 _G_count=0 printf 0123456789 >conftest.in while : do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo '' >> conftest.nl "$_G_path_prog" -f conftest.sed conftest.out 2>/dev/null || break diff conftest.out conftest.nl >/dev/null 2>&1 || break _G_count=`expr $_G_count + 1` if test "$_G_count" -gt "$_G_path_prog_max"; then # Best one so far, save it but keep looking for a better one func_check_prog_result=$_G_path_prog _G_path_prog_max=$_G_count fi # 10*(2^10) chars as input seems more than enough test 10 -lt "$_G_count" && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out } func_path_progs "sed gsed" func_check_prog_sed $PATH:/usr/xpg4/bin rm -f conftest.sed SED=$func_path_progs_result } # Unless the user overrides by setting GREP, search the path for either GNU # grep, or the grep that truncates its output the least. test -z "$GREP" && { func_check_prog_grep () { _G_path_prog=$1 _G_count=0 _G_path_prog_max=0 printf 0123456789 >conftest.in while : do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo 'GREP' >> conftest.nl "$_G_path_prog" -e 'GREP$' -e '-(cannot match)-' conftest.out 2>/dev/null || break diff conftest.out conftest.nl >/dev/null 2>&1 || break _G_count=`expr $_G_count + 1` if test "$_G_count" -gt "$_G_path_prog_max"; then # Best one so far, save it but keep looking for a better one func_check_prog_result=$_G_path_prog _G_path_prog_max=$_G_count fi # 10*(2^10) chars as input seems more than enough test 10 -lt "$_G_count" && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out } func_path_progs "grep ggrep" func_check_prog_grep $PATH:/usr/xpg4/bin GREP=$func_path_progs_result } ## ------------------------------- ## ## User overridable command paths. ## ## ------------------------------- ## # All uppercase variable names are used for environment variables. These # variables can be overridden by the user before calling a script that # uses them if a suitable command of that name is not already available # in the command search PATH. : ${CP="cp -f"} : ${ECHO="printf %s\n"} : ${EGREP="$GREP -E"} : ${FGREP="$GREP -F"} : ${LN_S="ln -s"} : ${MAKE="make"} : ${MKDIR="mkdir"} : ${MV="mv -f"} : ${RM="rm -f"} : ${SHELL="${CONFIG_SHELL-/bin/sh}"} ## -------------------- ## ## Useful sed snippets. ## ## -------------------- ## sed_dirname='s|/[^/]*$||' sed_basename='s|^.*/||' # 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. sed_double_quote_subst='s/\(["`\\]\)/\\\1/g' # Sed substitution that turns a string into a regex matching for the # string literally. sed_make_literal_regex='s|[].[^$\\*\/]|\\&|g' # Sed substitution that converts a w32 file name or path # that contains forward slashes, into one that contains # (escaped) backslashes. A very naive implementation. sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' # Re-'\' parameter expansions in output of sed_double_quote_subst that # were '\'-ed in input to the same. If an odd number of '\' preceded a # '$' in input to sed_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 '$'. _G_bs='\\' _G_bs2='\\\\' _G_bs4='\\\\\\\\' _G_dollar='\$' sed_double_backslash="\ s/$_G_bs4/&\\ /g s/^$_G_bs2$_G_dollar/$_G_bs&/ s/\\([^$_G_bs]\\)$_G_bs2$_G_dollar/\\1$_G_bs2$_G_bs$_G_dollar/g s/\n//g" ## ----------------- ## ## Global variables. ## ## ----------------- ## # Except for the global variables explicitly listed below, the following # functions in the '^func_' namespace, and the '^require_' namespace # variables initialised in the 'Resource management' section, sourcing # this file will not pollute your global namespace with anything # else. There's no portable way to scope variables in Bourne shell # though, so actually running these functions will sometimes place # results into a variable named after the function, and often use # temporary variables in the '^_G_' namespace. If you are careful to # avoid using those namespaces casually in your sourcing script, things # should continue to work as you expect. And, of course, you can freely # overwrite any of the functions or variables defined here before # calling anything to customize them. 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. # Allow overriding, eg assuming that you follow the convention of # putting '$debug_cmd' at the start of all your functions, you can get # bash to show function call trace with: # # debug_cmd='eval echo "${FUNCNAME[0]} $*" >&2' bash your-script-name debug_cmd=${debug_cmd-":"} exit_cmd=: # By convention, finish your script with: # # exit $exit_status # # so that you can set exit_status to non-zero if you want to indicate # something went wrong during execution without actually bailing out at # the point of failure. exit_status=$EXIT_SUCCESS # 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. progname=`$ECHO "$progpath" |$SED "$sed_basename"` # Make sure we have an absolute progpath for reexecution: case $progpath in [\\/]*|[A-Za-z]:\\*) ;; *[\\/]*) progdir=`$ECHO "$progpath" |$SED "$sed_dirname"` progdir=`cd "$progdir" && pwd` progpath=$progdir/$progname ;; *) _G_IFS=$IFS IFS=${PATH_SEPARATOR-:} for progdir in $PATH; do IFS=$_G_IFS test -x "$progdir/$progname" && break done IFS=$_G_IFS test -n "$progdir" || progdir=`pwd` progpath=$progdir/$progname ;; esac ## ----------------- ## ## Standard options. ## ## ----------------- ## # The following options affect the operation of the functions defined # below, and should be set appropriately depending on run-time para- # meters passed on the command line. opt_dry_run=false opt_quiet=false opt_verbose=false # Categories 'all' and 'none' are always available. Append any others # you will pass as the first argument to func_warning from your own # code. warning_categories= # By default, display warnings according to 'opt_warning_types'. Set # 'warning_func' to ':' to elide all warnings, or func_fatal_error to # treat the next displayed warning as a fatal error. warning_func=func_warn_and_continue # Set to 'all' to display all warnings, 'none' to suppress all # warnings, or a space delimited list of some subset of # 'warning_categories' to display only the listed warnings. opt_warning_types=all ## -------------------- ## ## Resource management. ## ## -------------------- ## # This section contains definitions for functions that each ensure a # particular resource (a file, or a non-empty configuration variable for # example) is available, and if appropriate to extract default values # from pertinent package files. Call them using their associated # 'require_*' variable to ensure that they are executed, at most, once. # # It's entirely deliberate that calling these functions can set # variables that don't obey the namespace limitations obeyed by the rest # of this file, in order that that they be as useful as possible to # callers. # require_term_colors # ------------------- # Allow display of bold text on terminals that support it. require_term_colors=func_require_term_colors func_require_term_colors () { $debug_cmd test -t 1 && { # COLORTERM and USE_ANSI_COLORS environment variables take # precedence, because most terminfo databases neglect to describe # whether color sequences are supported. test -n "${COLORTERM+set}" && : ${USE_ANSI_COLORS="1"} if test 1 = "$USE_ANSI_COLORS"; then # Standard ANSI escape sequences tc_reset='' tc_bold=''; tc_standout='' tc_red=''; tc_green='' tc_blue=''; tc_cyan='' else # Otherwise trust the terminfo database after all. test -n "`tput sgr0 2>/dev/null`" && { tc_reset=`tput sgr0` test -n "`tput bold 2>/dev/null`" && tc_bold=`tput bold` tc_standout=$tc_bold test -n "`tput smso 2>/dev/null`" && tc_standout=`tput smso` test -n "`tput setaf 1 2>/dev/null`" && tc_red=`tput setaf 1` test -n "`tput setaf 2 2>/dev/null`" && tc_green=`tput setaf 2` test -n "`tput setaf 4 2>/dev/null`" && tc_blue=`tput setaf 4` test -n "`tput setaf 5 2>/dev/null`" && tc_cyan=`tput setaf 5` } fi } require_term_colors=: } ## ----------------- ## ## Function library. ## ## ----------------- ## # This section contains a variety of useful functions to call in your # scripts. Take note of the portable wrappers for features provided by # some modern shells, which will fall back to slower equivalents on # less featureful shells. # func_append VAR VALUE # --------------------- # Append VALUE onto the existing contents of VAR. # We should try to minimise forks, especially on Windows where they are # unreasonably slow, so skip the feature probes when bash or zsh are # being used: if test set = "${BASH_VERSION+set}${ZSH_VERSION+set}"; then : ${_G_HAVE_ARITH_OP="yes"} : ${_G_HAVE_XSI_OPS="yes"} # The += operator was introduced in bash 3.1 case $BASH_VERSION in [12].* | 3.0 | 3.0*) ;; *) : ${_G_HAVE_PLUSEQ_OP="yes"} ;; esac fi # _G_HAVE_PLUSEQ_OP # Can be empty, in which case the shell is probed, "yes" if += is # useable or anything else if it does not work. test -z "$_G_HAVE_PLUSEQ_OP" \ && (eval 'x=a; x+=" b"; test "a b" = "$x"') 2>/dev/null \ && _G_HAVE_PLUSEQ_OP=yes if test yes = "$_G_HAVE_PLUSEQ_OP" then # This is an XSI compatible shell, allowing a faster implementation... eval 'func_append () { $debug_cmd eval "$1+=\$2" }' else # ...otherwise fall back to using expr, which is often a shell builtin. func_append () { $debug_cmd eval "$1=\$$1\$2" } fi # func_append_quoted VAR VALUE # ---------------------------- # Quote VALUE and append to the end of shell variable VAR, separated # by a space. if test yes = "$_G_HAVE_PLUSEQ_OP"; then eval 'func_append_quoted () { $debug_cmd func_quote_for_eval "$2" eval "$1+=\\ \$func_quote_for_eval_result" }' else func_append_quoted () { $debug_cmd func_quote_for_eval "$2" eval "$1=\$$1\\ \$func_quote_for_eval_result" } fi # func_append_uniq VAR VALUE # -------------------------- # Append unique VALUE onto the existing contents of VAR, assuming # entries are delimited by the first character of VALUE. For example: # # func_append_uniq options " --another-option option-argument" # # will only append to $options if " --another-option option-argument " # is not already present somewhere in $options already (note spaces at # each end implied by leading space in second argument). func_append_uniq () { $debug_cmd eval _G_current_value='`$ECHO $'$1'`' _G_delim=`expr "$2" : '\(.\)'` case $_G_delim$_G_current_value$_G_delim in *"$2$_G_delim"*) ;; *) func_append "$@" ;; esac } # func_arith TERM... # ------------------ # Set func_arith_result to the result of evaluating TERMs. test -z "$_G_HAVE_ARITH_OP" \ && (eval 'test 2 = $(( 1 + 1 ))') 2>/dev/null \ && _G_HAVE_ARITH_OP=yes if test yes = "$_G_HAVE_ARITH_OP"; then eval 'func_arith () { $debug_cmd func_arith_result=$(( $* )) }' else func_arith () { $debug_cmd func_arith_result=`expr "$@"` } fi # func_basename FILE # ------------------ # Set func_basename_result to FILE with everything up to and including # the last / stripped. if test yes = "$_G_HAVE_XSI_OPS"; then # If this shell supports suffix pattern removal, then use it to avoid # forking. Hide the definitions single quotes in case the shell chokes # on unsupported syntax... _b='func_basename_result=${1##*/}' _d='case $1 in */*) func_dirname_result=${1%/*}$2 ;; * ) func_dirname_result=$3 ;; esac' else # ...otherwise fall back to using sed. _b='func_basename_result=`$ECHO "$1" |$SED "$sed_basename"`' _d='func_dirname_result=`$ECHO "$1" |$SED "$sed_dirname"` if test "X$func_dirname_result" = "X$1"; then func_dirname_result=$3 else func_append func_dirname_result "$2" fi' fi eval 'func_basename () { $debug_cmd '"$_b"' }' # func_dirname FILE APPEND NONDIR_REPLACEMENT # ------------------------------------------- # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. eval 'func_dirname () { $debug_cmd '"$_d"' }' # 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" # For efficiency, we do not delegate to the functions above but instead # duplicate the functionality here. eval 'func_dirname_and_basename () { $debug_cmd '"$_b"' '"$_d"' }' # func_echo ARG... # ---------------- # Echo program name prefixed message. func_echo () { $debug_cmd _G_message=$* func_echo_IFS=$IFS IFS=$nl for _G_line in $_G_message; do IFS=$func_echo_IFS $ECHO "$progname: $_G_line" done IFS=$func_echo_IFS } # func_echo_all ARG... # -------------------- # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "$*" } # func_echo_infix_1 INFIX ARG... # ------------------------------ # Echo program name, followed by INFIX on the first line, with any # additional lines not showing INFIX. func_echo_infix_1 () { $debug_cmd $require_term_colors _G_infix=$1; shift _G_indent=$_G_infix _G_prefix="$progname: $_G_infix: " _G_message=$* # Strip color escape sequences before counting printable length for _G_tc in "$tc_reset" "$tc_bold" "$tc_standout" "$tc_red" "$tc_green" "$tc_blue" "$tc_cyan" do test -n "$_G_tc" && { _G_esc_tc=`$ECHO "$_G_tc" | $SED "$sed_make_literal_regex"` _G_indent=`$ECHO "$_G_indent" | $SED "s|$_G_esc_tc||g"` } done _G_indent="$progname: "`echo "$_G_indent" | $SED 's|.| |g'`" " ## exclude from sc_prohibit_nested_quotes func_echo_infix_1_IFS=$IFS IFS=$nl for _G_line in $_G_message; do IFS=$func_echo_infix_1_IFS $ECHO "$_G_prefix$tc_bold$_G_line$tc_reset" >&2 _G_prefix=$_G_indent done IFS=$func_echo_infix_1_IFS } # func_error ARG... # ----------------- # Echo program name prefixed message to standard error. func_error () { $debug_cmd $require_term_colors func_echo_infix_1 " $tc_standout${tc_red}error$tc_reset" "$*" >&2 } # func_fatal_error ARG... # ----------------------- # Echo program name prefixed message to standard error, and exit. func_fatal_error () { $debug_cmd func_error "$*" exit $EXIT_FAILURE } # func_grep EXPRESSION FILENAME # ----------------------------- # Check whether EXPRESSION matches any line of FILENAME, without output. func_grep () { $debug_cmd $GREP "$1" "$2" >/dev/null 2>&1 } # func_len STRING # --------------- # Set func_len_result to the length of STRING. STRING may not # start with a hyphen. test -z "$_G_HAVE_XSI_OPS" \ && (eval 'x=a/b/c; test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ && _G_HAVE_XSI_OPS=yes if test yes = "$_G_HAVE_XSI_OPS"; then eval 'func_len () { $debug_cmd func_len_result=${#1} }' else func_len () { $debug_cmd func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` } fi # func_mkdir_p DIRECTORY-PATH # --------------------------- # Make sure the entire path to DIRECTORY-PATH is available. func_mkdir_p () { $debug_cmd _G_directory_path=$1 _G_dir_list= if test -n "$_G_directory_path" && test : != "$opt_dry_run"; then # Protect directory names starting with '-' case $_G_directory_path in -*) _G_directory_path=./$_G_directory_path ;; esac # While some portion of DIR does not yet exist... while test ! -d "$_G_directory_path"; do # ...make a list in topmost first order. Use a colon delimited # list incase some portion of path contains whitespace. _G_dir_list=$_G_directory_path:$_G_dir_list # If the last portion added has no slash in it, the list is done case $_G_directory_path in */*) ;; *) break ;; esac # ...otherwise throw away the child directory and loop _G_directory_path=`$ECHO "$_G_directory_path" | $SED -e "$sed_dirname"` done _G_dir_list=`$ECHO "$_G_dir_list" | $SED 's|:*$||'` func_mkdir_p_IFS=$IFS; IFS=: for _G_dir in $_G_dir_list; do IFS=$func_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 "$_G_dir" 2>/dev/null || : done IFS=$func_mkdir_p_IFS # Bail out if we (or some other process) failed to create a directory. test -d "$_G_directory_path" || \ func_fatal_error "Failed to create '$1'" fi } # func_mktempdir [BASENAME] # ------------------------- # Make a temporary directory that won't clash with other running # libtool processes, and avoids race conditions if possible. If # given, BASENAME is the basename for that directory. func_mktempdir () { $debug_cmd _G_template=${TMPDIR-/tmp}/${1-$progname} if test : = "$opt_dry_run"; then # Return a directory name, but don't create it in dry-run mode _G_tmpdir=$_G_template-$$ else # If mktemp works, use that first and foremost _G_tmpdir=`mktemp -d "$_G_template-XXXXXXXX" 2>/dev/null` if test ! -d "$_G_tmpdir"; then # Failing that, at least try and use $RANDOM to avoid a race _G_tmpdir=$_G_template-${RANDOM-0}$$ func_mktempdir_umask=`umask` umask 0077 $MKDIR "$_G_tmpdir" umask $func_mktempdir_umask fi # If we're not in dry-run mode, bomb out on failure test -d "$_G_tmpdir" || \ func_fatal_error "cannot create temporary directory '$_G_tmpdir'" fi $ECHO "$_G_tmpdir" } # func_normal_abspath PATH # ------------------------ # Remove doubled-up and trailing slashes, "." path components, # and cancel out any ".." path components in PATH after making # it an absolute path. func_normal_abspath () { $debug_cmd # These SED scripts presuppose an absolute path with a trailing slash. _G_pathcar='s|^/\([^/]*\).*$|\1|' _G_pathcdr='s|^/[^/]*||' _G_removedotparts=':dotsl s|/\./|/|g t dotsl s|/\.$|/|' _G_collapseslashes='s|/\{1,\}|/|g' _G_finalslash='s|/*$|/|' # Start from root dir and reassemble the path. func_normal_abspath_result= func_normal_abspath_tpath=$1 func_normal_abspath_altnamespace= case $func_normal_abspath_tpath in "") # Empty path, that just means $cwd. func_stripname '' '/' "`pwd`" func_normal_abspath_result=$func_stripname_result return ;; # The next three entries are used to spot a run of precisely # two leading slashes without using negated character classes; # we take advantage of case's first-match behaviour. ///*) # Unusual form of absolute path, do nothing. ;; //*) # Not necessarily an ordinary path; POSIX reserves leading '//' # and for example Cygwin uses it to access remote file shares # over CIFS/SMB, so we conserve a leading double slash if found. func_normal_abspath_altnamespace=/ ;; /*) # Absolute path, do nothing. ;; *) # Relative path, prepend $cwd. func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath ;; esac # Cancel out all the simple stuff to save iterations. We also want # the path to end with a slash for ease of parsing, so make sure # there is one (and only one) here. func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$_G_removedotparts" -e "$_G_collapseslashes" -e "$_G_finalslash"` while :; do # Processed it all yet? if test / = "$func_normal_abspath_tpath"; then # If we ascended to the root using ".." the result may be empty now. if test -z "$func_normal_abspath_result"; then func_normal_abspath_result=/ fi break fi func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$_G_pathcar"` func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$_G_pathcdr"` # Figure out what to do with it case $func_normal_abspath_tcomponent in "") # Trailing empty path component, ignore it. ;; ..) # Parent dir; strip last assembled component from result. func_dirname "$func_normal_abspath_result" func_normal_abspath_result=$func_dirname_result ;; *) # Actual path component, append it. func_append func_normal_abspath_result "/$func_normal_abspath_tcomponent" ;; esac done # Restore leading double-slash if one was found on entry. func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result } # func_notquiet ARG... # -------------------- # Echo program name prefixed message only when not in quiet mode. func_notquiet () { $debug_cmd $opt_quiet || 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_relative_path SRCDIR DSTDIR # -------------------------------- # Set func_relative_path_result to the relative path from SRCDIR to DSTDIR. func_relative_path () { $debug_cmd func_relative_path_result= func_normal_abspath "$1" func_relative_path_tlibdir=$func_normal_abspath_result func_normal_abspath "$2" func_relative_path_tbindir=$func_normal_abspath_result # Ascend the tree starting from libdir while :; do # check if we have found a prefix of bindir case $func_relative_path_tbindir in $func_relative_path_tlibdir) # found an exact match func_relative_path_tcancelled= break ;; $func_relative_path_tlibdir*) # found a matching prefix func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" func_relative_path_tcancelled=$func_stripname_result if test -z "$func_relative_path_result"; then func_relative_path_result=. fi break ;; *) func_dirname $func_relative_path_tlibdir func_relative_path_tlibdir=$func_dirname_result if test -z "$func_relative_path_tlibdir"; then # Have to descend all the way to the root! func_relative_path_result=../$func_relative_path_result func_relative_path_tcancelled=$func_relative_path_tbindir break fi func_relative_path_result=../$func_relative_path_result ;; esac done # Now calculate path; take care to avoid doubling-up slashes. func_stripname '' '/' "$func_relative_path_result" func_relative_path_result=$func_stripname_result func_stripname '/' '/' "$func_relative_path_tcancelled" if test -n "$func_stripname_result"; then func_append func_relative_path_result "/$func_stripname_result" fi # Normalisation. If bindir is libdir, return '.' else relative path. if test -n "$func_relative_path_result"; then func_stripname './' '' "$func_relative_path_result" func_relative_path_result=$func_stripname_result fi test -n "$func_relative_path_result" || func_relative_path_result=. : } # func_quote_for_eval ARG... # -------------------------- # Aesthetically quote ARGs to be evaled later. # This function returns two values: # i) func_quote_for_eval_result # double-quoted, suitable for a subsequent eval # ii) func_quote_for_eval_unquoted_result # has all characters that are still active within double # quotes backslashified. func_quote_for_eval () { $debug_cmd func_quote_for_eval_unquoted_result= func_quote_for_eval_result= while test 0 -lt $#; do case $1 in *[\\\`\"\$]*) _G_unquoted_arg=`printf '%s\n' "$1" |$SED "$sed_quote_subst"` ;; *) _G_unquoted_arg=$1 ;; esac if test -n "$func_quote_for_eval_unquoted_result"; then func_append func_quote_for_eval_unquoted_result " $_G_unquoted_arg" else func_append func_quote_for_eval_unquoted_result "$_G_unquoted_arg" fi case $_G_unquoted_arg in # Double-quote args containing shell metacharacters to delay # word splitting, command substitution and variable expansion # for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") _G_quoted_arg=\"$_G_unquoted_arg\" ;; *) _G_quoted_arg=$_G_unquoted_arg ;; esac if test -n "$func_quote_for_eval_result"; then func_append func_quote_for_eval_result " $_G_quoted_arg" else func_append func_quote_for_eval_result "$_G_quoted_arg" fi shift done } # 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 () { $debug_cmd case $1 in *[\\\`\"]*) _G_arg=`$ECHO "$1" | $SED \ -e "$sed_double_quote_subst" -e "$sed_double_backslash"` ;; *) _G_arg=$1 ;; esac case $_G_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. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") _G_arg=\"$_G_arg\" ;; esac func_quote_for_expand_result=$_G_arg } # func_stripname PREFIX SUFFIX NAME # --------------------------------- # strip PREFIX and SUFFIX from NAME, and store in func_stripname_result. # 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). if test yes = "$_G_HAVE_XSI_OPS"; then eval 'func_stripname () { $debug_cmd # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are # positional parameters, so assign one to ordinary variable first. func_stripname_result=$3 func_stripname_result=${func_stripname_result#"$1"} func_stripname_result=${func_stripname_result%"$2"} }' else func_stripname () { $debug_cmd case $2 in .*) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%\\\\$2\$%%"`;; *) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%$2\$%%"`;; esac } fi # func_show_eval CMD [FAIL_EXP] # ----------------------------- # Unless opt_quiet 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 () { $debug_cmd _G_cmd=$1 _G_fail_exp=${2-':'} func_quote_for_expand "$_G_cmd" eval "func_notquiet $func_quote_for_expand_result" $opt_dry_run || { eval "$_G_cmd" _G_status=$? if test 0 -ne "$_G_status"; then eval "(exit $_G_status); $_G_fail_exp" fi } } # func_show_eval_locale CMD [FAIL_EXP] # ------------------------------------ # Unless opt_quiet 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 () { $debug_cmd _G_cmd=$1 _G_fail_exp=${2-':'} $opt_quiet || { func_quote_for_expand "$_G_cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || { eval "$_G_user_locale $_G_cmd" _G_status=$? eval "$_G_safe_locale" if test 0 -ne "$_G_status"; then eval "(exit $_G_status); $_G_fail_exp" fi } } # func_tr_sh # ---------- # Turn $1 into a string suitable for a shell variable name. # Result is stored in $func_tr_sh_result. All characters # not in the set a-zA-Z0-9_ are replaced with '_'. Further, # if $1 begins with a digit, a '_' is prepended as well. func_tr_sh () { $debug_cmd case $1 in [0-9]* | *[!a-zA-Z0-9_]*) func_tr_sh_result=`$ECHO "$1" | $SED -e 's/^\([0-9]\)/_\1/' -e 's/[^a-zA-Z0-9_]/_/g'` ;; * ) func_tr_sh_result=$1 ;; esac } # func_verbose ARG... # ------------------- # Echo program name prefixed message in verbose mode only. func_verbose () { $debug_cmd $opt_verbose && func_echo "$*" : } # func_warn_and_continue ARG... # ----------------------------- # Echo program name prefixed warning message to standard error. func_warn_and_continue () { $debug_cmd $require_term_colors func_echo_infix_1 "${tc_red}warning$tc_reset" "$*" >&2 } # func_warning CATEGORY ARG... # ---------------------------- # Echo program name prefixed warning message to standard error. Warning # messages can be filtered according to CATEGORY, where this function # elides messages where CATEGORY is not listed in the global variable # 'opt_warning_types'. func_warning () { $debug_cmd # CATEGORY must be in the warning_categories list! case " $warning_categories " in *" $1 "*) ;; *) func_internal_error "invalid warning category '$1'" ;; esac _G_category=$1 shift case " $opt_warning_types " in *" $_G_category "*) $warning_func ${1+"$@"} ;; esac } # func_sort_ver VER1 VER2 # ----------------------- # 'sort -V' is not generally available. # Note this deviates from the version comparison in automake # in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a # but this should suffice as we won't be specifying old # version formats or redundant trailing .0 in bootstrap.conf. # If we did want full compatibility then we should probably # use m4_version_compare from autoconf. func_sort_ver () { $debug_cmd printf '%s\n%s\n' "$1" "$2" \ | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n -k 5,5n -k 6,6n -k 7,7n -k 8,8n -k 9,9n } # func_lt_ver PREV CURR # --------------------- # Return true if PREV and CURR are in the correct order according to # func_sort_ver, otherwise false. Use it like this: # # func_lt_ver "$prev_ver" "$proposed_ver" || func_fatal_error "..." func_lt_ver () { $debug_cmd test "x$1" = x`func_sort_ver "$1" "$2" | $SED 1q` } # Local variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC" # time-stamp-time-zone: "UTC" # End: #! /bin/sh # Set a version string for this script. scriptversion=2014-01-07.03; # UTC # A portable, pluggable option parser for Bourne shell. # Written by Gary V. Vaughan, 2010 # Copyright (C) 2010-2015 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. # 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 3 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, see . # Please report bugs or propose patches to gary@gnu.org. ## ------ ## ## Usage. ## ## ------ ## # This file is a library for parsing options in your shell scripts along # with assorted other useful supporting features that you can make use # of too. # # For the simplest scripts you might need only: # # #!/bin/sh # . relative/path/to/funclib.sh # . relative/path/to/options-parser # scriptversion=1.0 # func_options ${1+"$@"} # eval set dummy "$func_options_result"; shift # ...rest of your script... # # In order for the '--version' option to work, you will need to have a # suitably formatted comment like the one at the top of this file # starting with '# Written by ' and ending with '# warranty; '. # # For '-h' and '--help' to work, you will also need a one line # description of your script's purpose in a comment directly above the # '# Written by ' line, like the one at the top of this file. # # The default options also support '--debug', which will turn on shell # execution tracing (see the comment above debug_cmd below for another # use), and '--verbose' and the func_verbose function to allow your script # to display verbose messages only when your user has specified # '--verbose'. # # After sourcing this file, you can plug processing for additional # options by amending the variables from the 'Configuration' section # below, and following the instructions in the 'Option parsing' # section further down. ## -------------- ## ## Configuration. ## ## -------------- ## # You should override these variables in your script after sourcing this # file so that they reflect the customisations you have added to the # option parser. # The usage line for option parsing errors and the start of '-h' and # '--help' output messages. You can embed shell variables for delayed # expansion at the time the message is displayed, but you will need to # quote other shell meta-characters carefully to prevent them being # expanded when the contents are evaled. usage='$progpath [OPTION]...' # Short help message in response to '-h' and '--help'. Add to this or # override it after sourcing this library to reflect the full set of # options your script accepts. usage_message="\ --debug enable verbose shell tracing -W, --warnings=CATEGORY report the warnings falling in CATEGORY [all] -v, --verbose verbosely report processing --version print version information and exit -h, --help print short or long help message and exit " # Additional text appended to 'usage_message' in response to '--help'. long_help_message=" Warning categories include: 'all' show all warnings 'none' turn off all the warnings 'error' warnings are treated as fatal errors" # Help message printed before fatal option parsing errors. fatal_help="Try '\$progname --help' for more information." ## ------------------------- ## ## Hook function management. ## ## ------------------------- ## # This section contains functions for adding, removing, and running hooks # to the main code. A hook is just a named list of of function, that can # be run in order later on. # func_hookable FUNC_NAME # ----------------------- # Declare that FUNC_NAME will run hooks added with # 'func_add_hook FUNC_NAME ...'. func_hookable () { $debug_cmd func_append hookable_fns " $1" } # func_add_hook FUNC_NAME HOOK_FUNC # --------------------------------- # Request that FUNC_NAME call HOOK_FUNC before it returns. FUNC_NAME must # first have been declared "hookable" by a call to 'func_hookable'. func_add_hook () { $debug_cmd case " $hookable_fns " in *" $1 "*) ;; *) func_fatal_error "'$1' does not accept hook functions." ;; esac eval func_append ${1}_hooks '" $2"' } # func_remove_hook FUNC_NAME HOOK_FUNC # ------------------------------------ # Remove HOOK_FUNC from the list of functions called by FUNC_NAME. func_remove_hook () { $debug_cmd eval ${1}_hooks='`$ECHO "\$'$1'_hooks" |$SED "s| '$2'||"`' } # func_run_hooks FUNC_NAME [ARG]... # --------------------------------- # Run all hook functions registered to FUNC_NAME. # It is assumed that the list of hook functions contains nothing more # than a whitespace-delimited list of legal shell function names, and # no effort is wasted trying to catch shell meta-characters or preserve # whitespace. func_run_hooks () { $debug_cmd case " $hookable_fns " in *" $1 "*) ;; *) func_fatal_error "'$1' does not support hook funcions.n" ;; esac eval _G_hook_fns=\$$1_hooks; shift for _G_hook in $_G_hook_fns; do eval $_G_hook '"$@"' # store returned options list back into positional # parameters for next 'cmd' execution. eval _G_hook_result=\$${_G_hook}_result eval set dummy "$_G_hook_result"; shift done func_quote_for_eval ${1+"$@"} func_run_hooks_result=$func_quote_for_eval_result } ## --------------- ## ## Option parsing. ## ## --------------- ## # In order to add your own option parsing hooks, you must accept the # full positional parameter list in your hook function, remove any # options that you action, and then pass back the remaining unprocessed # options in '_result', escaped suitably for # 'eval'. Like this: # # my_options_prep () # { # $debug_cmd # # # Extend the existing usage message. # usage_message=$usage_message' # -s, --silent don'\''t print informational messages # ' # # func_quote_for_eval ${1+"$@"} # my_options_prep_result=$func_quote_for_eval_result # } # func_add_hook func_options_prep my_options_prep # # # my_silent_option () # { # $debug_cmd # # # Note that for efficiency, we parse as many options as we can # # recognise in a loop before passing the remainder back to the # # caller on the first unrecognised argument we encounter. # while test $# -gt 0; do # opt=$1; shift # case $opt in # --silent|-s) opt_silent=: ;; # # Separate non-argument short options: # -s*) func_split_short_opt "$_G_opt" # set dummy "$func_split_short_opt_name" \ # "-$func_split_short_opt_arg" ${1+"$@"} # shift # ;; # *) set dummy "$_G_opt" "$*"; shift; break ;; # esac # done # # func_quote_for_eval ${1+"$@"} # my_silent_option_result=$func_quote_for_eval_result # } # func_add_hook func_parse_options my_silent_option # # # my_option_validation () # { # $debug_cmd # # $opt_silent && $opt_verbose && func_fatal_help "\ # '--silent' and '--verbose' options are mutually exclusive." # # func_quote_for_eval ${1+"$@"} # my_option_validation_result=$func_quote_for_eval_result # } # func_add_hook func_validate_options my_option_validation # # You'll alse need to manually amend $usage_message to reflect the extra # options you parse. It's preferable to append if you can, so that # multiple option parsing hooks can be added safely. # func_options [ARG]... # --------------------- # All the functions called inside func_options are hookable. See the # individual implementations for details. func_hookable func_options func_options () { $debug_cmd func_options_prep ${1+"$@"} eval func_parse_options \ ${func_options_prep_result+"$func_options_prep_result"} eval func_validate_options \ ${func_parse_options_result+"$func_parse_options_result"} eval func_run_hooks func_options \ ${func_validate_options_result+"$func_validate_options_result"} # save modified positional parameters for caller func_options_result=$func_run_hooks_result } # func_options_prep [ARG]... # -------------------------- # All initialisations required before starting the option parse loop. # Note that when calling hook functions, we pass through the list of # positional parameters. If a hook function modifies that list, and # needs to propogate that back to rest of this script, then the complete # modified list must be put in 'func_run_hooks_result' before # returning. func_hookable func_options_prep func_options_prep () { $debug_cmd # Option defaults: opt_verbose=false opt_warning_types= func_run_hooks func_options_prep ${1+"$@"} # save modified positional parameters for caller func_options_prep_result=$func_run_hooks_result } # func_parse_options [ARG]... # --------------------------- # The main option parsing loop. func_hookable func_parse_options func_parse_options () { $debug_cmd func_parse_options_result= # this just eases exit handling while test $# -gt 0; do # Defer to hook functions for initial option parsing, so they # get priority in the event of reusing an option name. func_run_hooks func_parse_options ${1+"$@"} # Adjust func_parse_options positional parameters to match eval set dummy "$func_run_hooks_result"; shift # Break out of the loop if we already parsed every option. test $# -gt 0 || break _G_opt=$1 shift case $_G_opt in --debug|-x) debug_cmd='set -x' func_echo "enabling shell trace mode" $debug_cmd ;; --no-warnings|--no-warning|--no-warn) set dummy --warnings none ${1+"$@"} shift ;; --warnings|--warning|-W) test $# = 0 && func_missing_arg $_G_opt && break case " $warning_categories $1" in *" $1 "*) # trailing space prevents matching last $1 above func_append_uniq opt_warning_types " $1" ;; *all) opt_warning_types=$warning_categories ;; *none) opt_warning_types=none warning_func=: ;; *error) opt_warning_types=$warning_categories warning_func=func_fatal_error ;; *) func_fatal_error \ "unsupported warning category: '$1'" ;; esac shift ;; --verbose|-v) opt_verbose=: ;; --version) func_version ;; -\?|-h) func_usage ;; --help) func_help ;; # Separate optargs to long options (plugins may need this): --*=*) func_split_equals "$_G_opt" set dummy "$func_split_equals_lhs" \ "$func_split_equals_rhs" ${1+"$@"} shift ;; # Separate optargs to short options: -W*) func_split_short_opt "$_G_opt" set dummy "$func_split_short_opt_name" \ "$func_split_short_opt_arg" ${1+"$@"} shift ;; # Separate non-argument short options: -\?*|-h*|-v*|-x*) func_split_short_opt "$_G_opt" set dummy "$func_split_short_opt_name" \ "-$func_split_short_opt_arg" ${1+"$@"} shift ;; --) break ;; -*) func_fatal_help "unrecognised option: '$_G_opt'" ;; *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;; esac done # save modified positional parameters for caller func_quote_for_eval ${1+"$@"} func_parse_options_result=$func_quote_for_eval_result } # func_validate_options [ARG]... # ------------------------------ # Perform any sanity checks on option settings and/or unconsumed # arguments. func_hookable func_validate_options func_validate_options () { $debug_cmd # Display all warnings if -W was not given. test -n "$opt_warning_types" || opt_warning_types=" $warning_categories" func_run_hooks func_validate_options ${1+"$@"} # Bail if the options were screwed! $exit_cmd $EXIT_FAILURE # save modified positional parameters for caller func_validate_options_result=$func_run_hooks_result } ## ----------------- ## ## Helper functions. ## ## ----------------- ## # This section contains the helper functions used by the rest of the # hookable option parser framework in ascii-betical order. # func_fatal_help ARG... # ---------------------- # Echo program name prefixed message to standard error, followed by # a help hint, and exit. func_fatal_help () { $debug_cmd eval \$ECHO \""Usage: $usage"\" eval \$ECHO \""$fatal_help"\" func_error ${1+"$@"} exit $EXIT_FAILURE } # func_help # --------- # Echo long help message to standard output and exit. func_help () { $debug_cmd func_usage_message $ECHO "$long_help_message" exit 0 } # func_missing_arg ARGNAME # ------------------------ # Echo program name prefixed message to standard error and set global # exit_cmd. func_missing_arg () { $debug_cmd func_error "Missing argument for '$1'." exit_cmd=exit } # func_split_equals STRING # ------------------------ # Set func_split_equals_lhs and func_split_equals_rhs shell variables after # splitting STRING at the '=' sign. test -z "$_G_HAVE_XSI_OPS" \ && (eval 'x=a/b/c; test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ && _G_HAVE_XSI_OPS=yes if test yes = "$_G_HAVE_XSI_OPS" then # This is an XSI compatible shell, allowing a faster implementation... eval 'func_split_equals () { $debug_cmd func_split_equals_lhs=${1%%=*} func_split_equals_rhs=${1#*=} test "x$func_split_equals_lhs" = "x$1" \ && func_split_equals_rhs= }' else # ...otherwise fall back to using expr, which is often a shell builtin. func_split_equals () { $debug_cmd func_split_equals_lhs=`expr "x$1" : 'x\([^=]*\)'` func_split_equals_rhs= test "x$func_split_equals_lhs" = "x$1" \ || func_split_equals_rhs=`expr "x$1" : 'x[^=]*=\(.*\)$'` } fi #func_split_equals # func_split_short_opt SHORTOPT # ----------------------------- # Set func_split_short_opt_name and func_split_short_opt_arg shell # variables after splitting SHORTOPT after the 2nd character. if test yes = "$_G_HAVE_XSI_OPS" then # This is an XSI compatible shell, allowing a faster implementation... eval 'func_split_short_opt () { $debug_cmd func_split_short_opt_arg=${1#??} func_split_short_opt_name=${1%"$func_split_short_opt_arg"} }' else # ...otherwise fall back to using expr, which is often a shell builtin. func_split_short_opt () { $debug_cmd func_split_short_opt_name=`expr "x$1" : 'x-\(.\)'` func_split_short_opt_arg=`expr "x$1" : 'x-.\(.*\)$'` } fi #func_split_short_opt # func_usage # ---------- # Echo short help message to standard output and exit. func_usage () { $debug_cmd func_usage_message $ECHO "Run '$progname --help |${PAGER-more}' for full usage" exit 0 } # func_usage_message # ------------------ # Echo short help message to standard output. func_usage_message () { $debug_cmd eval \$ECHO \""Usage: $usage"\" echo $SED -n 's|^# || /^Written by/{ x;p;x } h /^Written by/q' < "$progpath" echo eval \$ECHO \""$usage_message"\" } # func_version # ------------ # Echo version message to standard output and exit. func_version () { $debug_cmd printf '%s\n' "$progname $scriptversion" $SED -n ' /(C)/!b go :more /\./!{ N s|\n# | | b more } :go /^# Written by /,/# warranty; / { s|^# || s|^# *$|| s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2| p } /^# Written by / { s|^# || p } /^warranty; /q' < "$progpath" exit $? } # Local variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC" # time-stamp-time-zone: "UTC" # End: # Set a version string. scriptversion='(GNU libtool) 2.4.6' # func_echo ARG... # ---------------- # Libtool also displays the current mode in messages, so override # funclib.sh func_echo with this custom definition. func_echo () { $debug_cmd _G_message=$* func_echo_IFS=$IFS IFS=$nl for _G_line in $_G_message; do IFS=$func_echo_IFS $ECHO "$progname${opt_mode+: $opt_mode}: $_G_line" done IFS=$func_echo_IFS } # func_warning ARG... # ------------------- # Libtool warnings are not categorized, so override funclib.sh # func_warning with this simpler definition. func_warning () { $debug_cmd $warning_func ${1+"$@"} } ## ---------------- ## ## Options parsing. ## ## ---------------- ## # Hook in the functions to make sure our own options are parsed during # the option parsing loop. usage='$progpath [OPTION]... [MODE-ARG]...' # Short help message in response to '-h'. usage_message="Options: --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 --no-warnings equivalent to '-Wnone' --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 more informational messages than default --version print version information -W, --warnings=CATEGORY report the warnings falling in CATEGORY [all] -h, --help, --help-all print short, long, or detailed help message " # Additional text appended to 'usage_message' in response to '--help'. func_help () { $debug_cmd func_usage_message $ECHO "$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. When passed as first option, '--mode=MODE' may be abbreviated as 'MODE' or a unique abbreviation of that. 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) version: $progname (GNU libtool) 2.4.6 automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q` autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q` Report bugs to . GNU libtool home page: . General help using GNU software: ." exit 0 } # func_lo2o OBJECT-NAME # --------------------- # Transform OBJECT-NAME from a '.lo' suffix to the platform specific # object suffix. lo2o=s/\\.lo\$/.$objext/ o2lo=s/\\.$objext\$/.lo/ if test yes = "$_G_HAVE_XSI_OPS"; then eval 'func_lo2o () { case $1 in *.lo) func_lo2o_result=${1%.lo}.$objext ;; * ) func_lo2o_result=$1 ;; esac }' # func_xform LIBOBJ-OR-SOURCE # --------------------------- # Transform LIBOBJ-OR-SOURCE from a '.o' or '.c' (or otherwise) # suffix to a '.lo' libtool-object suffix. eval 'func_xform () { func_xform_result=${1%.*}.lo }' else # ...otherwise fall back to using sed. func_lo2o () { func_lo2o_result=`$ECHO "$1" | $SED "$lo2o"` } func_xform () { func_xform_result=`$ECHO "$1" | $SED 's|\.[^.]*$|.lo|'` } fi # func_fatal_configuration ARG... # ------------------------------- # Echo program name prefixed message to standard error, followed by # a configuration failure hint, and exit. func_fatal_configuration () { func__fatal_error ${1+"$@"} \ "See the $PACKAGE documentation for more information." \ "Fatal configuration error." } # func_config # ----------- # Display the configuration for all the tags in this script. func_config () { re_begincf='^# ### BEGIN LIBTOOL' re_endcf='^# ### END LIBTOOL' # Default configuration. $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" # Now print the configurations for the tags. for tagname in $taglist; do $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" done exit $? } # func_features # ------------- # Display the features supported by this script. func_features () { echo "host: $host" if test yes = "$build_libtool_libs"; then echo "enable shared libraries" else echo "disable shared libraries" fi if test yes = "$build_old_libs"; then echo "enable static libraries" else echo "disable static libraries" fi exit $? } # func_enable_tag TAGNAME # ----------------------- # Verify that TAGNAME is valid, and either flag an error and exit, or # enable the TAGNAME tag. We also add TAGNAME to the global $taglist # variable here. func_enable_tag () { # Global variable: tagname=$1 re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" sed_extractcf=/$re_begincf/,/$re_endcf/p # Validate tagname. case $tagname in *[!-_A-Za-z0-9,/]*) func_fatal_error "invalid tag name: $tagname" ;; esac # Don't test for the "default" C tag, as we know it's # there but not specially marked. case $tagname in CC) ;; *) if $GREP "$re_begincf" "$progpath" >/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 } # 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 } # libtool_options_prep [ARG]... # ----------------------------- # Preparation for options parsed by libtool. libtool_options_prep () { $debug_mode # Option defaults: opt_config=false opt_dlopen= opt_dry_run=false opt_help=false opt_mode= opt_preserve_dup_deps=false opt_quiet=false nonopt= preserve_args= # 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 # Pass back the list of options. func_quote_for_eval ${1+"$@"} libtool_options_prep_result=$func_quote_for_eval_result } func_add_hook func_options_prep libtool_options_prep # libtool_parse_options [ARG]... # --------------------------------- # Provide handling for libtool specific options. libtool_parse_options () { $debug_cmd # Perform our own loop to consume as many options as possible in # each iteration. while test $# -gt 0; do _G_opt=$1 shift case $_G_opt in --dry-run|--dryrun|-n) opt_dry_run=: ;; --config) func_config ;; --dlopen|-dlopen) opt_dlopen="${opt_dlopen+$opt_dlopen }$1" shift ;; --preserve-dup-deps) opt_preserve_dup_deps=: ;; --features) func_features ;; --finish) set dummy --mode finish ${1+"$@"}; shift ;; --help) opt_help=: ;; --help-all) opt_help=': help-all' ;; --mode) test $# = 0 && func_missing_arg $_G_opt && break opt_mode=$1 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 $_G_opt" exit_cmd=exit break ;; esac shift ;; --no-silent|--no-quiet) opt_quiet=false func_append preserve_args " $_G_opt" ;; --no-warnings|--no-warning|--no-warn) opt_warning=false func_append preserve_args " $_G_opt" ;; --no-verbose) opt_verbose=false func_append preserve_args " $_G_opt" ;; --silent|--quiet) opt_quiet=: opt_verbose=false func_append preserve_args " $_G_opt" ;; --tag) test $# = 0 && func_missing_arg $_G_opt && break opt_tag=$1 func_append preserve_args " $_G_opt $1" func_enable_tag "$1" shift ;; --verbose|-v) opt_quiet=false opt_verbose=: func_append preserve_args " $_G_opt" ;; # An option not handled by this hook function: *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;; esac done # save modified positional parameters for caller func_quote_for_eval ${1+"$@"} libtool_parse_options_result=$func_quote_for_eval_result } func_add_hook func_parse_options libtool_parse_options # libtool_validate_options [ARG]... # --------------------------------- # Perform any sanity checks on option settings and/or unconsumed # arguments. libtool_validate_options () { # save first non-option argument if test 0 -lt $#; then nonopt=$1 shift fi # preserve --debug test : = "$debug_cmd" || func_append preserve_args " --debug" case $host in # Solaris2 added to fix http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16452 # see also: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59788 *cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2* | *os2*) # don't eliminate duplications in $postdeps and $predeps opt_duplicate_compiler_generated_deps=: ;; *) opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps ;; esac $opt_help || { # Sanity checks first: func_check_version_match test yes != "$build_libtool_libs" \ && test yes != "$build_old_libs" \ && func_fatal_configuration "not configured to build any kind of library" # Darwin sucks eval std_shrext=\"$shrext_cmds\" # Only execute mode is allowed to have -dlopen flags. if test -n "$opt_dlopen" && test execute != "$opt_mode"; 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=$opt_mode' for more information." } # Pass back the unparsed argument list func_quote_for_eval ${1+"$@"} libtool_validate_options_result=$func_quote_for_eval_result } func_add_hook func_validate_options libtool_validate_options # Process options as early as possible so that --help and --version # can return quickly. func_options ${1+"$@"} eval set dummy "$func_options_result"; shift ## ----------- ## ## Main. ## ## ----------- ## magic='%%%MAGIC variable%%%' magic_exe='%%%MAGIC EXE variable%%%' # Global variables. extracted_archives= extracted_serial=0 # If this variable is set in any of the actions, the command in it # will be execed at the end. This prevents here-documents from being # left over by shells. exec_cmd= # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $1 _LTECHO_EOF' } # func_generated_by_libtool # True iff stdin has been generated by Libtool. This function is only # a basic sanity check; it will hardly flush out determined imposters. func_generated_by_libtool_p () { $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 } # 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 | func_generated_by_libtool_p } # 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 yes = "$lalib_p" } # 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 () { test -f "$1" && $lt_truncate_bin < "$1" 2>/dev/null | func_generated_by_libtool_p } # 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_dirname_and_basename "$1" "" "." func_stripname '' '.exe' "$func_basename_result" func_ltwrapper_scriptname_result=$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper } # 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 () { $debug_cmd save_ifs=$IFS; IFS='~' for cmd in $1; do IFS=$sp$nl eval cmd=\"$cmd\" IFS=$save_ifs 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 () { $debug_cmd case $1 in */* | *\\*) . "$1" ;; *) . "./$1" ;; esac } # func_resolve_sysroot PATH # Replace a leading = in PATH with a sysroot. Store the result into # func_resolve_sysroot_result func_resolve_sysroot () { func_resolve_sysroot_result=$1 case $func_resolve_sysroot_result in =*) func_stripname '=' '' "$func_resolve_sysroot_result" func_resolve_sysroot_result=$lt_sysroot$func_stripname_result ;; esac } # func_replace_sysroot PATH # If PATH begins with the sysroot, replace it with = and # store the result into func_replace_sysroot_result. func_replace_sysroot () { case $lt_sysroot:$1 in ?*:"$lt_sysroot"*) func_stripname "$lt_sysroot" '' "$1" func_replace_sysroot_result='='$func_stripname_result ;; *) # Including no sysroot. func_replace_sysroot_result=$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 () { $debug_cmd if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do func_append_quoted CC_quoted "$arg" done CC_expanded=`func_echo_all $CC` CC_quoted_expanded=`func_echo_all $CC_quoted` 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 "* | " $CC_expanded "* | "$CC_expanded "* | \ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; # 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_append_quoted CC_quoted "$arg" done CC_expanded=`func_echo_all $CC` CC_quoted_expanded=`func_echo_all $CC_quoted` case "$@ " in " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) # 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 yes = "$build_libtool_libs"; then write_lobj=\'$2\' else write_lobj=none fi if test yes = "$build_old_libs"; then write_oldobj=\'$3\' else write_oldobj=none fi $opt_dry_run || { cat >${write_libobj}T </dev/null` if test "$?" -eq 0 && test -n "$func_convert_core_file_wine_to_w32_tmp"; then func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | $SED -e "$sed_naive_backslashify"` else func_convert_core_file_wine_to_w32_result= fi fi } # end: func_convert_core_file_wine_to_w32 # func_convert_core_path_wine_to_w32 ARG # Helper function used by path conversion functions when $build is *nix, and # $host is mingw, cygwin, or some other w32 environment. Relies on a correctly # configured wine environment available, with the winepath program in $build's # $PATH. Assumes ARG has no leading or trailing path separator characters. # # ARG is path to be converted from $build format to win32. # Result is available in $func_convert_core_path_wine_to_w32_result. # Unconvertible file (directory) names in ARG are skipped; if no directory names # are convertible, then the result may be empty. func_convert_core_path_wine_to_w32 () { $debug_cmd # unfortunately, winepath doesn't convert paths, only file names func_convert_core_path_wine_to_w32_result= if test -n "$1"; then oldIFS=$IFS IFS=: for func_convert_core_path_wine_to_w32_f in $1; do IFS=$oldIFS func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" if test -n "$func_convert_core_file_wine_to_w32_result"; then if test -z "$func_convert_core_path_wine_to_w32_result"; then func_convert_core_path_wine_to_w32_result=$func_convert_core_file_wine_to_w32_result else func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" fi fi done IFS=$oldIFS fi } # end: func_convert_core_path_wine_to_w32 # func_cygpath ARGS... # Wrapper around calling the cygpath program via LT_CYGPATH. This is used when # when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) # $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or # (2), returns the Cygwin file name or path in func_cygpath_result (input # file name or path is assumed to be in w32 format, as previously converted # from $build's *nix or MSYS format). In case (3), returns the w32 file name # or path in func_cygpath_result (input file name or path is assumed to be in # Cygwin format). Returns an empty string on error. # # ARGS are passed to cygpath, with the last one being the file name or path to # be converted. # # Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH # environment variable; do not put it in $PATH. func_cygpath () { $debug_cmd if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` if test "$?" -ne 0; then # on failure, ensure result is empty func_cygpath_result= fi else func_cygpath_result= func_error "LT_CYGPATH is empty or specifies non-existent file: '$LT_CYGPATH'" fi } #end: func_cygpath # func_convert_core_msys_to_w32 ARG # Convert file name or path ARG from MSYS format to w32 format. Return # result in func_convert_core_msys_to_w32_result. func_convert_core_msys_to_w32 () { $debug_cmd # awkward: cmd appends spaces to result func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | $SED -e 's/[ ]*$//' -e "$sed_naive_backslashify"` } #end: func_convert_core_msys_to_w32 # func_convert_file_check ARG1 ARG2 # Verify that ARG1 (a file name in $build format) was converted to $host # format in ARG2. Otherwise, emit an error message, but continue (resetting # func_to_host_file_result to ARG1). func_convert_file_check () { $debug_cmd if test -z "$2" && test -n "$1"; then func_error "Could not determine host file name corresponding to" func_error " '$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback: func_to_host_file_result=$1 fi } # end func_convert_file_check # func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH # Verify that FROM_PATH (a path in $build format) was converted to $host # format in TO_PATH. Otherwise, emit an error message, but continue, resetting # func_to_host_file_result to a simplistic fallback value (see below). func_convert_path_check () { $debug_cmd if test -z "$4" && test -n "$3"; then func_error "Could not determine the host path corresponding to" func_error " '$3'" func_error "Continuing, but uninstalled executables may not work." # Fallback. This is a deliberately simplistic "conversion" and # should not be "improved". See libtool.info. if test "x$1" != "x$2"; then lt_replace_pathsep_chars="s|$1|$2|g" func_to_host_path_result=`echo "$3" | $SED -e "$lt_replace_pathsep_chars"` else func_to_host_path_result=$3 fi fi } # end func_convert_path_check # func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG # Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT # and appending REPL if ORIG matches BACKPAT. func_convert_path_front_back_pathsep () { $debug_cmd case $4 in $1 ) func_to_host_path_result=$3$func_to_host_path_result ;; esac case $4 in $2 ) func_append func_to_host_path_result "$3" ;; esac } # end func_convert_path_front_back_pathsep ################################################## # $build to $host FILE NAME CONVERSION FUNCTIONS # ################################################## # invoked via '$to_host_file_cmd ARG' # # In each case, ARG is the path to be converted from $build to $host format. # Result will be available in $func_to_host_file_result. # func_to_host_file ARG # Converts the file name ARG from $build format to $host format. Return result # in func_to_host_file_result. func_to_host_file () { $debug_cmd $to_host_file_cmd "$1" } # end func_to_host_file # func_to_tool_file ARG LAZY # converts the file name ARG from $build format to toolchain format. Return # result in func_to_tool_file_result. If the conversion in use is listed # in (the comma separated) LAZY, no conversion takes place. func_to_tool_file () { $debug_cmd case ,$2, in *,"$to_tool_file_cmd",*) func_to_tool_file_result=$1 ;; *) $to_tool_file_cmd "$1" func_to_tool_file_result=$func_to_host_file_result ;; esac } # end func_to_tool_file # func_convert_file_noop ARG # Copy ARG to func_to_host_file_result. func_convert_file_noop () { func_to_host_file_result=$1 } # end func_convert_file_noop # func_convert_file_msys_to_w32 ARG # Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic # conversion to w32 is not available inside the cwrapper. Returns result in # func_to_host_file_result. func_convert_file_msys_to_w32 () { $debug_cmd func_to_host_file_result=$1 if test -n "$1"; then func_convert_core_msys_to_w32 "$1" func_to_host_file_result=$func_convert_core_msys_to_w32_result fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_msys_to_w32 # func_convert_file_cygwin_to_w32 ARG # Convert file name ARG from Cygwin to w32 format. Returns result in # func_to_host_file_result. func_convert_file_cygwin_to_w32 () { $debug_cmd func_to_host_file_result=$1 if test -n "$1"; then # because $build is cygwin, we call "the" cygpath in $PATH; no need to use # LT_CYGPATH in this case. func_to_host_file_result=`cygpath -m "$1"` fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_cygwin_to_w32 # func_convert_file_nix_to_w32 ARG # Convert file name ARG from *nix to w32 format. Requires a wine environment # and a working winepath. Returns result in func_to_host_file_result. func_convert_file_nix_to_w32 () { $debug_cmd func_to_host_file_result=$1 if test -n "$1"; then func_convert_core_file_wine_to_w32 "$1" func_to_host_file_result=$func_convert_core_file_wine_to_w32_result fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_nix_to_w32 # func_convert_file_msys_to_cygwin ARG # Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. # Returns result in func_to_host_file_result. func_convert_file_msys_to_cygwin () { $debug_cmd func_to_host_file_result=$1 if test -n "$1"; then func_convert_core_msys_to_w32 "$1" func_cygpath -u "$func_convert_core_msys_to_w32_result" func_to_host_file_result=$func_cygpath_result fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_msys_to_cygwin # func_convert_file_nix_to_cygwin ARG # Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed # in a wine environment, working winepath, and LT_CYGPATH set. Returns result # in func_to_host_file_result. func_convert_file_nix_to_cygwin () { $debug_cmd func_to_host_file_result=$1 if test -n "$1"; then # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. func_convert_core_file_wine_to_w32 "$1" func_cygpath -u "$func_convert_core_file_wine_to_w32_result" func_to_host_file_result=$func_cygpath_result fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_nix_to_cygwin ############################################# # $build to $host PATH CONVERSION FUNCTIONS # ############################################# # invoked via '$to_host_path_cmd ARG' # # In each case, ARG is the path to be converted from $build to $host format. # The result will be available in $func_to_host_path_result. # # 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. # # All path conversion functions are named using the following convention: # file name conversion function : func_convert_file_X_to_Y () # path conversion function : func_convert_path_X_to_Y () # where, for any given $build/$host combination the 'X_to_Y' value is the # same. If conversion functions are added for new $build/$host combinations, # the two new functions must follow this pattern, or func_init_to_host_path_cmd # will break. # func_init_to_host_path_cmd # Ensures that function "pointer" variable $to_host_path_cmd is set to the # appropriate value, based on the value of $to_host_file_cmd. to_host_path_cmd= func_init_to_host_path_cmd () { $debug_cmd if test -z "$to_host_path_cmd"; then func_stripname 'func_convert_file_' '' "$to_host_file_cmd" to_host_path_cmd=func_convert_path_$func_stripname_result fi } # func_to_host_path ARG # Converts the path ARG from $build format to $host format. Return result # in func_to_host_path_result. func_to_host_path () { $debug_cmd func_init_to_host_path_cmd $to_host_path_cmd "$1" } # end func_to_host_path # func_convert_path_noop ARG # Copy ARG to func_to_host_path_result. func_convert_path_noop () { func_to_host_path_result=$1 } # end func_convert_path_noop # func_convert_path_msys_to_w32 ARG # Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic # conversion to w32 is not available inside the cwrapper. Returns result in # func_to_host_path_result. func_convert_path_msys_to_w32 () { $debug_cmd func_to_host_path_result=$1 if test -n "$1"; then # 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_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" func_to_host_path_result=$func_convert_core_msys_to_w32_result func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_msys_to_w32 # func_convert_path_cygwin_to_w32 ARG # Convert path ARG from Cygwin to w32 format. Returns result in # func_to_host_file_result. func_convert_path_cygwin_to_w32 () { $debug_cmd func_to_host_path_result=$1 if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_cygwin_to_w32 # func_convert_path_nix_to_w32 ARG # Convert path ARG from *nix to w32 format. Requires a wine environment and # a working winepath. Returns result in func_to_host_file_result. func_convert_path_nix_to_w32 () { $debug_cmd func_to_host_path_result=$1 if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" func_to_host_path_result=$func_convert_core_path_wine_to_w32_result func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_nix_to_w32 # func_convert_path_msys_to_cygwin ARG # Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. # Returns result in func_to_host_file_result. func_convert_path_msys_to_cygwin () { $debug_cmd func_to_host_path_result=$1 if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" func_cygpath -u -p "$func_convert_core_msys_to_w32_result" func_to_host_path_result=$func_cygpath_result func_convert_path_check : : \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" : "$1" fi } # end func_convert_path_msys_to_cygwin # func_convert_path_nix_to_cygwin ARG # Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a # a wine environment, working winepath, and LT_CYGPATH set. Returns result in # func_to_host_file_result. func_convert_path_nix_to_cygwin () { $debug_cmd func_to_host_path_result=$1 if test -n "$1"; then # 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_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" func_to_host_path_result=$func_cygpath_result func_convert_path_check : : \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" : "$1" fi } # end func_convert_path_nix_to_cygwin # func_dll_def_p FILE # True iff FILE is a Windows DLL '.def' file. # Keep in sync with _LT_DLL_DEF_P in libtool.m4 func_dll_def_p () { $debug_cmd func_dll_def_p_tmp=`$SED -n \ -e 's/^[ ]*//' \ -e '/^\(;.*\)*$/d' \ -e 's/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p' \ -e q \ "$1"` test DEF = "$func_dll_def_p_tmp" } # func_mode_compile arg... func_mode_compile () { $debug_cmd # Get the compilation command and the source file. base_compile= srcfile=$nonopt # always keep a non-empty value in "srcfile" suppress_opt=yes suppress_output= arg_mode=normal libobj= later= pie_flag= for arg do case $arg_mode in arg ) # do not "continue". Instead, add this to base_compile lastarg=$arg arg_mode=normal ;; target ) libobj=$arg arg_mode=normal continue ;; normal ) # Accept any command-line options. case $arg in -o) test -n "$libobj" && \ func_fatal_error "you cannot specify '-o' more than once" arg_mode=target continue ;; -pie | -fpie | -fPIE) func_append pie_flag " $arg" continue ;; -shared | -static | -prefer-pic | -prefer-non-pic) func_append later " $arg" continue ;; -no-suppress) suppress_opt=no continue ;; -Xcompiler) arg_mode=arg # the next one goes into the "base_compile" arg list continue # The current "srcfile" will either be retained or ;; # replaced later. I would guess that would be a bug. -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result lastarg= save_ifs=$IFS; IFS=, for arg in $args; do IFS=$save_ifs func_append_quoted lastarg "$arg" done IFS=$save_ifs func_stripname ' ' '' "$lastarg" lastarg=$func_stripname_result # Add the arguments to base_compile. func_append base_compile " $lastarg" continue ;; *) # Accept the current argument as the source file. # The previous "srcfile" becomes the current argument. # lastarg=$srcfile srcfile=$arg ;; esac # case $arg ;; esac # case $arg_mode # Aesthetically quote the previous argument. func_append_quoted base_compile "$lastarg" done # for arg case $arg_mode in arg) func_fatal_error "you must specify an argument for -Xcompile" ;; target) func_fatal_error "you must specify a target with '-o'" ;; *) # Get the name of the library object. test -z "$libobj" && { func_basename "$srcfile" libobj=$func_basename_result } ;; esac # Recognize several different file suffixes. # If the user specifies -o file.o, it is replaced with file.lo case $libobj in *.[cCFSifmso] | \ *.ada | *.adb | *.ads | *.asm | \ *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) func_xform "$libobj" libobj=$func_xform_result ;; esac case $libobj in *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; *) func_fatal_error "cannot determine name of library object from '$libobj'" ;; esac func_infer_tag $base_compile for arg in $later; do case $arg in -shared) test yes = "$build_libtool_libs" \ || func_fatal_configuration "cannot build a shared library" build_old_libs=no continue ;; -static) build_libtool_libs=no build_old_libs=yes continue ;; -prefer-pic) pic_mode=yes continue ;; -prefer-non-pic) pic_mode=no continue ;; esac done func_quote_for_eval "$libobj" test "X$libobj" != "X$func_quote_for_eval_result" \ && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ && 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 yes = "$build_old_libs"; 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 no = "$pic_mode" && test pass_all != "$deplibs_check_method"; 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 no = "$compiler_c_o"; then output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; 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 yes = "$need_locks"; 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 warn = "$need_locks"; 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 func_append removelist " $output_obj" $ECHO "$srcfile" > "$lockfile" fi $opt_dry_run || $RM $removelist func_append removelist " $lockfile" trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 srcfile=$func_to_tool_file_result func_quote_for_eval "$srcfile" qsrcfile=$func_quote_for_eval_result # Only build a PIC object if we are building libtool libraries. if test yes = "$build_libtool_libs"; then # Without this assignment, base_compile gets emptied. fbsd_hideous_sh_bug=$base_compile if test no != "$pic_mode"; 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 func_append command " -o $lobj" fi func_show_eval_locale "$command" \ 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' if test warn = "$need_locks" && 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 yes = "$suppress_opt"; then suppress_output=' >/dev/null 2>&1' fi fi # Only build a position-dependent object if we build old libraries. if test yes = "$build_old_libs"; then if test yes != "$pic_mode"; then # Don't build PIC code command="$base_compile $qsrcfile$pie_flag" else command="$base_compile $qsrcfile $pic_flag" fi if test yes = "$compiler_c_o"; then func_append command " -o $obj" fi # Suppress compiler output if we already did a PIC compilation. func_append command "$suppress_output" func_show_eval_locale "$command" \ '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' if test warn = "$need_locks" && 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 no != "$need_locks"; then removelist=$lockfile $RM "$lockfile" fi } exit $EXIT_SUCCESS } $opt_help || { test compile = "$opt_mode" && func_mode_compile ${1+"$@"} } func_mode_help () { # We need to display help for each of the modes. case $opt_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 build PIC objects only -prefer-non-pic try to build 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 -Wc,FLAG pass FLAG directly to the compiler 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-dir 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 -bindir BINDIR specify path to binaries directory (for systems where libraries must be found in the PATH setting at runtime) -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 -os2dllname NAME force a short DLL name on OS/2 (no effect on other OSes) -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 -Wc,FLAG -Xcompiler FLAG pass linker-specific FLAG directly to the compiler -Wl,FLAG -Xlinker FLAG pass linker-specific FLAG directly to the linker -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) 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 '$opt_mode'" ;; esac echo $ECHO "Try '$progname --help' for more information about other modes." } # Now that we've collected a possible --mode arg, show help if necessary if $opt_help; then if test : = "$opt_help"; then func_mode_help else { func_help noexit for opt_mode in compile link execute install finish uninstall clean; do func_mode_help done } | $SED -n '1p; 2,$s/^Usage:/ or: /p' { func_help noexit for opt_mode in compile link execute install finish uninstall clean; do echo func_mode_help done } | $SED '1d /^When reporting/,/^Report/{ H d } $x /information about other modes/d /more detailed .*MODE/d s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' fi exit $? fi # func_mode_execute arg... func_mode_execute () { $debug_cmd # 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 $opt_dlopen; do test -f "$file" \ || func_fatal_help "'$file' is not a file" dir= case $file in *.la) func_resolve_sysroot "$file" file=$func_resolve_sysroot_result # 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 func_append 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 -* | *.la | *.lo ) ;; *) # 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_append_quoted args "$file" done if $opt_dry_run; then # 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 else 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 fi } test execute = "$opt_mode" && func_mode_execute ${1+"$@"} # func_mode_finish arg... func_mode_finish () { $debug_cmd libs= libdirs= admincmds= for opt in "$nonopt" ${1+"$@"} do if test -d "$opt"; then func_append libdirs " $opt" elif test -f "$opt"; then if func_lalib_unsafe_p "$opt"; then func_append libs " $opt" else func_warning "'$opt' is not a valid libtool archive" fi else func_fatal_error "invalid argument '$opt'" fi done if test -n "$libs"; then if test -n "$lt_sysroot"; then sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" else sysroot_cmd= fi # Remove sysroot references if $opt_dry_run; then for lib in $libs; do echo "removing references to $lt_sysroot and '=' prefixes from $lib" done else tmpdir=`func_mktempdir` for lib in $libs; do $SED -e "$sysroot_cmd s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ > $tmpdir/tmp-la mv -f $tmpdir/tmp-la $lib done ${RM}r "$tmpdir" fi fi if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then 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" || func_append admincmds " $cmds" fi done fi # Exit here if they wanted silent mode. $opt_quiet && exit $EXIT_SUCCESS if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then echo "----------------------------------------------------------------------" echo "Libraries have been installed in:" for libdir in $libdirs; do $ECHO " $libdir" done echo echo "If you ever happen to want to link against installed libraries" echo "in a given directory, LIBDIR, you must either use libtool, and" echo "specify the full pathname of the library, or use the '-LLIBDIR'" echo "flag during linking and do at least one of the following:" if test -n "$shlibpath_var"; then echo " - add LIBDIR to the '$shlibpath_var' environment variable" echo " during execution" fi if test -n "$runpath_var"; then echo " - add LIBDIR to the '$runpath_var' environment variable" echo " during linking" fi if test -n "$hardcode_libdir_flag_spec"; then libdir=LIBDIR eval flag=\"$hardcode_libdir_flag_spec\" $ECHO " - use the '$flag' linker flag" fi if test -n "$admincmds"; then $ECHO " - have your system administrator run these commands:$admincmds" fi if test -f /etc/ld.so.conf; then echo " - have your system administrator add LIBDIR to '/etc/ld.so.conf'" fi echo echo "See any operating system documentation about shared libraries for" 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 "----------------------------------------------------------------------" fi exit $EXIT_SUCCESS } test finish = "$opt_mode" && func_mode_finish ${1+"$@"} # func_mode_install arg... func_mode_install () { $debug_cmd # There may be an optional sh(1) argument at the beginning of # install_prog (especially on Windows NT). if test "$SHELL" = "$nonopt" || test /bin/sh = "$nonopt" || # Allow the use of GNU shtool's install command. case $nonopt in *shtool*) :;; *) false;; esac 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" func_append install_prog "$func_quote_for_eval_result" install_shared_prog=$install_prog case " $install_prog " in *[\\\ /]cp\ *) install_cp=: ;; *) install_cp=false ;; esac # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=false stripme= no_mode=: for arg do arg2= if test -n "$dest"; then func_append files " $dest" dest=$arg continue fi case $arg in -d) isdir=: ;; -f) if $install_cp; then :; else prev=$arg fi ;; -g | -m | -o) prev=$arg ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then if test X-m = "X$prev" && test -n "$install_override_mode"; then arg2=$install_override_mode no_mode=false fi prev= else dest=$arg continue fi ;; esac # Aesthetically quote the argument. func_quote_for_eval "$arg" func_append install_prog " $func_quote_for_eval_result" if test -n "$arg2"; then func_quote_for_eval "$arg2" fi func_append install_shared_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 -n "$install_override_mode" && $no_mode; then if $install_cp; then :; else func_quote_for_eval "$install_override_mode" func_append install_shared_prog " -m $func_quote_for_eval_result" fi fi 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=: if $isdir; 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. func_append staticlibs " $file" ;; *.la) func_resolve_sysroot "$file" file=$func_resolve_sysroot_result # 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 "*) ;; *) func_append current_libdirs " $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) func_append future_libdirs " $libdir" ;; esac fi func_dirname "$file" "/" "" dir=$func_dirname_result func_append dir "$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. inst_prefix_dir=`$ECHO "$destdir" | $SED -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 "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` fi 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_shared_prog $dir/$srcname $destdir/$realname" \ 'exit $?' tstripme=$stripme case $host_os in cygwin* | mingw* | pw32* | cegcc*) case $realname in *.dll.a) tstripme= ;; esac ;; os2*) 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" && func_append 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 yes = "$build_old_libs"; 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=: 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 "$lib" | $SED 's%^.*/%%g'` if test -n "$libdir" && test ! -f "$libfile"; then func_warning "'$lib' has not been installed in '$libdir'" finalize=false fi done relink_command= func_source "$wrapper" outputname= if test no = "$fast_install" && test -n "$relink_command"; then $opt_dry_run || { if $finalize; then tmpdir=`func_mktempdir` func_basename "$file$stripped_ext" file=$func_basename_result outputname=$tmpdir/$file # Replace the output file specification. relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` $opt_quiet || { 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 "$file$stripped_ext" | $SED "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_to_tool_file "$oldlib" func_convert_file_msys_to_w32 tool_oldlib=$func_to_tool_file_result func_show_eval "$install_prog \$file \$oldlib" 'exit $?' if test -n "$stripme" && test -n "$old_striplib"; then func_show_eval "$old_striplib $tool_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 install = "$opt_mode" && 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 () { $debug_cmd my_outputname=$1 my_originator=$2 my_pic_p=${3-false} my_prefix=`$ECHO "$my_originator" | $SED 's%[^a-zA-Z0-9]%_%g'` my_dlsyms= if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; 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) $VERSION */ #ifdef __cplusplus extern \"C\" { #endif #if defined __GNUC__ && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) #pragma GCC diagnostic ignored \"-Wstrict-prototypes\" #endif /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE /* DATA imports from DLLs on WIN32 can't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT_DLSYM_CONST #elif defined __osf__ /* This system does not cope well with relocations in const data. */ # define LT_DLSYM_CONST #else # define LT_DLSYM_CONST const #endif #define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0) /* External symbol declarations for the compiler. */\ " if test yes = "$dlself"; 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 "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` for progfile in $progfiles; do func_to_tool_file "$progfile" func_convert_file_msys_to_w32 func_verbose "extracting global C symbols from '$func_to_tool_file_result'" $opt_dry_run || eval "$NM $func_to_tool_file_result | $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 case $host in *cygwin* | *mingw* | *cegcc* ) # if an import library, we need to obtain dlname if func_win32_import_lib_p "$dlprefile"; then func_tr_sh "$dlprefile" eval "curr_lafile=\$libfile_$func_tr_sh_result" dlprefile_dlbasename= if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then # Use subshell, to avoid clobbering current variable values dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` if test -n "$dlprefile_dlname"; then func_basename "$dlprefile_dlname" dlprefile_dlbasename=$func_basename_result else # no lafile. user explicitly requested -dlpreopen . $sharedlib_from_linklib_cmd "$dlprefile" dlprefile_dlbasename=$sharedlib_from_linklib_result fi fi $opt_dry_run || { if test -n "$dlprefile_dlbasename"; then eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' else func_warning "Could not compute DLL name from $name" eval '$ECHO ": $name " >> "$nlist"' fi func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" } else # not an import lib $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" } fi ;; *) $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" } ;; esac 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 func_show_eval '$RM "${nlist}I"' if test -n "$global_symbol_to_import"; then eval "$global_symbol_to_import"' < "$nlist"S > "$nlist"I' fi echo >> "$output_objdir/$my_dlsyms" "\ /* The mapping between symbol names and symbols. */ typedef struct { const char *name; void *address; } lt_dlsymlist; extern LT_DLSYM_CONST lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[];\ " if test -s "$nlist"I; then echo >> "$output_objdir/$my_dlsyms" "\ static void lt_syminit(void) { LT_DLSYM_CONST lt_dlsymlist *symbol = lt_${my_prefix}_LTX_preloaded_symbols; for (; symbol->name; ++symbol) {" $SED 's/.*/ if (STREQ (symbol->name, \"&\")) symbol->address = (void *) \&&;/' < "$nlist"I >> "$output_objdir/$my_dlsyms" echo >> "$output_objdir/$my_dlsyms" "\ } }" fi echo >> "$output_objdir/$my_dlsyms" "\ LT_DLSYM_CONST lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[] = { {\"$my_originator\", (void *) 0}," if test -s "$nlist"I; then echo >> "$output_objdir/$my_dlsyms" "\ {\"@INIT@\", (void *) <_syminit}," fi 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" ;; *) $my_pic_p && pic_flag_for_symtable=" $pic_flag" ;; esac ;; esac symtab_cflags= for arg in $LTCFLAGS; do case $arg in -pie | -fpie | -fPIE) ;; *) func_append 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" "${nlist}I"' # 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 "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` else compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` fi ;; *) compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "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 "$compile_command" | $SED "s% @SYMFILE@%%"` finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` fi } # func_cygming_gnu_implib_p ARG # This predicate returns with zero status (TRUE) if # ARG is a GNU/binutils-style import library. Returns # with nonzero status (FALSE) otherwise. func_cygming_gnu_implib_p () { $debug_cmd func_to_tool_file "$1" func_convert_file_msys_to_w32 func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` test -n "$func_cygming_gnu_implib_tmp" } # func_cygming_ms_implib_p ARG # This predicate returns with zero status (TRUE) if # ARG is an MS-style import library. Returns # with nonzero status (FALSE) otherwise. func_cygming_ms_implib_p () { $debug_cmd func_to_tool_file "$1" func_convert_file_msys_to_w32 func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` test -n "$func_cygming_ms_implib_tmp" } # 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. # Despite the name, also deal with 64 bit binaries. func_win32_libid () { $debug_cmd 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 # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then case $nm_interface in "MS dumpbin") if func_cygming_ms_implib_p "$1" || func_cygming_gnu_implib_p "$1" then win32_nmres=import else win32_nmres= fi ;; *) func_to_tool_file "$1" func_convert_file_msys_to_w32 win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | $SED -n -e ' 1,100{ / I /{ s|.*|import| p q } }'` ;; esac 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_cygming_dll_for_implib ARG # # Platform-specific function to extract the # name of the DLL associated with the specified # import library ARG. # Invoked by eval'ing the libtool variable # $sharedlib_from_linklib_cmd # Result is available in the variable # $sharedlib_from_linklib_result func_cygming_dll_for_implib () { $debug_cmd sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` } # func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs # # The is the core of a fallback implementation of a # platform-specific function to extract the name of the # DLL associated with the specified import library LIBNAME. # # SECTION_NAME is either .idata$6 or .idata$7, depending # on the platform and compiler that created the implib. # # Echos the name of the DLL associated with the # specified import library. func_cygming_dll_for_implib_fallback_core () { $debug_cmd match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` $OBJDUMP -s --section "$1" "$2" 2>/dev/null | $SED '/^Contents of section '"$match_literal"':/{ # Place marker at beginning of archive member dllname section s/.*/====MARK====/ p d } # These lines can sometimes be longer than 43 characters, but # are always uninteresting /:[ ]*file format pe[i]\{,1\}-/d /^In archive [^:]*:/d # Ensure marker is printed /^====MARK====/p # Remove all lines with less than 43 characters /^.\{43\}/!d # From remaining lines, remove first 43 characters s/^.\{43\}//' | $SED -n ' # Join marker and all lines until next marker into a single line /^====MARK====/ b para H $ b para b :para x s/\n//g # Remove the marker s/^====MARK====// # Remove trailing dots and whitespace s/[\. \t]*$// # Print /./p' | # we now have a list, one entry per line, of the stringified # contents of the appropriate section of all members of the # archive that possess that section. Heuristic: eliminate # all those that have a first or second character that is # a '.' (that is, objdump's representation of an unprintable # character.) This should work for all archives with less than # 0x302f exports -- but will fail for DLLs whose name actually # begins with a literal '.' or a single character followed by # a '.'. # # Of those that remain, print the first one. $SED -e '/^\./d;/^.\./d;q' } # func_cygming_dll_for_implib_fallback ARG # Platform-specific function to extract the # name of the DLL associated with the specified # import library ARG. # # This fallback implementation is for use when $DLLTOOL # does not support the --identify-strict option. # Invoked by eval'ing the libtool variable # $sharedlib_from_linklib_cmd # Result is available in the variable # $sharedlib_from_linklib_result func_cygming_dll_for_implib_fallback () { $debug_cmd if func_cygming_gnu_implib_p "$1"; then # binutils import library sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` elif func_cygming_ms_implib_p "$1"; then # ms-generated import library sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` else # unknown sharedlib_from_linklib_result= fi } # func_extract_an_archive dir oldlib func_extract_an_archive () { $debug_cmd f_ex_an_ar_dir=$1; shift f_ex_an_ar_oldlib=$1 if test yes = "$lock_old_archive_extraction"; then lockfile=$f_ex_an_ar_oldlib.lock until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done fi func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ 'stat=$?; rm -f "$lockfile"; exit $stat' if test yes = "$lock_old_archive_extraction"; then $opt_dry_run || rm -f "$lockfile" fi 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 () { $debug_cmd 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` func_basename "$darwin_archive" darwin_base_archive=$func_basename_result 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 "$sed_basename" | sort -u` darwin_file= darwin_files= for darwin_file in $darwin_filelist; do darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $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 | sort | $NL2SP` done func_extract_archives_result=$my_oldobjs } # 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 where it is stored is # the $objdir directory. This is a cygwin/mingw-specific # behavior. func_emit_wrapper () { func_emit_wrapper_arg1=${1-no} $ECHO "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname # Generated by $PROGRAM (GNU $PACKAGE) $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. 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 file=\"\$0\"" qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` $ECHO "\ # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$1 _LTECHO_EOF' } ECHO=\"$qECHO\" fi # Very basic option parsing. These options are (a) specific to # the libtool wrapper, (b) are identical between the wrapper # /script/ and the wrapper /executable/ that is used only on # windows platforms, and (c) all begin with the string "--lt-" # (application programs are unlikely to have options that match # this pattern). # # There are only two supported options: --lt-debug and # --lt-dump-script. There is, deliberately, no --lt-help. # # The first argument to this parsing function should be the # script's $0 value, followed by "$@". lt_option_debug= func_parse_lt_options () { lt_script_arg0=\$0 shift for lt_opt do case \"\$lt_opt\" in --lt-debug) lt_option_debug=1 ;; --lt-dump-script) lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` cat \"\$lt_dump_D/\$lt_dump_F\" exit 0 ;; --lt-*) \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 exit 1 ;; esac done # Print the debug banner immediately: if test -n \"\$lt_option_debug\"; then echo \"$outputname:$output:\$LINENO: libtool wrapper (GNU $PACKAGE) $VERSION\" 1>&2 fi } # Used when --lt-debug. Prints its arguments to stdout # (redirection is the responsibility of the caller) func_lt_dump_args () { lt_dump_args_N=1; for lt_arg do \$ECHO \"$outputname:$output:\$LINENO: newargv[\$lt_dump_args_N]: \$lt_arg\" lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` done } # Core function for launching the target application func_exec_program_core () { " case $host in # Backslashes separate directories on plain windows *-*-mingw | *-*-os2* | *-cegcc*) $ECHO "\ if test -n \"\$lt_option_debug\"; then \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir\\\\\$program\" 1>&2 func_lt_dump_args \${1+\"\$@\"} 1>&2 fi exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " ;; *) $ECHO "\ if test -n \"\$lt_option_debug\"; then \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir/\$program\" 1>&2 func_lt_dump_args \${1+\"\$@\"} 1>&2 fi exec \"\$progdir/\$program\" \${1+\"\$@\"} " ;; esac $ECHO "\ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 exit 1 } # A function to encapsulate launching the target application # Strips options in the --lt-* namespace from \$@ and # launches target application with the remaining arguments. func_exec_program () { case \" \$* \" in *\\ --lt-*) for lt_wr_arg do case \$lt_wr_arg in --lt-*) ;; *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; esac shift done ;; esac func_exec_program_core \${1+\"\$@\"} } # Parse options func_parse_lt_options \"\$0\" \${1+\"\$@\"} # Find the directory that this script lives in. thisdir=\`\$ECHO \"\$file\" | $SED '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 \"\$file\" | $SED '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 \"\$file\" | $SED 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` done # Usually 'no', except on cygwin/mingw when embedded into # the cwrapper. WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_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 \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; $objdir ) thisdir=. ;; esac fi # Try to get the absolute directory name. absdir=\`cd \"\$thisdir\" && pwd\` test -n \"\$absdir\" && thisdir=\"\$absdir\" " if test yes = "$fast_install"; 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" # fixup the dll searchpath if we need to. # # Fix the DLL searchpath if we need to. Do this before prepending # to shlibpath, because on Windows, both are PATH and uninstalled # libraries must come first. if test -n "$dllsearchpath"; then $ECHO "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi # Export our shlibpath_var if we have one. if test yes = "$shlibpath_overrides_runpath" && 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 \"\$$shlibpath_var\" | $SED 's/::*\$//'\` export $shlibpath_var " fi $ECHO "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. func_exec_program \${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\ " } # 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 #else # include # include # ifdef __CYGWIN__ # include # endif #endif #include #include #include #include #include #include #include #include #define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0) /* declarations of non-ANSI functions */ #if defined __MINGW32__ # ifdef __STRICT_ANSI__ int _putenv (const char *); # endif #elif defined __CYGWIN__ # ifdef __STRICT_ANSI__ char *realpath (const char *, char *); int putenv (char *); int setenv (const char *, const char *, int); # endif /* #elif defined other_platform || defined ... */ #endif /* portability defines, excluding path handling macros */ #if defined _MSC_VER # define setmode _setmode # define stat _stat # define chmod _chmod # define getcwd _getcwd # define putenv _putenv # define S_IXUSR _S_IEXEC #elif defined __MINGW32__ # define setmode _setmode # define stat _stat # define chmod _chmod # define getcwd _getcwd # define putenv _putenv #elif defined __CYGWIN__ # define HAVE_SETENV # define FOPEN_WB "wb" /* #elif defined other platforms ... */ #endif #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 /* path handling portability macros */ #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 */ #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 (stale); stale = 0; } \ } while (0) #if defined LT_DEBUGWRAPPER static int lt_debug = 1; #else static int lt_debug = 0; #endif const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ 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_debugprintf (const char *file, int line, const char *fmt, ...); void lt_fatal (const char *file, int line, const char *message, ...); static const char *nonnull (const char *s); static const char *nonempty (const char *s); 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_update_exe_path (const char *name, const char *value); void lt_update_lib_path (const char *name, const char *value); char **prepare_spawn (char **argv); void lt_dump_script (FILE *f); EOF cat <= 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; lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", nonempty (path)); 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]; size_t tmp_len; char *concat_name; lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", nonempty (wrapper)); 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 = (size_t) (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 (__FILE__, __LINE__, "getcwd failed: %s", nonnull (strerror (errno))); 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 (__FILE__, __LINE__, "getcwd failed: %s", nonnull (strerror (errno))); 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) { lt_debugprintf (__FILE__, __LINE__, "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 { lt_fatal (__FILE__, __LINE__, "error accessing file \"%s\": %s", tmp_pathspec, nonnull (strerror (errno))); } } XFREE (tmp_pathspec); if (!has_symlinks) { return xstrdup (pathspec); } tmp_pathspec = realpath (pathspec, buf); if (tmp_pathspec == 0) { lt_fatal (__FILE__, __LINE__, "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 (STREQ (str, pat)) *str = '\0'; } return str; } void lt_debugprintf (const char *file, int line, const char *fmt, ...) { va_list args; if (lt_debug) { (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); va_start (args, fmt); (void) vfprintf (stderr, fmt, args); va_end (args); } } static void lt_error_core (int exit_status, const char *file, int line, const char *mode, const char *message, va_list ap) { fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); if (exit_status >= 0) exit (exit_status); } void lt_fatal (const char *file, int line, const char *message, ...) { va_list ap; va_start (ap, message); lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); va_end (ap); } static const char * nonnull (const char *s) { return s ? s : "(null)"; } static const char * nonempty (const char *s) { return (s && !*s) ? "(empty)" : nonnull (s); } void lt_setenv (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_setenv) setting '%s' to '%s'\n", nonnull (name), nonnull (value)); { #ifdef HAVE_SETENV /* always make a copy, for consistency with !HAVE_SETENV */ char *str = xstrdup (value); setenv (name, str, 1); #else size_t 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) { size_t orig_value_len = strlen (orig_value); size_t 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; } void lt_update_exe_path (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", nonnull (name), nonnull (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 #' */ size_t len = strlen (new_value); while ((len > 0) && IS_PATH_SEPARATOR (new_value[len-1])) { new_value[--len] = '\0'; } lt_setenv (name, new_value); XFREE (new_value); } } void lt_update_lib_path (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", nonnull (name), nonnull (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 case $host_os in mingw*) cat <<"EOF" /* Prepares an argument vector before calling spawn(). Note that spawn() does not by itself call the command interpreter (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); GetVersionEx(&v); v.dwPlatformId == VER_PLATFORM_WIN32_NT; }) ? "cmd.exe" : "command.com"). Instead it simply concatenates the arguments, separated by ' ', and calls CreateProcess(). We must quote the arguments since Win32 CreateProcess() interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a special way: - Space and tab are interpreted as delimiters. They are not treated as delimiters if they are surrounded by double quotes: "...". - Unescaped double quotes are removed from the input. Their only effect is that within double quotes, space and tab are treated like normal characters. - Backslashes not followed by double quotes are not special. - But 2*n+1 backslashes followed by a double quote become n backslashes followed by a double quote (n >= 0): \" -> " \\\" -> \" \\\\\" -> \\" */ #define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" #define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" char ** prepare_spawn (char **argv) { size_t argc; char **new_argv; size_t i; /* Count number of arguments. */ for (argc = 0; argv[argc] != NULL; argc++) ; /* Allocate new argument vector. */ new_argv = XMALLOC (char *, argc + 1); /* Put quoted arguments into the new argument vector. */ for (i = 0; i < argc; i++) { const char *string = argv[i]; if (string[0] == '\0') new_argv[i] = xstrdup ("\"\""); else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) { int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); size_t length; unsigned int backslashes; const char *s; char *quoted_string; char *p; length = 0; backslashes = 0; if (quote_around) length++; for (s = string; *s != '\0'; s++) { char c = *s; if (c == '"') length += backslashes + 1; length++; if (c == '\\') backslashes++; else backslashes = 0; } if (quote_around) length += backslashes + 1; quoted_string = XMALLOC (char, length + 1); p = quoted_string; backslashes = 0; if (quote_around) *p++ = '"'; for (s = string; *s != '\0'; s++) { char c = *s; if (c == '"') { unsigned int j; for (j = backslashes + 1; j > 0; j--) *p++ = '\\'; } *p++ = c; if (c == '\\') backslashes++; else backslashes = 0; } if (quote_around) { unsigned int j; for (j = backslashes; j > 0; j--) *p++ = '\\'; *p++ = '"'; } *p = '\0'; new_argv[i] = quoted_string; } else new_argv[i] = (char *) string; } new_argv[argc] = NULL; return new_argv; } EOF ;; esac cat <<"EOF" void lt_dump_script (FILE* f) { EOF func_emit_wrapper yes | $SED -n -e ' s/^\(.\{79\}\)\(..*\)/\1\ \2/ h s/\([\\"]\)/\\\1/g s/$/\\n/ s/\([^\n]*\).*/ fputs ("\1", f);/p g D' cat <<"EOF" } EOF } # end: func_emit_cwrapperexe_src # func_win32_import_lib_p ARG # True if ARG is an import lib, as indicated by $file_magic_cmd func_win32_import_lib_p () { $debug_cmd case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in *import*) : ;; *) false ;; esac } # func_suncc_cstd_abi # !!ONLY CALL THIS FOR SUN CC AFTER $compile_command IS FULLY EXPANDED!! # Several compiler flags select an ABI that is incompatible with the # Cstd library. Avoid specifying it if any are in CXXFLAGS. func_suncc_cstd_abi () { $debug_cmd case " $compile_command " in *" -compat=g "*|*\ -std=c++[0-9][0-9]\ *|*" -library=stdcxx4 "*|*" -library=stlport4 "*) suncc_use_cstd_abi=no ;; *) suncc_use_cstd_abi=yes ;; esac } # func_mode_link arg... func_mode_link () { $debug_cmd 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 # what 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 that 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 bindir= dlfiles= dlprefiles= dlself=no export_dynamic=no export_symbols= export_symbols_regex= generated= libobjs= ltlibs= module=no no_install=no objs= os2dllname= non_pic_objects= precious_files_regex= prefer_static_libs=no preload=false 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 yes != "$build_libtool_libs" \ && func_fatal_configuration "cannot build a shared library" build_old_libs=no break ;; -all-static | -static | -static-libtool-libs) case $arg in -all-static) if test yes = "$build_libtool_libs" && 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 bindir) bindir=$arg prev= continue ;; dlfiles|dlprefiles) $preload || { # Add the symbol object into the linking commands. func_append compile_command " @SYMFILE@" func_append finalize_command " @SYMFILE@" preload=: } case $arg in *.la | *.lo) ;; # We handle these cases below. force) if test no = "$dlself"; then dlself=needless export_dynamic=yes fi prev= continue ;; self) if test dlprefiles = "$prev"; then dlself=yes elif test dlfiles = "$prev" && test yes != "$dlopen_self"; then dlself=yes else dlself=needless export_dynamic=yes fi prev= continue ;; *) if test dlfiles = "$prev"; then func_append dlfiles " $arg" else func_append 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 "*) ;; *) func_append deplibs " $qarg.ltframework" # this is fixed later ;; esac ;; esac prev= continue ;; inst_prefix) inst_prefix_dir=$arg prev= continue ;; mllvm) # Clang does not use LLVM to link, so we can simply discard any # '-mllvm $arg' options when doing the link step. prev= continue ;; objectlist) if test -f "$arg"; then save_arg=$arg moreargs= for fil in `cat "$save_arg"` do # func_append 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 none = "$pic_object" && test none = "$non_pic_object"; 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 none != "$pic_object"; then # Prepend the subdirectory the object is found in. pic_object=$xdir$pic_object if test dlfiles = "$prev"; then if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then func_append 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 dlprefiles = "$prev"; then # Preload the old-style object. func_append dlprefiles " $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg=$pic_object fi # Non-PIC object. if test none != "$non_pic_object"; 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 none = "$pic_object"; 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 ;; os2dllname) os2dllname=$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 rpath = "$prev"; then case "$rpath " in *" $arg "*) ;; *) func_append rpath " $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) func_append xrpath " $arg" ;; esac fi prev= continue ;; shrext) shrext_cmds=$arg prev= continue ;; weak) func_append weak_libs " $arg" prev= continue ;; xcclinker) func_append linker_flags " $qarg" func_append compiler_flags " $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xcompiler) func_append compiler_flags " $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xlinker) func_append linker_flags " $qarg" func_append 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 ;; -bindir) prev=bindir 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-export-symbols = "X$arg"; 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" if test -z "$func_stripname_result"; 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 func_resolve_sysroot "$func_stripname_result" dir=$func_resolve_sysroot_result # 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 "* | *" $arg "*) # Will only happen for absolute or sysroot arguments ;; *) # Preserve sysroot, but never include relative directories case $dir in [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; *) func_append deplibs " -L$dir" ;; esac func_append lib_search_path " $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; ::) dllsearchpath=$dir;; *) func_append dllsearchpath ":$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) func_append dllsearchpath ":$testbindir";; esac ;; esac continue ;; -l*) if test X-lc = "X$arg" || test X-lm = "X$arg"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) # 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-lc = "X$arg" && continue ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*) # Do not include libc due to us having libc/libc_r. test X-lc = "X$arg" && continue ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework func_append deplibs " System.ltframework" continue ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype test X-lc = "X$arg" && continue ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work test X-lc = "X$arg" && continue ;; esac elif test X-lc_r = "X$arg"; then case $host in *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*) # Do not include libc_r directly, use -pthread flag. continue ;; esac fi func_append deplibs " $arg" continue ;; -mllvm) prev=mllvm 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|--sysroot) func_append 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|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) func_append compiler_flags " $arg" func_append compile_command " $arg" func_append finalize_command " $arg" case "$new_inherited_linker_flags " in *" $arg "*) ;; * ) func_append 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 ;; -os2dllname) prev=os2dllname 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_stripname '=' '' "$dir" dir=$lt_sysroot$func_stripname_result ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac case "$xrpath " in *" $dir "*) ;; *) func_append 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" func_append arg " $func_quote_for_eval_result" func_append 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" func_append arg " $wl$func_quote_for_eval_result" func_append compiler_flags " $wl$func_quote_for_eval_result" func_append 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 ;; # Flags to be passed through unchanged, with rationale: # -64, -mips[0-9] enable 64-bit mode for the SGI compiler # -r[0-9][0-9]* specify processor for the SGI compiler # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler # +DA*, +DD* enable 64-bit mode for the HP compiler # -q* compiler args for the IBM compiler # -m*, -t[45]*, -txscale* architecture-specific flags for GCC # -F/path path to uninstalled frameworks, gcc on darwin # -p, -pg, --coverage, -fprofile-* profiling flags for GCC # -fstack-protector* stack protector flags for GCC # @file GCC response files # -tp=* Portland pgcc target processor selection # --sysroot=* for sysroot support # -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization # -stdlib=* select c++ std lib with clang -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*) func_quote_for_eval "$arg" arg=$func_quote_for_eval_result func_append compile_command " $arg" func_append finalize_command " $arg" func_append compiler_flags " $arg" continue ;; -Z*) if test os2 = "`expr $host : '.*\(os2\)'`"; then # OS/2 uses -Zxxx to specify OS/2-specific options compiler_flags="$compiler_flags $arg" func_append compile_command " $arg" func_append finalize_command " $arg" case $arg in -Zlinker | -Zstack) prev=xcompiler ;; esac continue else # Otherwise treat like 'Some other compiler flag' below func_quote_for_eval "$arg" arg=$func_quote_for_eval_result fi ;; # Some other compiler flag. -* | +*) func_quote_for_eval "$arg" arg=$func_quote_for_eval_result ;; *.$objext) # A standard object. func_append 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 none = "$pic_object" && test none = "$non_pic_object"; then func_fatal_error "cannot find name of object for '$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir=$func_dirname_result test none = "$pic_object" || { # Prepend the subdirectory the object is found in. pic_object=$xdir$pic_object if test dlfiles = "$prev"; then if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then func_append 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 dlprefiles = "$prev"; then # Preload the old-style object. func_append dlprefiles " $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg=$pic_object } # Non-PIC object. if test none != "$non_pic_object"; 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 none = "$pic_object"; 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. func_append deplibs " $arg" func_append old_deplibs " $arg" continue ;; *.la) # A libtool-controlled library. func_resolve_sysroot "$arg" if test dlfiles = "$prev"; then # This library was specified with -dlopen. func_append dlfiles " $func_resolve_sysroot_result" prev= elif test dlprefiles = "$prev"; then # The library was specified with -dlpreopen. func_append dlprefiles " $func_resolve_sysroot_result" prev= else func_append deplibs " $func_resolve_sysroot_result" 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 yes = "$export_dynamic" && 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 \"\$$shlibpath_var\" \| \$SED \'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\" # Definition is injected by LT_CONFIG during libtool generation. func_munge_path_list sys_lib_dlsearch_path "$LT_SYS_LIBRARY_PATH" func_dirname "$output" "/" "" output_objdir=$func_dirname_result$objdir func_to_tool_file "$output_objdir/" tool_output_objdir=$func_to_tool_file_result # 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_preserve_dup_deps; then case "$libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append libs " $deplib" done if test lib = "$linkmode"; 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 "*) func_append specialdeplibs " $pre_post_deps" ;; esac func_append 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=false 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 lib,link = "$linkmode,$pass"; 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 lib,link = "$linkmode,$pass" || test prog,scan = "$linkmode,$pass"; then libs=$deplibs deplibs= fi if test prog = "$linkmode"; then case $pass in dlopen) libs=$dlfiles ;; dlpreopen) libs=$dlprefiles ;; link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; esac fi if test lib,dlpreopen = "$linkmode,$pass"; then # Collect and forward deplibs of preopened libtool libs for lib in $dlprefiles; do # Ignore non-libtool-libs dependency_libs= func_resolve_sysroot "$lib" case $lib in *.la) func_source "$func_resolve_sysroot_result" ;; esac # Collect preopened libtool deplibs, except any this library # has declared as weak libs for deplib in $dependency_libs; do func_basename "$deplib" deplib_base=$func_basename_result case " $weak_libs " in *" $deplib_base "*) ;; *) func_append deplibs " $deplib" ;; esac done done libs=$dlprefiles fi if test dlopen = "$pass"; then # Collect dlpreopened libraries save_deplibs=$deplibs deplibs= fi for deplib in $libs; do lib= found=false case $deplib in -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) if test prog,link = "$linkmode,$pass"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else func_append compiler_flags " $deplib" if test lib = "$linkmode"; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) func_append new_inherited_linker_flags " $deplib" ;; esac fi fi continue ;; -l*) if test lib != "$linkmode" && test prog != "$linkmode"; then func_warning "'-l' is ignored for archives/objects" continue fi func_stripname '-l' '' "$deplib" name=$func_stripname_result if test lib = "$linkmode"; 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 .la = "$search_ext"; then found=: else found=false fi break 2 fi done done if $found; then # 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 yes = "$allow_libtool_libs_with_static_runtimes"; 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=false func_dirname "$lib" "" "." ladir=$func_dirname_result lib=$ladir/$old_library if test prog,link = "$linkmode,$pass"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs" fi continue fi fi ;; *) ;; esac fi else # deplib doesn't seem to be a libtool library if test prog,link = "$linkmode,$pass"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs" fi continue fi ;; # -l *.ltframework) if test prog,link = "$linkmode,$pass"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" if test lib = "$linkmode"; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) func_append new_inherited_linker_flags " $deplib" ;; esac fi fi continue ;; -L*) case $linkmode in lib) deplibs="$deplib $deplibs" test conv = "$pass" && continue newdependency_libs="$deplib $newdependency_libs" func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; prog) if test conv = "$pass"; then deplibs="$deplib $deplibs" continue fi if test scan = "$pass"; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; *) func_warning "'-L' is ignored for archives/objects" ;; esac # linkmode continue ;; # -L -R*) if test link = "$pass"; then func_stripname '-R' '' "$deplib" func_resolve_sysroot "$func_stripname_result" dir=$func_resolve_sysroot_result # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) func_append xrpath " $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) func_resolve_sysroot "$deplib" lib=$func_resolve_sysroot_result ;; *.$libext) if test conv = "$pass"; 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=false case $deplibs_check_method in match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=: fi ;; pass_all) valid_a_lib=: ;; esac if $valid_a_lib; then echo $ECHO "*** Warning: Linking the shared library $output against the" $ECHO "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" else 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." fi ;; esac continue ;; prog) if test link != "$pass"; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi continue ;; esac # linkmode ;; # *.$libext *.lo | *.$objext) if test conv = "$pass"; then deplibs="$deplib $deplibs" elif test prog = "$linkmode"; then if test dlpreopen = "$pass" || test yes != "$dlopen_support" || test no = "$build_libtool_libs"; then # If there is no dlopen support or we're linking statically, # we need to preload. func_append newdlprefiles " $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else func_append newdlfiles " $deplib" fi fi continue ;; %DEPLIBS%) alldeplibs=: continue ;; esac # case $deplib $found || test -f "$lib" \ || func_fatal_error "cannot find the library '$lib' or unhandled argument '$deplib'" # 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 "$inherited_linker_flags" | $SED '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 "*) ;; *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; esac done fi dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` if test lib,link = "$linkmode,$pass" || test prog,scan = "$linkmode,$pass" || { test prog != "$linkmode" && test lib != "$linkmode"; }; then test -n "$dlopen" && func_append dlfiles " $dlopen" test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" fi if test conv = "$pass"; 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. func_append convenience " $ladir/$objdir/$old_library" func_append old_convenience " $ladir/$objdir/$old_library" elif test prog != "$linkmode" && test lib != "$linkmode"; then func_fatal_error "'$lib' is not a convenience library" fi tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" if $opt_preserve_dup_deps; then case "$tmp_libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append tmp_libs " $deplib" done continue fi # $pass = conv # Get the name of the library we link against. linklib= if test -n "$old_library" && { test yes = "$prefer_static_libs" || test built,no = "$prefer_static_libs,$installed"; }; then linklib=$old_library else for l in $old_library $library_names; do linklib=$l done fi 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 dlopen = "$pass"; then test -z "$libdir" \ && func_fatal_error "cannot -dlopen a convenience library: '$lib'" if test -z "$dlname" || test yes != "$dlopen_support" || test no = "$build_libtool_libs" 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. func_append dlprefiles " $lib $dependency_libs" else func_append 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 yes = "$installed"; then if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then func_warning "library '$lib' was moved." dir=$ladir absdir=$abs_ladir libdir=$abs_ladir else dir=$lt_sysroot$libdir absdir=$lt_sysroot$libdir fi test yes = "$hardcode_automatic" && 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 func_append notinst_path " $abs_ladir" else dir=$ladir/$objdir absdir=$abs_ladir/$objdir # Remove this search path later func_append 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 dlpreopen = "$pass"; then if test -z "$libdir" && test prog = "$linkmode"; then func_fatal_error "only libraries may -dlpreopen a convenience library: '$lib'" fi case $host in # special handling for platforms with PE-DLLs. *cygwin* | *mingw* | *cegcc* ) # Linker will automatically link against shared library if both # static and shared are present. Therefore, ensure we extract # symbols from the import library if a shared library is present # (otherwise, the dlopen module name will be incorrect). We do # this by putting the import library name into $newdlprefiles. # We recover the dlopen module name by 'saving' the la file # name in a special purpose variable, and (later) extracting the # dlname from the la file. if test -n "$dlname"; then func_tr_sh "$dir/$linklib" eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" func_append newdlprefiles " $dir/$linklib" else func_append 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" && \ func_append dlpreconveniencelibs " $dir/$old_library" fi ;; * ) # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then func_append 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" && \ func_append dlpreconveniencelibs " $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then func_append newdlprefiles " $dir/$dlname" else func_append newdlprefiles " $dir/$linklib" fi ;; esac fi # $pass = dlpreopen if test -z "$libdir"; then # Link the convenience library if test lib = "$linkmode"; then deplibs="$dir/$old_library $deplibs" elif test prog,link = "$linkmode,$pass"; 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 prog = "$linkmode" && test link != "$pass"; then func_append newlib_search_path " $ladir" deplibs="$lib $deplibs" linkalldeplibs=false if test no != "$link_all_deplibs" || test -z "$library_names" || test no = "$build_libtool_libs"; then linkalldeplibs=: fi tmp_libs= for deplib in $dependency_libs; do case $deplib in -L*) func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; esac # Need to link against all dependency_libs? if $linkalldeplibs; 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_preserve_dup_deps; then case "$tmp_libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append tmp_libs " $deplib" done # for deplib continue fi # $linkmode = prog... if test prog,link = "$linkmode,$pass"; then if test -n "$library_names" && { { test no = "$prefer_static_libs" || test built,yes = "$prefer_static_libs,$installed"; } || 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:"*) ;; *) func_append 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 "*) ;; *) func_append compile_rpath " $absdir" ;; esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac ;; esac fi # $linkmode,$pass = prog,link... if $alldeplibs && { test pass_all = "$deplibs_check_method" || { test yes = "$build_libtool_libs" && 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 built = "$use_static_libs" && test yes = "$installed"; then use_static_libs=no fi if test -n "$library_names" && { test no = "$use_static_libs" || test -z "$old_library"; }; then case $host in *cygwin* | *mingw* | *cegcc* | *os2*) # No point in relinking DLLs because paths are not encoded func_append notinst_deplibs " $lib" need_relink=no ;; *) if test no = "$installed"; then func_append 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 yes = "$shouldnotlink" && test link = "$pass"; then echo if test prog = "$linkmode"; 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 lib = "$linkmode" && test yes = "$hardcode_into_libs"; 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 "*) ;; *) func_append compile_rpath " $absdir" ;; esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) func_append 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* | *os2*) 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 prog = "$linkmode" || test relink != "$opt_mode"; then add_shlibpath= add_dir= add= lib_linked=yes case $hardcode_action in immediate | unsupported) if test no = "$hardcode_direct"; 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 cannot # 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 no = "$hardcode_minus_L"; then case $host in *-*-sunos*) add_shlibpath=$dir ;; esac add_dir=-L$dir add=-l$name elif test no = "$hardcode_shlibpath_var"; then add_shlibpath=$dir add=-l$name else lib_linked=no fi ;; relink) if test yes = "$hardcode_direct" && test no = "$hardcode_direct_absolute"; then add=$dir/$linklib elif test yes = "$hardcode_minus_L"; then add_dir=-L$absdir # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) func_append add_dir " -L$inst_prefix_dir$libdir" ;; esac fi add=-l$name elif test yes = "$hardcode_shlibpath_var"; then add_shlibpath=$dir add=-l$name else lib_linked=no fi ;; *) lib_linked=no ;; esac if test yes != "$lib_linked"; then func_fatal_configuration "unsupported hardcode properties" fi if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; *) func_append compile_shlibpath "$add_shlibpath:" ;; esac fi if test prog = "$linkmode"; 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 yes != "$hardcode_direct" && test yes != "$hardcode_minus_L" && test yes = "$hardcode_shlibpath_var"; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) func_append finalize_shlibpath "$libdir:" ;; esac fi fi fi if test prog = "$linkmode" || test relink = "$opt_mode"; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. if test yes = "$hardcode_direct" && test no = "$hardcode_direct_absolute"; then add=$libdir/$linklib elif test yes = "$hardcode_minus_L"; then add_dir=-L$libdir add=-l$name elif test yes = "$hardcode_shlibpath_var"; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) func_append finalize_shlibpath "$libdir:" ;; esac add=-l$name elif test yes = "$hardcode_automatic"; 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 [\\/]*) func_append add_dir " -L$inst_prefix_dir$libdir" ;; esac fi add=-l$name fi if test prog = "$linkmode"; 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 prog = "$linkmode"; 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 unsupported != "$hardcode_direct"; 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 yes = "$build_libtool_libs"; then # Not a shared library if test pass_all != "$deplibs_check_method"; 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 cannot 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 yes = "$module"; 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 no = "$build_old_libs"; 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 lib = "$linkmode"; then if test -n "$dependency_libs" && { test yes != "$hardcode_into_libs" || test yes = "$build_old_libs" || test yes = "$link_static"; }; 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 "*) ;; *) func_append xrpath " $temp_xrpath";; esac;; *) func_append temp_deplibs " $libdir";; esac done dependency_libs=$temp_deplibs fi func_append newlib_search_path " $absdir" # Link against this library test no = "$link_static" && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" case $deplib in -L*) func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result";; *) func_resolve_sysroot "$deplib" ;; esac if $opt_preserve_dup_deps; then case "$tmp_libs " in *" $func_resolve_sysroot_result "*) func_append specialdeplibs " $func_resolve_sysroot_result" ;; esac fi func_append tmp_libs " $func_resolve_sysroot_result" done if test no != "$link_all_deplibs"; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do path= case $deplib in -L*) path=$deplib ;; *.la) func_resolve_sysroot "$deplib" deplib=$func_resolve_sysroot_result 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 func_append compiler_flags " $wl-dylib_file $wl$darwin_install_name:$depdepl" func_append 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 link = "$pass"; then if test prog = "$linkmode"; then compile_deplibs="$new_inherited_linker_flags $compile_deplibs" finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" else compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` fi fi dependency_libs=$newdependency_libs if test dlpreopen = "$pass"; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi if test dlopen != "$pass"; then test conv = "$pass" || { # 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 "*) ;; *) func_append lib_search_path " $dir" ;; esac done newlib_search_path= } if test prog,link = "$linkmode,$pass"; then vars="compile_deplibs finalize_deplibs" else vars=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 "*) ;; *) func_append tmp_libs " $deplib" ;; esac ;; *) func_append tmp_libs " $deplib" ;; esac done eval $var=\"$tmp_libs\" done # for var fi # Add Sun CC postdeps if required: test CXX = "$tagname" && { case $host_os in linux*) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 func_suncc_cstd_abi if test no != "$suncc_use_cstd_abi"; then func_append postdeps ' -library=Cstd -library=Crun' fi ;; esac ;; solaris*) func_cc_basename "$CC" case $func_cc_basename_result in CC* | sunCC*) func_suncc_cstd_abi if test no != "$suncc_use_cstd_abi"; then func_append postdeps ' -library=Cstd -library=Crun' fi ;; esac ;; esac } # 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 func_append tmp_libs " $i" fi done dependency_libs=$tmp_libs done # for pass if test prog = "$linkmode"; then dlfiles=$newdlfiles fi if test prog = "$linkmode" || test lib = "$linkmode"; then dlprefiles=$newdlprefiles fi case $linkmode in oldlib) if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; 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 func_append 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 no = "$module" \ && func_fatal_help "libtool library '$output' must begin with 'lib'" if test no != "$need_lib_prefix"; 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 pass_all != "$deplibs_check_method"; 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!" func_append libobjs " $objs" fi fi test no = "$dlself" \ || func_warning "'-dlopen self' is ignored for libtool libraries" set dummy $rpath shift test 1 -lt "$#" \ && func_warning "ignoring multiple '-rpath's for a libtool library" install_libdir=$1 oldlibs= if test -z "$rpath"; then if test yes = "$build_libtool_libs"; 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 # that has an extra 1 added just for fun # case $version_type in # correct linux to gnu/linux during the next big refactor darwin|freebsd-elf|linux|osf|windows|none) func_arith $number_major + $number_minor current=$func_arith_result age=$number_minor revision=$number_revision ;; freebsd-aout|qnx|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 ;; 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" # On Darwin other compilers case $CC in nagfor*) verstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" ;; *) verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" ;; esac ;; freebsd-aout) major=.$current versuffix=.$current.$revision ;; freebsd-elf) func_arith $current - $age major=.$func_arith_result versuffix=$major.$age.$revision ;; irix | nonstopux) if test no = "$lt_irix_increment"; 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 0 -ne "$loop"; 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) # correct to gnu/linux during the next big refactor 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 0 -ne "$loop"; 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. func_append verstring ":$current.0" ;; qnx) major=.$current versuffix=.$current ;; sco) major=.$current versuffix=.$current ;; sunos) major=.$current versuffix=.$current.$revision ;; windows) # Use '-' rather than '.', since we only want one # extension on DOS 8.3 file systems. 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 no = "$need_version"; then versuffix= else versuffix=.0.0 fi fi # Remove version info from name if versioning should be avoided if test yes,no = "$avoid_version,$need_version"; then major= versuffix= verstring= fi # Check to see if the archive will have undefined symbols. if test yes = "$allow_undefined"; then if test unsupported = "$allow_undefined_flag"; then if test yes = "$build_old_libs"; then func_warning "undefined symbols not allowed in $host shared libraries; building static only" build_libtool_libs=no else func_fatal_error "can't build $host shared library unless -no-undefined is specified" fi fi else # Don't allow undefined symbols. allow_undefined_flag=$no_undefined_flag fi fi func_generate_dlsyms "$libname" "$libname" : func_append libobjs " $symfileobj" test " " = "$libobjs" && libobjs= if test relink != "$opt_mode"; 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 -n "$precious_files_regex"; then if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 then continue fi fi func_append removelist " $p" ;; *) ;; esac done test -n "$removelist" && \ func_show_eval "${RM}r \$removelist" fi # Now set the variables for building old libraries. if test yes = "$build_old_libs" && test convenience != "$build_libtool_libs"; then func_append oldlibs " $output_objdir/$libname.$libext" # Transform .lo files to .o files. oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; $lo2o" | $NL2SP` fi # Eliminate all temporary directories. #for path in $notinst_path; do # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` # dependency_libs=`$ECHO "$dependency_libs " | $SED "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 func_replace_sysroot "$libdir" func_append temp_xrpath " -R$func_replace_sysroot_result" case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac done if test yes != "$hardcode_into_libs" || test yes = "$build_old_libs"; 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 "*) ;; *) func_append 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 "*) ;; *) func_append dlprefiles " $lib" ;; esac done if test yes = "$build_libtool_libs"; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework func_append 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 yes = "$build_libtool_need_lc"; then func_append 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` $nocaseglob else potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` fi 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 "$potlib" | $SED 's|[^/]*$||'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | $SED -e 10q | $EGREP "$file_magic_regex" > /dev/null; then func_append 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. func_append 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 yes = "$allow_libtool_libs_with_static_runtimes"; then case " $predeps $postdeps " in *" $a_deplib "*) func_append newdeplibs " $a_deplib" a_deplib= ;; esac fi if test -n "$a_deplib"; then libname=`eval "\\$ECHO \"$libname_spec\""` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do potlib=$potent_lib # see symlink-check above in file_magic test if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ $EGREP "$match_pattern_regex" > /dev/null; then func_append 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. func_append newdeplibs " $a_deplib" ;; esac done # Gone through all deplibs. ;; none | unknown | *) newdeplibs= tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` if test yes = "$allow_libtool_libs_with_static_runtimes"; then for i in $predeps $postdeps; do # can't use Xsed below, because $i might contain '/' tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s|$i||"` done fi case $tmp_deplibs in *[!\ \ ]*) echo if test none = "$deplibs_check_method"; 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 ;; esac ;; 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 " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` ;; esac if test yes = "$droppeddeps"; then if test yes = "$module"; 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 no = "$build_old_libs"; 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 no = "$allow_undefined"; 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 no = "$build_old_libs"; 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 " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` deplibs=`$ECHO " $deplibs" | $SED '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 "*) func_append new_libs " -L$path/$objdir" ;; esac ;; esac done for deplib in $deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) func_append new_libs " $deplib" ;; esac ;; *) func_append 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 yes = "$build_libtool_libs"; then # Remove $wl instances when linking with ld. # FIXME: should test the right _cmds variable. case $archive_cmds in *\$LD\ *) wl= ;; esac if test yes = "$hardcode_into_libs"; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath=$finalize_rpath test relink = "$opt_mode" || rpath=$compile_rpath$rpath for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then func_replace_sysroot "$libdir" libdir=$func_replace_sysroot_result 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"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append dep_rpath " $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) func_append perm_rpath " $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir=$hardcode_libdirs eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do func_append 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 relink = "$opt_mode" || 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 func_append linknames " $link" done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$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 func_append 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 func_dll_def_p "$export_symbols" || { # 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 ;; esac # Prepare the list of exported symbols if test -z "$export_symbols"; then if test yes = "$always_export_symbols" || 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 cmd1 in $cmds; do IFS=$save_ifs # Take the normal branch if the nm_file_list_spec branch # doesn't work or if tool conversion is not needed. case $nm_file_list_spec~$to_tool_file_cmd in *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) try_normal_branch=yes eval cmd=\"$cmd1\" func_len " $cmd" len=$func_len_result ;; *) try_normal_branch=no ;; esac if test yes = "$try_normal_branch" \ && { test "$len" -lt "$max_cmd_len" \ || test "$max_cmd_len" -le -1; } then func_show_eval "$cmd" 'exit $?' skipped_export=false elif test -n "$nm_file_list_spec"; then func_basename "$output" output_la=$func_basename_result save_libobjs=$libobjs save_output=$output output=$output_objdir/$output_la.nm func_to_tool_file "$output" libobjs=$nm_file_list_spec$func_to_tool_file_result func_append delfiles " $output" func_verbose "creating $NM input file list: $output" for obj in $save_libobjs; do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" done > "$output" eval cmd=\"$cmd1\" func_show_eval "$cmd" 'exit $?' output=$save_output libobjs=$save_libobjs 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 : != "$skipped_export"; 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 "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi if test : != "$skipped_export" && 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 func_append 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 "*) ;; *) func_append tmp_deplibs " $test_deplib" ;; esac done deplibs=$tmp_deplibs if test -n "$convenience"; then if test -n "$whole_archive_flag_spec" && test yes = "$compiler_needs_object" && 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 func_append generated " $gentop" func_extract_archives $gentop $convenience func_append libobjs " $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi fi if test yes = "$thread_safe" && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" func_append linker_flags " $flag" fi # Make a backup of the uninstalled library when relinking if test relink = "$opt_mode"; 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 yes = "$module" && 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 : != "$skipped_export" && 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 func_basename "$output" output_la=$func_basename_result # 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 : != "$skipped_export" && test yes = "$with_gnu_ld"; then output=$output_objdir/$output_la.lnkscript func_verbose "creating GNU ld script: $output" echo 'INPUT (' > $output for obj in $save_libobjs do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" >> $output done echo ')' >> $output func_append delfiles " $output" func_to_tool_file "$output" output=$func_to_tool_file_result elif test -n "$save_libobjs" && test : != "$skipped_export" && test -n "$file_list_spec"; then output=$output_objdir/$output_la.lnk func_verbose "creating linker input file list: $output" : > $output set x $save_libobjs shift firstobj= if test yes = "$compiler_needs_object"; then firstobj="$1 " shift fi for obj do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" >> $output done func_append delfiles " $output" func_to_tool_file "$output" output=$firstobj\"$file_list_spec$func_to_tool_file_result\" 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 -z "$objlist" || 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 1 -eq "$k"; then # The first file doesn't have a previous command to add. reload_objs=$objlist eval concat_cmds=\"$reload_cmds\" else # All subsequent reloadable object files will link in # the last one created. reload_objs="$objlist $last_robj" eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$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~ reload_objs="$objlist $last_robj" eval concat_cmds=\"\$concat_cmds$reload_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" fi func_append delfiles " $output" else output= fi ${skipped_export-false} && { 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 } 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_quiet || { 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 relink = "$opt_mode"; 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 ${skipped_export-false} && { 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 "$include_expsyms" | $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 func_append 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 } 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 yes = "$module" && 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 func_append generated " $gentop" func_extract_archives $gentop $dlprefiles func_append libobjs " $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi save_ifs=$IFS; IFS='~' for cmd in $cmds; do IFS=$sp$nl eval cmd=\"$cmd\" IFS=$save_ifs $opt_quiet || { 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 relink = "$opt_mode"; 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 relink = "$opt_mode"; 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 yes = "$module" || test yes = "$export_dynamic"; then # On all known operating systems, these are identical. dlname=$soname fi fi ;; obj) if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; 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= # if reload_cmds runs $LD directly, get rid of -Wl from # whole_archive_flag_spec and hope we can get by with turning comma # into space. case $reload_cmds in *\$LD[\ \$]*) wl= ;; esac if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" test -n "$wl" || tmp_whole_archive_flags=`$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` reload_conv_objs=$reload_objs\ $tmp_whole_archive_flags else gentop=$output_objdir/${obj}x func_append generated " $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi # If we're not building shared, we need to use non_pic_objs test yes = "$build_libtool_libs" || libobjs=$non_pic_objects # Create the old-style object. reload_objs=$objs$old_deplibs' '`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; /\.lib$/d; $lo2o" | $NL2SP`' '$reload_conv_objs 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 test yes = "$build_libtool_libs" || { 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 } if test -n "$pic_flag" || test default != "$pic_mode"; 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" $preload \ && test unknown,unknown,unknown = "$dlopen_support,$dlopen_self,$dlopen_self_static" \ && 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 " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED '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 CXX = "$tagname"; then case ${MACOSX_DEPLOYMENT_TARGET-10.0} in 10.[0123]) func_append compile_command " $wl-bind_at_load" func_append finalize_command " $wl-bind_at_load" ;; esac fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED '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 "*) func_append new_libs " -L$path/$objdir" ;; esac ;; esac done for deplib in $compile_deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) func_append new_libs " $deplib" ;; esac ;; *) func_append new_libs " $deplib" ;; esac done compile_deplibs=$new_libs func_append compile_command " $compile_deplibs" func_append 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 "*) ;; *) func_append 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"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append rpath " $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) func_append 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;; *) func_append dllsearchpath ":$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) func_append 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"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append rpath " $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) func_append 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 yes = "$build_old_libs"; then # Transform all the library objects into standard objects. compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` fi func_generate_dlsyms "$outputname" "@PROGRAM@" false # template prelinking step if test -n "$prelink_cmds"; then func_execute_cmds "$prelink_cmds" 'exit $?' fi wrappers_required=: case $host in *cegcc* | *mingw32ce*) # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. wrappers_required=false ;; *cygwin* | *mingw* ) test yes = "$build_libtool_libs" || wrappers_required=false ;; *) if test no = "$need_relink" || test yes != "$build_libtool_libs"; then wrappers_required=false fi ;; esac $wrappers_required || { # Replace the output file specification. compile_command=`$ECHO "$compile_command" | $SED '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=$?' if test -n "$postlink_cmds"; then func_to_tool_file "$output" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi # 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 } 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 func_append 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 func_append rpath "$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi fi if test yes = "$no_install"; 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 "$link_command" | $SED '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 $?' if test -n "$postlink_cmds"; then func_to_tool_file "$output" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi exit $EXIT_SUCCESS fi case $hardcode_action,$fast_install in relink,*) # 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" ;; *,yes) link_command=$finalize_var$compile_command$finalize_rpath relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` ;; *,no) link_command=$compile_var$compile_command$compile_rpath relink_command=$finalize_var$finalize_command$finalize_rpath ;; *,needless) link_command=$finalize_var$compile_command$finalize_rpath relink_command= ;; esac # Replace the output file specification. link_command=`$ECHO "$link_command" | $SED '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 $?' if test -n "$postlink_cmds"; then func_to_tool_file "$output_objdir/$outputname" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi # 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 "$relink_command" | $SED "$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 case $build_libtool_libs in convenience) oldobjs="$libobjs_save $symfileobj" addlibs=$convenience build_libtool_libs=no ;; module) oldobjs=$libobjs_save addlibs=$old_convenience build_libtool_libs=no ;; *) oldobjs="$old_deplibs $non_pic_objects" $preload && test -f "$symfileobj" \ && func_append oldobjs " $symfileobj" addlibs=$old_convenience ;; esac if test -n "$addlibs"; then gentop=$output_objdir/${outputname}x func_append generated " $gentop" func_extract_archives $gentop $addlibs func_append oldobjs " $func_extract_archives_result" fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test yes = "$build_libtool_libs"; 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 func_append generated " $gentop" func_extract_archives $gentop $dlprefiles func_append 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 func_append 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" func_append oldobjs " $gentop/$newobj" ;; *) func_append oldobjs " $obj" ;; esac done fi func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 tool_oldlib=$func_to_tool_file_result 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 elif test -n "$archiver_list_spec"; then func_verbose "using command file archive linking..." for obj in $oldobjs do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" done > $output_objdir/$libname.libcmd func_to_tool_file "$output_objdir/$libname.libcmd" oldobjs=" $archiver_list_spec$func_to_tool_file_result" 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 -z "$oldobjs"; 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 yes = "$build_old_libs" && 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 "$relink_command" | $SED "$sed_quote_subst"` if test yes = "$hardcode_automatic"; then relink_command= fi # Only create the output if not a dry run. $opt_dry_run || { for installed in no yes; do if test yes = "$installed"; 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 func_resolve_sysroot "$deplib" eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` test -z "$libdir" && \ func_fatal_error "'$deplib' is not a valid libtool archive" func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" ;; -L*) func_stripname -L '' "$deplib" func_replace_sysroot "$func_stripname_result" func_append newdependency_libs " -L$func_replace_sysroot_result" ;; -R*) func_stripname -R '' "$deplib" func_replace_sysroot "$func_stripname_result" func_append newdependency_libs " -R$func_replace_sysroot_result" ;; *) func_append 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" func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" ;; *) func_append 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" func_append newdlprefiles " ${lt_sysroot:+=}$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 func_append newdlfiles " $abs" done dlfiles=$newdlfiles newdlprefiles= for lib in $dlprefiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;; *) abs=`pwd`"/$lib" ;; esac func_append newdlprefiles " $abs" done dlprefiles=$newdlprefiles fi $RM $output # place dlname in correct position for cygwin # In fact, it would be nice if we could use this code for all target # systems that can't hard-code library paths into their executables # and that have no shared library path variable independent of PATH, # but it turns out we can't easily determine that from inspecting # libtool variables, so we have to hard-code the OSs to which it # applies here; at the moment, that means platforms that use the PE # object format with DLL files. See the long comment at the top of # tests/bindir.at for full details. tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) # If a -bindir argument was supplied, place the dll there. if test -n "$bindir"; then func_relative_path "$install_libdir" "$bindir" tdlname=$func_relative_path_result/$dlname else # Otherwise fall back on heuristic. tdlname=../bin/$dlname fi ;; esac $ECHO > $output "\ # $outputname - a libtool library file # Generated by $PROGRAM (GNU $PACKAGE) $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 cannot 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 no,yes = "$installed,$need_relink"; 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 } if test link = "$opt_mode" || test relink = "$opt_mode"; then func_mode_link ${1+"$@"} fi # func_mode_uninstall arg... func_mode_uninstall () { $debug_cmd RM=$nonopt files= rmforce=false 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) func_append RM " $arg"; rmforce=: ;; -*) func_append RM " $arg" ;; *) func_append files " $arg" ;; esac done test -z "$RM" && \ func_fatal_help "you must specify an RM program" rmdirs= for file in $files; do func_dirname "$file" "" "." dir=$func_dirname_result if test . = "$dir"; then odir=$objdir else odir=$dir/$objdir fi func_basename "$file" name=$func_basename_result test uninstall = "$opt_mode" && odir=$dir # Remember odir for removal later, being careful to avoid duplicates if test clean = "$opt_mode"; then case " $rmdirs " in *" $odir "*) ;; *) func_append rmdirs " $odir" ;; 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 $rmforce; 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 func_append rmfiles " $odir/$n" done test -n "$old_library" && func_append rmfiles " $odir/$old_library" case $opt_mode in clean) case " $library_names " in *" $dlname "*) ;; *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; esac test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" ;; uninstall) if test -n "$library_names"; then # Do each command in the postuninstall commands. func_execute_cmds "$postuninstall_cmds" '$rmforce || exit_status=1' fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. func_execute_cmds "$old_postuninstall_cmds" '$rmforce || 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 none != "$pic_object"; then func_append rmfiles " $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. if test -n "$non_pic_object" && test none != "$non_pic_object"; then func_append rmfiles " $dir/$non_pic_object" fi fi ;; *) if test clean = "$opt_mode"; 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 func_append 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 func_append 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 func_append rmfiles " $odir/$name $odir/${name}S.$objext" if test yes = "$fast_install" && test -n "$relink_command"; then func_append rmfiles " $odir/lt-$name" fi if test "X$noexename" != "X$name"; then func_append rmfiles " $odir/lt-$noexename.c" fi fi fi ;; esac func_show_eval "$RM $rmfiles" 'exit_status=1' done # Try to remove the $objdir's in the directories where we deleted files for dir in $rmdirs; do if test -d "$dir"; then func_show_eval "rmdir $dir >/dev/null 2>&1" fi done exit $exit_status } if test uninstall = "$opt_mode" || test clean = "$opt_mode"; then func_mode_uninstall ${1+"$@"} fi test -z "$opt_mode" && { help=$generic_help func_fatal_help "you must specify a MODE" } test -z "$exec_cmd" && \ func_fatal_help "invalid operation mode '$opt_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 # where 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: tcpcrypt-0.5/config/compile0000755000175200017520000001624512742073030015115 0ustar sorbosorbo#! /bin/sh # Wrapper for compilers which do not understand '-c -o'. scriptversion=2012-10-14.11; # UTC # Copyright (C) 1999-2014 Free Software Foundation, Inc. # Written by Tom Tromey . # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, 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. # This file is maintained in Automake, please report # bugs to or send patches to # . nl=' ' # We need space, tab and new line, in precisely that order. Quoting is # there to prevent tools from complaining about whitespace usage. IFS=" "" $nl" file_conv= # func_file_conv build_file lazy # Convert a $build file to $host form and store it in $file # Currently only supports Windows hosts. If the determined conversion # type is listed in (the comma separated) LAZY, no conversion will # take place. func_file_conv () { file=$1 case $file in / | /[!/]*) # absolute file, and not a UNC file if test -z "$file_conv"; then # lazily determine how to convert abs files case `uname -s` in MINGW*) file_conv=mingw ;; CYGWIN*) file_conv=cygwin ;; *) file_conv=wine ;; esac fi case $file_conv/,$2, in *,$file_conv,*) ;; mingw/*) file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` ;; cygwin/*) file=`cygpath -m "$file" || echo "$file"` ;; wine/*) file=`winepath -w "$file" || echo "$file"` ;; esac ;; esac } # func_cl_dashL linkdir # Make cl look for libraries in LINKDIR func_cl_dashL () { func_file_conv "$1" if test -z "$lib_path"; then lib_path=$file else lib_path="$lib_path;$file" fi linker_opts="$linker_opts -LIBPATH:$file" } # func_cl_dashl library # Do a library search-path lookup for cl func_cl_dashl () { lib=$1 found=no save_IFS=$IFS IFS=';' for dir in $lib_path $LIB do IFS=$save_IFS if $shared && test -f "$dir/$lib.dll.lib"; then found=yes lib=$dir/$lib.dll.lib break fi if test -f "$dir/$lib.lib"; then found=yes lib=$dir/$lib.lib break fi if test -f "$dir/lib$lib.a"; then found=yes lib=$dir/lib$lib.a break fi done IFS=$save_IFS if test "$found" != yes; then lib=$lib.lib fi } # func_cl_wrapper cl arg... # Adjust compile command to suit cl func_cl_wrapper () { # Assume a capable shell lib_path= shared=: linker_opts= for arg do if test -n "$eat"; then eat= else case $1 in -o) # configure might choose to run compile as 'compile cc -o foo foo.c'. eat=1 case $2 in *.o | *.[oO][bB][jJ]) func_file_conv "$2" set x "$@" -Fo"$file" shift ;; *) func_file_conv "$2" set x "$@" -Fe"$file" shift ;; esac ;; -I) eat=1 func_file_conv "$2" mingw set x "$@" -I"$file" shift ;; -I*) func_file_conv "${1#-I}" mingw set x "$@" -I"$file" shift ;; -l) eat=1 func_cl_dashl "$2" set x "$@" "$lib" shift ;; -l*) func_cl_dashl "${1#-l}" set x "$@" "$lib" shift ;; -L) eat=1 func_cl_dashL "$2" ;; -L*) func_cl_dashL "${1#-L}" ;; -static) shared=false ;; -Wl,*) arg=${1#-Wl,} save_ifs="$IFS"; IFS=',' for flag in $arg; do IFS="$save_ifs" linker_opts="$linker_opts $flag" done IFS="$save_ifs" ;; -Xlinker) eat=1 linker_opts="$linker_opts $2" ;; -*) set x "$@" "$1" shift ;; *.cc | *.CC | *.cxx | *.CXX | *.[cC]++) func_file_conv "$1" set x "$@" -Tp"$file" shift ;; *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) func_file_conv "$1" mingw set x "$@" "$file" shift ;; *) set x "$@" "$1" shift ;; esac fi shift done if test -n "$linker_opts"; then linker_opts="-link$linker_opts" fi exec "$@" $linker_opts exit 1 } eat= case $1 in '') echo "$0: No command. Try '$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: compile [--help] [--version] PROGRAM [ARGS] Wrapper for compilers which do not understand '-c -o'. Remove '-o dest.o' from ARGS, run PROGRAM with the remaining arguments, and rename the output as expected. If you are trying to build a whole package this is not the right script to run: please start by reading the file 'INSTALL'. Report bugs to . EOF exit $? ;; -v | --v*) echo "compile $scriptversion" exit $? ;; cl | *[/\\]cl | cl.exe | *[/\\]cl.exe ) func_cl_wrapper "$@" # Doesn't return... ;; esac ofile= cfile= for arg do if test -n "$eat"; then eat= else case $1 in -o) # configure might choose to run compile as 'compile cc -o foo foo.c'. # So we strip '-o arg' only if arg is an object. eat=1 case $2 in *.o | *.obj) ofile=$2 ;; *) set x "$@" -o "$2" shift ;; esac ;; *.c) cfile=$1 set x "$@" "$1" shift ;; *) set x "$@" "$1" shift ;; esac fi shift done if test -z "$ofile" || test -z "$cfile"; then # If no '-o' option was seen then we might have been invoked from a # pattern rule where we don't need one. That is ok -- this is a # normal compilation that the losing compiler can handle. If no # '.c' file was seen then we are probably linking. That is also # ok. exec "$@" fi # Name of file we expect compiler to create. cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` # Create the lock directory. # Note: use '[/\\:.-]' here to ensure that we don't use the same name # that we are using for the .o file. Also, base the name on the expected # object file name, since that is what matters with a parallel build. lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d while true; do if mkdir "$lockdir" >/dev/null 2>&1; then break fi sleep 1 done # FIXME: race condition here if user kills between mkdir and trap. trap "rmdir '$lockdir'; exit 1" 1 2 15 # Run the compile. "$@" ret=$? if test -f "$cofile"; then test "$cofile" = "$ofile" || mv "$cofile" "$ofile" elif test -f "${cofile}bj"; then test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" fi rmdir "$lockdir" exit $ret # 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: tcpcrypt-0.5/config/config.guess0000755000175200017520000012367212742073030016062 0ustar sorbosorbo#! /bin/sh # Attempt to guess a canonical system name. # Copyright 1992-2014 Free Software Foundation, Inc. timestamp='2014-11-04' # 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 3 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, 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. This Exception is an additional permission under section 7 # of the GNU General Public License, version 3 ("GPLv3"). # # Originally written by Per Bothner; maintained since 2000 by Ben Elliston. # # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD # # Please send patches to . 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 1992-2014 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 case "${UNAME_SYSTEM}" in Linux|GNU|GNU/*) # If the system lacks a compiler, then just pick glibc. # We could probably try harder. LIBC=gnu eval $set_cc_for_build cat <<-EOF > $dummy.c #include #if defined(__UCLIBC__) LIBC=uclibc #elif defined(__dietlibc__) LIBC=dietlibc #else LIBC=gnu #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` ;; esac # 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 tuples: *-*-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 ;; *:Bitrig:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_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'` # Reset EXIT trap before exiting to avoid spurious non-zero exit code. exitcode=$? trap '' 0 exit $exitcode ;; 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:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) echo i386-pc-auroraux${UNAME_RELEASE} 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:*:[4567]) 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/lslpp ] ; then IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` 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:*:*) UNAME_PROCESSOR=`/usr/bin/uname -p` case ${UNAME_PROCESSOR} in amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW64*:*) echo ${UNAME_MACHINE}-pc-mingw64 exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; *:MSYS*:*) echo ${UNAME_MACHINE}-pc-msys exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; authenticamd | genuineintel | EM64T) 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-${LIBC}`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/[-(].*//'`-${LIBC} exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; aarch64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; aarch64_be:Linux:*:*) UNAME_MACHINE=aarch64_be echo ${UNAME_MACHINE}-unknown-linux-${LIBC} 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="gnulibc1" ; fi echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; arc:Linux:*:* | arceb:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} 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-${LIBC} else if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi else echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf fi fi exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; cris:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-${LIBC} exit ;; crisv32:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-${LIBC} exit ;; frv:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; hexagon:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; i*86:Linux:*:*) echo ${UNAME_MACHINE}-pc-linux-${LIBC} exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} 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 | grep '^CPU'` test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } ;; openrisc*:Linux:*:*) echo or1k-unknown-linux-${LIBC} exit ;; or32:Linux:*:* | or1k*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; padre:Linux:*:*) echo sparc-unknown-linux-${LIBC} exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-${LIBC} 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-${LIBC} ;; PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; *) echo hppa-unknown-linux-${LIBC} ;; esac exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-${LIBC} exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-${LIBC} exit ;; ppc64le:Linux:*:*) echo powerpc64le-unknown-linux-${LIBC} exit ;; ppcle:Linux:*:*) echo powerpcle-unknown-linux-${LIBC} exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux-${LIBC} exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; tile*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-${LIBC} exit ;; x86_64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} 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 ;; x86_64:Haiku:*:*) echo x86_64-unknown-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 eval $set_cc_for_build if test "$UNAME_PROCESSOR" = unknown ; then UNAME_PROCESSOR=powerpc fi if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then case $UNAME_PROCESSOR in i386) UNAME_PROCESSOR=x86_64 ;; powerpc) UNAME_PROCESSOR=powerpc64 ;; esac fi fi elif test "$UNAME_PROCESSOR" = i386 ; then # Avoid executing cc on OS X 10.9, as it ships with a stub # that puts up a graphical alert prompting to install # developer tools. Any system running Mac OS X 10.7 or # later (Darwin 11 and later) is required to have a 64-bit # processor. This is not true of the ARM version of Darwin # that Apple uses in portable devices. UNAME_PROCESSOR=x86_64 fi 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 ;; NEO-?:NONSTOP_KERNEL:*:*) echo neo-tandem-nsk${UNAME_RELEASE} 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 ;; x86_64:VMkernel:*:*) echo ${UNAME_MACHINE}-unknown-esx exit ;; esac 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: tcpcrypt-0.5/launch_tcpcryptd.sh0000755000175200017520000000717112742073006016200 0ustar sorbosorbo#!/bin/sh BASE=`dirname $0` TCPCRYPTD=$BASE/src/tcpcryptd DIVERT_PORT=666 PIDFILE=/var/run/tcpcrypt.pid JAIL_DIR=/var/run/tcpcryptd DAEMON_USER=tcpcryptd OSNAME=`uname -s` if [ "$OSNAME" = "Linux" ] then # set either ONLY_PORTS or OMIT_PORTS, in a manner acceptable to the # "multiport" extension. see iptables-extensions(8) # EITHER enable specific ports: # ONLY_PORTS="80,7777" # OR exclude already-encrypted services: OMIT_PORTS="22,261,443,563,614,636,684,695,989,990,992:995" else # for ipfw users: PORT=${1:-80} PORT2=${2:-7777} fi start_tcpcryptd() { LD_LIBRARY_PATH=lib/ $TCPCRYPTD \ -U $DAEMON_USER \ -J $JAIL_DIR \ -p $DIVERT_PORT \ -e \ -f \ $OPTS & echo $! > $PIDFILE wait $! } init_jail() { if [ ! -d "$JAIL_DIR" ] then echo "Creating jail directory $JAIL_DIR" (umask 077 && mkdir $JAIL_DIR) fi id $DAEMON_USER >/dev/null 2>&1 if [ $? -ne 0 ] then echo "Creating user and group '$DAEMON_USER'" if [ "$OSNAME" = "Darwin" ] ; then dscl . create /Users/tcpcryptd UniqueID 666 dscl . create /Users/tcpcryptd PrimaryGroupID 666 else useradd -s /usr/bin/nologin -d / -M -U $DAEMON_USER fi fi } ee() { echo $* eval $* } set_iptables() { export DAEMON_USER DIVERT_PORT ONLY_PORTS OMIT_PORTS $BASE/src/iptables.sh start if [ $? -ne 0 ] then echo "Couldn't set iptables" >&2 exit 1 fi } unset_iptables() { echo Removing iptables rules and quitting tcpcryptd... export DAEMON_USER DIVERT_PORT ONLY_PORTS OMIT_PORTS $BASE/src/iptables.sh stop exit } bsd_set_ipfw() { if [ "$OSNAME" = "Darwin" ] ; then pfctl -Fa -e -f $BASE/src/pf.conf return fi echo Tcpcrypting port 80 and 7777... ipfw 02 add divert $DIVERT_PORT tcp from any to any $PORT ipfw 03 add divert $DIVERT_PORT tcp from any $PORT to any ipfw 04 add divert $DIVERT_PORT tcp from any to any $PORT2 ipfw 05 add divert $DIVERT_PORT tcp from any $PORT2 to any } bsd_unset_ipfw() { echo Removing ipfw rules and quitting tcpcryptd... if [ "$OSNAME" = "Darwin" ] ; then pfctl -Fa -d return fi ipfw delete 02 03 04 05 exit } win_start_tcpcryptd() { MAC_ADDR=`ipconfig /all | grep 'Physical Address'| head -n 1 | sed 's/\s*Physical Address\(\. \)*: \(.*\)/\2/' | sed 's/-/:/g'` echo Using MAC address $MAC_ADDR... LD_LIBRARY_PATH=lib/ $TCPCRYPTD $OPTS -p $DIVERT_PORT -x $MAC_ADDR & echo $! > $PIDFILE wait $! } check_root() { if [ `whoami` != "root" ] then echo "must be root" exit 1 fi } check_ssh() { if [ -n "$SSH_CONNECTION" ] then read -p 'Command may disrupt existing ssh connections. Proceed? [y/N] ' C if [ "$C" != "y" ] then exit 1 fi fi } check_existing_tcpcryptd() { P=`ps axo pid,comm | grep tcpcryptd` if [ $? -eq 0 ] then read -p "tcpcryptd already running with pid $P. Proceed? [y/N] " C if [ "$C" != "y" ] then exit 1 fi fi } #check_ssh case "$OSNAME" in Linux) check_existing_tcpcryptd check_root init_jail set_iptables trap unset_iptables 2 # trap SIGINT to remove iptables rules before exit start_tcpcryptd unset_iptables ;; FreeBSD|Darwin) check_existing_tcpcryptd check_root init_jail bsd_set_ipfw trap bsd_unset_ipfw 2 start_tcpcryptd bsd_unset_ipfw ;; [Cc][Yy][Gg][Ww][Ii][Nn]*) win_start_tcpcryptd ;; esac tcpcrypt-0.5/INSTALL-MacOSX.markdown0000644000175200017520000000216612742073006016234 0ustar sorbosorboInstalling tcpcrypt on Mac OS X =============================== Using the Mac OS X GUI wrapper ------------------------------ If you don't want to compile your own tcpcrypt, you can use the Mac OS X GUI wrapper, which includes the binary and is available at [http://tcpcrypt.org/download.php](http://tcpcrypt.org/download.php). Compiling --------- Tcpcrypt does not depend on non-standard libs on Mac OS X, so just run: cd tcpcrypt/user ./bootstrap.sh ./configure make Optional: running `make install` will install `libtcpcrypt` and tcpcrypt headers, for building apps that use tcpcrypt's session ID. Running ------- The launch script (in tcpcrypt/user) starts tcpcryptd and sets up your firewall to send port 80 and 7777 packets through tcpcrypt: ./launch_tcpcryptd.sh With tcpcryptd running, open [http://tcpcrypt.org/test.php](http://tcpcrypt.org/test.php) to try it out. More info ---------- See the included `README.markdown` file for more ways to try out tcpcrypt and for troubleshooting help. See `INSTALL-FreeBSD` for firewall setup instructions. (FreeBSD and Mac OS X use the same firewall, `ipfw`.) tcpcrypt-0.5/README.markdown0000644000175200017520000000545112742073006014773 0ustar sorbosorboTcpcrypt ======== Tcpcrypt is a protocol that attempts to encrypt (almost) all of your network traffic. Unlike other security mechanisms, Tcpcrypt works out of the box: it requires no configuration, no changes to applications, and your network connections will continue to work even if the remote end does not support Tcpcrypt, in which case connections will gracefully fall back to standard clear-text TCP. Tcpcrypt supports Linux, Mac OS X, Windows, and FreeBSD. For more information, see [tcpcrypt.org](http://tcpcrypt.org). Installing tcpcrypt ------------------- git clone git://github.com/scslab/tcpcrypt.git cd tcpcrypt ./bootstrap.sh ./configure make sudo ./launch_tcpcryptd.sh The launch script starts tcpcryptd and adds firewall rules to divert all TCP traffic on port 80 to tcpcryptd. When the script exits (on Ctrl-C or `kill`), it restores your firewall config to its former state -- *no permanent changes are made*. On Linux, you must first install libnfnetlink, libnetfilter_queue, and libcap. Optional: running `make install` will install `libtcpcrypt` and tcpcrypt headers, for building apps that use tcpcrypt's session ID. Try it out ---------- Go to [http://tcpcrypt.org/test.php](http://tcpcrypt.org/test.php) with tcpcryptd running. If tcpcrypt is working, you'll be able to join the tcpcrypt Hall of Fame and your tcpcrypt session ID will be displayed at the bottom of the page. Now let's examine the packets going over the wire by starting tcpdump and then reloading the URL above. sudo tcpdump -X -s0 host tcpcrypt.org Compare this tcpdump output, which appears encrypted (or at least unreadable), with the cleartext packets you would see without tcpcryptd running. Troubleshooting --------------- If it's not working, the most likely causes are the following. * Your browser already had an open, non-tcpcrypted TCP connection to tcpcrypt.org before you ran the launch script. Quit and reopen your browser, wait 30 seconds, or use a different browser to retrieve the tcpcrypt.org URL. * There's a conflict with your existing firewall rules. See the firewall setup section in the install guide for your platform. Visit [http://wiki.github.com/scslab/tcpcrypt/troubleshooting](http://wiki.github.com/scslab/tcpcrypt/troubleshooting) if you're still unable to make it work. More info --------- The `INSTALL-*` files have more detailed installation and firewall setup instructions. See [tcpcrypt.org](http://tcpcrypt.org) for general info, including the [protocol specification](http://tcpcrypt.org/docs.php) and the [tcpcrypt paper, "The case for ubiquitous transport-level encryption"](http://tcpcrypt.org/tcpcrypt.pdf), presented at USENIX Security 2010. The code repository lives at [http://github.com/scslab/tcpcrypt](http://github.com/scslab/tcpcrypt). tcpcrypt-0.5/aclocal.m40000644000175200017520000013316012742073026014133 0ustar sorbosorbo# generated automatically by aclocal 1.15 -*- Autoconf -*- # Copyright (C) 1996-2014 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_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, [m4_warning([this file was generated for autoconf 2.69. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically 'autoreconf'.])]) # Copyright (C) 2002-2014 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.15' 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.15], [], [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.15])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # Copyright (C) 2011-2014 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_AR([ACT-IF-FAIL]) # ------------------------- # Try to determine the archiver interface, and trigger the ar-lib wrapper # if it is needed. If the detection of archiver interface fails, run # ACT-IF-FAIL (default is to abort configure with a proper error message). AC_DEFUN([AM_PROG_AR], [AC_BEFORE([$0], [LT_INIT])dnl AC_BEFORE([$0], [AC_PROG_LIBTOOL])dnl AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([ar-lib])dnl AC_CHECK_TOOLS([AR], [ar lib "link -lib"], [false]) : ${AR=ar} AC_CACHE_CHECK([the archiver ($AR) interface], [am_cv_ar_interface], [AC_LANG_PUSH([C]) am_cv_ar_interface=ar AC_COMPILE_IFELSE([AC_LANG_SOURCE([[int some_variable = 0;]])], [am_ar_try='$AR cru libconftest.a conftest.$ac_objext >&AS_MESSAGE_LOG_FD' AC_TRY_EVAL([am_ar_try]) if test "$ac_status" -eq 0; then am_cv_ar_interface=ar else am_ar_try='$AR -NOLOGO -OUT:conftest.lib conftest.$ac_objext >&AS_MESSAGE_LOG_FD' AC_TRY_EVAL([am_ar_try]) if test "$ac_status" -eq 0; then am_cv_ar_interface=lib else am_cv_ar_interface=unknown fi fi rm -f conftest.lib libconftest.a ]) AC_LANG_POP([C])]) case $am_cv_ar_interface in ar) ;; lib) # Microsoft lib, so override with the ar-lib wrapper script. # FIXME: It is wrong to rewrite AR. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__AR in this case, # and then we could set am__AR="$am_aux_dir/ar-lib \$(AR)" or something # similar. AR="$am_aux_dir/ar-lib $AR" ;; unknown) m4_default([$1], [AC_MSG_ERROR([could not determine $AR interface])]) ;; esac AC_SUBST([AR])dnl ]) # Figure out how to run the assembler. -*- Autoconf -*- # Copyright (C) 2001-2014 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_AS # ---------- AC_DEFUN([AM_PROG_AS], [# By default we simply use the C compiler to build assembly code. AC_REQUIRE([AC_PROG_CC]) test "${CCAS+set}" = set || CCAS=$CC test "${CCASFLAGS+set}" = set || CCASFLAGS=$CFLAGS AC_ARG_VAR([CCAS], [assembler compiler command (defaults to CC)]) AC_ARG_VAR([CCASFLAGS], [assembler compiler flags (defaults to CFLAGS)]) _AM_IF_OPTION([no-dependencies],, [_AM_DEPENDENCIES([CCAS])])dnl ]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001-2014 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], [AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl # Expand $ac_aux_dir to an absolute path. am_aux_dir=`cd "$ac_aux_dir" && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997-2014 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_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ([2.52])dnl m4_if([$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-2014 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. # 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", "OBJC", "OBJCXX", "UPC", or "GJC". # 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 m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], [$1], [CXX], [depcc="$CXX" am_compiler_list=], [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], [OBJCXX], [depcc="$OBJCXX" 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". rm -rf conftest.dir 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 10 /bin/sh. echo '/* dummy */' > 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 ;; msvc7 | msvc7msys | 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], [dnl AS_HELP_STRING( [--enable-dependency-tracking], [do not reject slow dependency extractors]) AS_HELP_STRING( [--disable-dependency-tracking], [speeds up one-time build])]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' am__nodep='_no' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl AC_SUBST([am__nodep])dnl _AM_SUBST_NOTMAKE([am__nodep])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999-2014 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_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ # Older Autoconf 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"` # 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'`; 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"]) ]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996-2014 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 macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O. m4_define([AC_PROG_CC], m4_defn([AC_PROG_CC]) [_AM_PROG_CC_C_O ]) # 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.65])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], [AC_DIAGNOSE([obsolete], [$0: two- and three-arguments forms are deprecated.]) 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], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), [ok:ok],, [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([AC_PROG_MKDIR_P])dnl # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: # # AC_SUBST([mkdir_p], ['$(MKDIR_P)']) # We need awk for the "check" target (and possibly the TAP driver). 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])], [m4_define([AC_PROG_CC], m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES([CXX])], [m4_define([AC_PROG_CXX], m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES([OBJC])], [m4_define([AC_PROG_OBJC], m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], [_AM_DEPENDENCIES([OBJCXX])], [m4_define([AC_PROG_OBJCXX], m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl ]) AC_REQUIRE([AM_SILENT_RULES])dnl dnl The testsuite driver may need to know about EXEEXT, so add the dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This dnl macro 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 # POSIX will say in a future version that running "rm -f" with no argument # is OK; and we want to be able to make that assumption in our Makefile # recipes. So use an aggressive probe to check that the usage we want is # actually supported "in the wild" to an acceptable degree. # See automake bug#10828. # To make any issue more visible, cause the running configure to be aborted # by default if the 'rm' program in use doesn't match our expectations; the # user can still override this though. if rm -f && rm -fr && rm -rf; then : OK; else cat >&2 <<'END' Oops! Your 'rm' program seems unable to run without file operands specified on the command line, even when the '-f' option is present. This is contrary to the behaviour of most rm programs out there, and not conforming with the upcoming POSIX standard: Please tell bug-automake@gnu.org about your system, including the value of your $PATH and any error possibly output before this message. This can help us improve future automake versions. END if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then echo 'Configuration will proceed anyway, since you have set the' >&2 echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 echo >&2 else cat >&2 <<'END' Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation that behaves properly: . If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM to "yes", and re-run configure. END AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) fi fi dnl The trailing newline in this macro's definition is deliberate, for dnl backward compatibility and to allow trailing 'dnl'-style comments dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841. ]) 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-2014 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+set}" != 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-2014 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. # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Add --enable-maintainer-mode option to configure. -*- Autoconf -*- # From Jim Meyering # Copyright (C) 1996-2014 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_MAINTAINER_MODE([DEFAULT-MODE]) # ---------------------------------- # Control maintainer-specific portions of Makefiles. # Default is to disable them, unless 'enable' is passed literally. # For symmetry, 'disable' may be passed as well. Anyway, the user # can override the default with the --enable/--disable switch. AC_DEFUN([AM_MAINTAINER_MODE], [m4_case(m4_default([$1], [disable]), [enable], [m4_define([am_maintainer_other], [disable])], [disable], [m4_define([am_maintainer_other], [enable])], [m4_define([am_maintainer_other], [enable]) m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) dnl maintainer-mode's default is 'disable' unless 'enable' is passed AC_ARG_ENABLE([maintainer-mode], [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode], am_maintainer_other[ make rules and dependencies not useful (and sometimes confusing) to the casual installer])], [USE_MAINTAINER_MODE=$enableval], [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) AC_MSG_RESULT([$USE_MAINTAINER_MODE]) AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) MAINT=$MAINTAINER_MODE_TRUE AC_SUBST([MAINT])dnl ] ) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001-2014 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_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-2014 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_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 is modern enough. # If it is, 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 --is-lightweight"; then am_missing_run="$MISSING " else am_missing_run= AC_MSG_WARN(['missing' script is too old or missing]) fi ]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001-2014 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_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])]) # Copyright (C) 1999-2014 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_CC_C_O # --------------- # Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC # to automatically call this. AC_DEFUN([_AM_PROG_CC_C_O], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([compile])dnl AC_LANG_PUSH([C])dnl AC_CACHE_CHECK( [whether $CC understands -c and -o together], [am_cv_prog_cc_c_o], [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])]) # Make sure it works both with $CC and with simple cc. # Following AC_PROG_CC_C_O, we do the test twice because some # compilers refuse to overwrite an existing .o file with -o, # though they will create one. am_cv_prog_cc_c_o=yes for am_i in 1 2; do if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \ && test -f conftest2.$ac_objext; then : OK else am_cv_prog_cc_c_o=no break fi done rm -f core conftest* unset am_i]) if test "$am_cv_prog_cc_c_o" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" fi AC_LANG_POP([C])]) # For backward compatibility. AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) # Copyright (C) 2001-2014 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_RUN_LOG(COMMAND) # ------------------- # Run COMMAND, save the exit status in ac_status, and log it. # (This has been adapted from Autoconf's _AC_RUN_LOG macro.) AC_DEFUN([AM_RUN_LOG], [{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD (exit $ac_status); }]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996-2014 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_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # 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 ( am_has_slept=no for am_try in 1 2; do echo "timestamp, slept: $am_has_slept" > conftest.file 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 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 if test "$[2]" = conftest.file || test $am_try -eq 2; then break fi # Just in case. sleep 1 am_has_slept=yes done 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]) # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= if grep 'slept: no' conftest.file >/dev/null 2>&1; then ( sleep 1 ) & am_sleep_pid=$! fi AC_CONFIG_COMMANDS_PRE( [AC_MSG_CHECKING([that generated files are newer than configure]) if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi AC_MSG_RESULT([done])]) rm -f conftest.file ]) # Copyright (C) 2009-2014 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_SILENT_RULES([DEFAULT]) # -------------------------- # Enable less verbose build rules; with the default set to DEFAULT # ("yes" being less verbose, "no" or empty being verbose). AC_DEFUN([AM_SILENT_RULES], [AC_ARG_ENABLE([silent-rules], [dnl AS_HELP_STRING( [--enable-silent-rules], [less verbose build output (undo: "make V=1")]) AS_HELP_STRING( [--disable-silent-rules], [verbose build output (undo: "make V=0")])dnl ]) case $enable_silent_rules in @%:@ ((( yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; esac dnl dnl A few 'make' implementations (e.g., NonStop OS and NextStep) dnl do not support nested variable expansions. dnl See automake bug#9928 and bug#10237. am_make=${MAKE-make} AC_CACHE_CHECK([whether $am_make supports nested variables], [am_cv_make_support_nested_variables], [if AS_ECHO([['TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 am__doit: @$(TRUE) .PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no fi]) if test $am_cv_make_support_nested_variables = yes; then dnl Using '$V' instead of '$(V)' breaks IRIX make. AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi AC_SUBST([AM_V])dnl AM_SUBST_NOTMAKE([AM_V])dnl AC_SUBST([AM_DEFAULT_V])dnl AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl AC_SUBST([AM_DEFAULT_VERBOSITY])dnl AM_BACKSLASH='\' AC_SUBST([AM_BACKSLASH])dnl _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl ]) # Copyright (C) 2001-2014 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-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. AC_DEFUN([_AM_SUBST_NOTMAKE]) # 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-2014 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_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. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AC_SUBST([AMTAR], ['$${TAR-tar}']) # We'll loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' m4_if([$1], [v7], [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], [m4_case([$1], [ustar], [# The POSIX 1988 'ustar' format is defined with fixed-size fields. # There is notably a 21 bits limit for the UID and the GID. In fact, # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 # and bug#13588). am_max_uid=2097151 # 2^21 - 1 am_max_gid=$am_max_uid # The $UID and $GID variables are not portable, so we need to resort # to the POSIX-mandated id(1) utility. Errors in the 'id' calls # below are definitely unexpected, so allow the users to see them # (that is, avoid stderr redirection). am_uid=`id -u || echo unknown` am_gid=`id -g || echo unknown` AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) if test $am_uid -le $am_max_uid; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) _am_tools=none fi AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) if test $am_gid -le $am_max_gid; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) _am_tools=none fi], [pax], [], [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Go ahead even if we have the value already cached. We do so because we # need to set the values for the 'am__tar' and 'am__untar' variables. _am_tools=${am_cv_prog_tar_$1-$_am_tools} for _am_tool in $_am_tools; do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do AM_RUN_LOG([$_am_tar --version]) && break done am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x $1 -w "$$tardir"' am__tar_='pax -L -x $1 -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H $1 -L' am__tar_='find "$tardir" -print | cpio -o -H $1 -L' am__untar='cpio -i -H $1 -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_$1}" && break # tar/untar a dummy directory, and stop if the command works. rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) rm -rf conftest.dir if test -s conftest.tar; then AM_RUN_LOG([$am__untar /dev/null 2>&1 && break fi done rm -rf conftest.dir AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) AC_MSG_RESULT([$am_cv_prog_tar_$1])]) AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR m4_include([m4/libtool.m4]) m4_include([m4/ltoptions.m4]) m4_include([m4/ltsugar.m4]) m4_include([m4/ltversion.m4]) m4_include([m4/lt~obsolete.m4]) tcpcrypt-0.5/configure0000755000175200017520000163657112742073026014221 0ustar sorbosorbo#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.69 for tcpcrypt 0.5. # # Report bugs to . # # # Copyright (C) 1992-1996, 1998-2012 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. as_myself= 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 # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then _as_can_reexec=no; export _as_can_reexec; # 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. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 as_fn_exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} 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 test -x / || 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 -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO PATH=/empty FPATH=/empty; export PATH FPATH test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || 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 : export CONFIG_SHELL # 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. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 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 and $0: tcpcrypt-users@lists.stanford.edu 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_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_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 STATUS 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=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&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; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall # in an infinite loop. This has already happened in practice. _as_can_reexec=no; export _as_can_reexec # 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 -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' 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 as_test_x='test -x' as_executable_p=as_fn_executable_p # 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'" SHELL=${CONFIG_SHELL-/bin/sh} test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/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='tcpcrypt' PACKAGE_TARNAME='tcpcrypt' PACKAGE_VERSION='0.5' PACKAGE_STRING='tcpcrypt 0.5' PACKAGE_BUGREPORT='tcpcrypt-users@lists.stanford.edu' PACKAGE_URL='http://tcpcrypt.org' ac_unique_file="src/tcpcryptd.c" # 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 ALLOCA crypto_LDADD tcpcryptd_LDADD HAVE_NI_FALSE HAVE_NI_TRUE NO_ASM_FALSE NO_ASM_TRUE CXXFLAGS OS_MINGW_FALSE OS_MINGW_TRUE OS_BSD_FALSE OS_BSD_TRUE OS_LINUX_FALSE OS_LINUX_TRUE am__fastdepCCAS_FALSE am__fastdepCCAS_TRUE CCASDEPMODE CCASFLAGS CCAS CPP LT_SYS_LIBRARY_PATH OTOOL64 OTOOL LIPO NMEDIT DSYMUTIL MANIFEST_TOOL RANLIB DLLTOOL OBJDUMP 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 ac_ct_AR AR LN_S am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE am__nodep AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE am__quote am__include DEPDIR OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC TEST_SERVER JAIL_USER JAIL_DIR CONTROL_SOCKET DIVERT_PORT MAINT MAINTAINER_MODE_FALSE MAINTAINER_MODE_TRUE AM_BACKSLASH AM_DEFAULT_VERBOSITY AM_DEFAULT_V AM_V 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_silent_rules enable_maintainer_mode enable_dependency_tracking enable_shared enable_static with_pic enable_fast_install with_aix_soname with_gnu_ld with_sysroot enable_libtool_lock enable_debug enable_asm ' ac_precious_vars='build_alias host_alias target_alias DIVERT_PORT CONTROL_SOCKET JAIL_DIR JAIL_USER TEST_SERVER CC CFLAGS LDFLAGS LIBS CPPFLAGS LT_SYS_LIBRARY_PATH CPP CCAS CCASFLAGS' # 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= ;; *) 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 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 tcpcrypt 0.5 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/tcpcrypt] --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 tcpcrypt 0.5:";; 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] --enable-silent-rules less verbose build output (undo: "make V=1") --disable-silent-rules verbose build output (undo: "make V=0") --enable-maintainer-mode enable make rules and dependencies not useful (and sometimes confusing) to the casual installer --enable-dependency-tracking do not reject slow dependency extractors --disable-dependency-tracking speeds up one-time build --enable-shared[=PKGS] build shared libraries [default=yes] --enable-static[=PKGS] build static libraries [default=yes] --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-libtool-lock avoid locking (might break parallel builds) --enable-debug enable tracing and debugging flags for all components --enable-asm use asm checksum routine Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use both] --with-aix-soname=aix|svr4|both shared library versioning (aka "SONAME") variant to provide on AIX, [default=aix]. --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-sysroot[=DIR] Search for dependent libraries within DIR (or the compiler's sysroot if not specified). Some influential environment variables: DIVERT_PORT Default divert port for tcpcryptd CONTROL_SOCKET Default local control socket for tcpcryptd: unix-domain path or localhost port-number JAIL_DIR Default jail directory for tcpcryptd JAIL_USER Default jail username for tcpcryptd TEST_SERVER Default network test server for tcpcryptd 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 LT_SYS_LIBRARY_PATH User-defined run-time library search path. CPP C preprocessor CCAS assembler compiler command (defaults to CC) CCASFLAGS assembler compiler flags (defaults to CFLAGS) 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 . tcpcrypt home page: . _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 tcpcrypt configure 0.5 generated by GNU Autoconf 2.69 Copyright (C) 2012 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; ${as_lineno_stack:+:} 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 || 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; ${as_lineno_stack:+:} 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 eval \${$3+:} false; 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; ${as_lineno_stack:+:} 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; } > conftest.i && { 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; ${as_lineno_stack:+:} 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; ${as_lineno_stack:+:} 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 eval \${$3+:} false; 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; ${as_lineno_stack:+:} 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 eval \${$3+:} false; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; 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.i 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;} ( $as_echo "## ------------------------------------------------ ## ## Report this to tcpcrypt-users@lists.stanford.edu ## ## ------------------------------------------------ ##" ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; 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; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_mongrel # ac_fn_c_check_type LINENO TYPE VAR INCLUDES # ------------------------------------------- # Tests whether TYPE exists after having included INCLUDES, setting cache # variable VAR accordingly. ac_fn_c_check_type () { 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 eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=no" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof ($2)) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof (($2))) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else eval "$3=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 eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_type # ac_fn_c_find_uintX_t LINENO BITS VAR # ------------------------------------ # Finds an unsigned integer type with width BITS, setting cache variable VAR # accordingly. ac_fn_c_find_uintX_t () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uint$2_t" >&5 $as_echo_n "checking for uint$2_t... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=no" # Order is important - never check a type that is potentially smaller # than half of the expected target width. for ac_type in uint$2_t 'unsigned int' 'unsigned long int' \ 'unsigned long long int' 'unsigned short int' 'unsigned char'; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { static int test_array [1 - 2 * !((($ac_type) -1 >> ($2 / 2 - 1)) >> ($2 / 2 - 1) == 3)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : case $ac_type in #( uint$2_t) : eval "$3=yes" ;; #( *) : eval "$3=\$ac_type" ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if eval test \"x\$"$3"\" = x"no"; then : else break fi done 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; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_find_uintX_t 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 tcpcrypt $as_me 0.5, which was generated by GNU Autoconf 2.69. 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 $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" 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 $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" 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 $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" 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 $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" 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 # We do not want a PATH search for config.site. case $CONFIG_SITE in #(( -*) ac_site_file1=./$CONFIG_SITE;; */*) ac_site_file1=$CONFIG_SITE;; *) ac_site_file1=./$CONFIG_SITE;; esac 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" \ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } 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" ac_aux_dir= for ac_dir in config "$srcdir"/config; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then as_fn_error $? "cannot find install-sh, install.sh, or shtool in config \"$srcdir\"/config" "$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. am__api_version='1.15' # 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 ${ac_cv_path_install+:} false; 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 as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else 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; } # 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 ( am_has_slept=no for am_try in 1 2; do echo "timestamp, slept: $am_has_slept" > conftest.file 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 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 if test "$2" = conftest.file || test $am_try -eq 2; then break fi # Just in case. sleep 1 am_has_slept=yes done 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; } # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= if grep 'slept: no' conftest.file >/dev/null 2>&1; then ( sleep 1 ) & am_sleep_pid=$! fi rm -f conftest.file 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 --is-lightweight"; then am_missing_run="$MISSING " 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+set}" != 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 ${ac_cv_prog_STRIP+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_ac_ct_STRIP+:} false; 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 as_fn_executable_p "$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 ${ac_cv_path_mkdir+:} false; 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 as_fn_executable_p "$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; } 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 ${ac_cv_prog_AWK+:} false; 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 as_fn_executable_p "$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 eval \${ac_cv_prog_make_${ac_make}_set+:} false; 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 # Check whether --enable-silent-rules was given. if test "${enable_silent_rules+set}" = set; then : enableval=$enable_silent_rules; fi case $enable_silent_rules in # ((( yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=1;; esac am_make=${MAKE-make} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 $as_echo_n "checking whether $am_make supports nested variables... " >&6; } if ${am_cv_make_support_nested_variables+:} false; then : $as_echo_n "(cached) " >&6 else if $as_echo 'TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 am__doit: @$(TRUE) .PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 $as_echo "$am_cv_make_support_nested_variables" >&6; } if test $am_cv_make_support_nested_variables = yes; then AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi AM_BACKSLASH='\' 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='tcpcrypt' VERSION='0.5' 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"} # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: # # mkdir_p='$(MKDIR_P)' # We need awk for the "check" target (and possibly the TAP driver). The # system "awk" is bad on some platforms. # Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AMTAR='$${TAR-tar}' # We'll loop over all known methods to create a tar archive until one works. _am_tools='gnutar pax cpio none' am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' # POSIX will say in a future version that running "rm -f" with no argument # is OK; and we want to be able to make that assumption in our Makefile # recipes. So use an aggressive probe to check that the usage we want is # actually supported "in the wild" to an acceptable degree. # See automake bug#10828. # To make any issue more visible, cause the running configure to be aborted # by default if the 'rm' program in use doesn't match our expectations; the # user can still override this though. if rm -f && rm -fr && rm -rf; then : OK; else cat >&2 <<'END' Oops! Your 'rm' program seems unable to run without file operands specified on the command line, even when the '-f' option is present. This is contrary to the behaviour of most rm programs out there, and not conforming with the upcoming POSIX standard: Please tell bug-automake@gnu.org about your system, including the value of your $PATH and any error possibly output before this message. This can help us improve future automake versions. END if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then echo 'Configuration will proceed anyway, since you have set the' >&2 echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 echo >&2 else cat >&2 <<'END' Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation that behaves properly: . If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM to "yes", and re-run configure. END as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 $as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } # Check whether --enable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then : enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval else USE_MAINTAINER_MODE=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 $as_echo "$USE_MAINTAINER_MODE" >&6; } if test $USE_MAINTAINER_MODE = yes; then MAINTAINER_MODE_TRUE= MAINTAINER_MODE_FALSE='#' else MAINTAINER_MODE_TRUE='#' MAINTAINER_MODE_FALSE= fi MAINT=$MAINTAINER_MODE_TRUE if test -n "$DIVERT_PORT"; then cat >>confdefs.h <<_ACEOF #define TCPCRYPTD_DIVERT_PORT $DIVERT_PORT _ACEOF else $as_echo "#define TCPCRYPTD_DIVERT_PORT 666" >>confdefs.h fi if test -n "$CONTROL_SOCKET"; then cat >>confdefs.h <<_ACEOF #define TCPCRYPTD_CONTROL_SOCKET $CONTROL_SOCKET _ACEOF else $as_echo "#define TCPCRYPTD_CONTROL_SOCKET \"/var/run/tcpcryptd.control\"" >>confdefs.h fi if test -n "$JAIL_DIR"; then cat >>confdefs.h <<_ACEOF #define TCPCRYPTD_JAIL_DIR "$JAIL_DIR" _ACEOF else $as_echo "#define TCPCRYPTD_JAIL_DIR \"/var/run/tcpcryptd\"" >>confdefs.h fi if test -n "$JAIL_USER"; then cat >>confdefs.h <<_ACEOF #define TCPCRYPTD_JAIL_USER "$JAIL_USER" _ACEOF else $as_echo "#define TCPCRYPTD_JAIL_USER \"tcpcryptd\"" >>confdefs.h fi if test -n "$TEST_SERVER"; then cat >>confdefs.h <<_ACEOF #define TCPCRYPTD_TEST_SERVER "$TEST_SERVER" _ACEOF else $as_echo "#define TCPCRYPTD_TEST_SERVER \"check.tcpcrypt.org\"" >>confdefs.h fi # Checks for programs. 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 ${ac_cv_prog_CC+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_ac_ct_CC+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_CC+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_CC+:} false; 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $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 ${ac_cv_prog_CC+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_ac_ct_CC+:} false; 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 as_fn_executable_p "$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_error 77 "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 ${ac_cv_objext+:} false; 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 ${ac_cv_c_compiler_gnu+:} false; 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 ${ac_cv_prog_cc_g+:} false; 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 ${ac_cv_prog_cc_c89+:} false; 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 struct stat; /* 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 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 whether $CC understands -c and -o together" >&5 $as_echo_n "checking whether $CC understands -c and -o together... " >&6; } if ${am_cv_prog_cc_c_o+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF # Make sure it works both with $CC and with simple cc. # Following AC_PROG_CC_C_O, we do the test twice because some # compilers refuse to overwrite an existing .o file with -o, # though they will create one. am_cv_prog_cc_c_o=yes for am_i in 1 2; do if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } \ && test -f conftest2.$ac_objext; then : OK else am_cv_prog_cc_c_o=no break fi done rm -f core conftest* unset am_i fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 $as_echo "$am_cv_prog_cc_c_o" >&6; } if test "$am_cv_prog_cc_c_o" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" 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='\' am__nodep='_no' 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 ${am_cv_CC_dependencies_compiler_type+:} false; 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". rm -rf conftest.dir 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 10 /bin/sh. echo '/* dummy */' > 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 ;; msvc7 | msvc7msys | 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 { $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 if test -n "$ac_tool_prefix"; then for ac_prog in ar lib "link -lib" 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 ${ac_cv_prog_AR+:} false; 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AR="$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 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 test -n "$AR" && break done fi if test -z "$AR"; then ac_ct_AR=$AR for ac_prog in ar lib "link -lib" 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 ${ac_cv_prog_ac_ct_AR+:} false; 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="$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_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 test -n "$ac_ct_AR" && break done 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 fi : ${AR=ar} { $as_echo "$as_me:${as_lineno-$LINENO}: checking the archiver ($AR) interface" >&5 $as_echo_n "checking the archiver ($AR) interface... " >&6; } if ${am_cv_ar_interface+:} false; 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 am_cv_ar_interface=ar cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int some_variable = 0; _ACEOF if ac_fn_c_try_compile "$LINENO"; then : am_ar_try='$AR cru libconftest.a conftest.$ac_objext >&5' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$am_ar_try\""; } >&5 (eval $am_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test "$ac_status" -eq 0; then am_cv_ar_interface=ar else am_ar_try='$AR -NOLOGO -OUT:conftest.lib conftest.$ac_objext >&5' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$am_ar_try\""; } >&5 (eval $am_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test "$ac_status" -eq 0; then am_cv_ar_interface=lib else am_cv_ar_interface=unknown fi fi rm -f conftest.lib libconftest.a fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_ar_interface" >&5 $as_echo "$am_cv_ar_interface" >&6; } case $am_cv_ar_interface in ar) ;; lib) # Microsoft lib, so override with the ar-lib wrapper script. # FIXME: It is wrong to rewrite AR. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__AR in this case, # and then we could set am__AR="$am_aux_dir/ar-lib \$(AR)" or something # similar. AR="$am_aux_dir/ar-lib $AR" ;; unknown) as_fn_error $? "could not determine $AR interface" "$LINENO" 5 ;; esac 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.4.6' macro_revision='2.4.6' 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 ${ac_cv_build+:} false; 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 ${ac_cv_host+:} false; 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 # Backslashify 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' ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 $as_echo_n "checking how to print strings... " >&6; } # Test print first, because it will be a builtin if present. if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='print -r --' elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='printf %s\n' else # Use this function as a fallback that always works. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $1 _LTECHO_EOF' } ECHO='func_fallback_echo' fi # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "" } case $ECHO in printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5 $as_echo "printf" >&6; } ;; print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 $as_echo "print -r" >&6; } ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5 $as_echo "cat" >&6; } ;; 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 ${ac_cv_path_SED+:} false; 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" as_fn_executable_p "$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 ${ac_cv_path_GREP+:} false; 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" as_fn_executable_p "$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 ${ac_cv_path_EGREP+:} false; 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" as_fn_executable_p "$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 ${ac_cv_path_FGREP+:} false; 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" as_fn_executable_p "$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 no = "$withval" || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld if test yes = "$GCC"; 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 yes = "$with_gnu_ld"; 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 ${lt_cv_path_LD+:} false; 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 ${lt_cv_prog_gnu_ld+:} false; 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 ${lt_cv_path_NM+:} false; 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 # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty case $build_os in mingw*) lt_bad_file=conftest.nm/nofile ;; *) lt_bad_file=/dev/null ;; esac case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in *$lt_bad_file* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break 2 ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break 2 ;; *) 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 no != "$lt_cv_path_NM"; then NM=$lt_cv_path_NM else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$DUMPBIN"; then : # Let the user override the test. else if test -n "$ac_tool_prefix"; then for ac_prog in dumpbin "link -dump" 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 ${ac_cv_prog_DUMPBIN+:} false; 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 as_fn_executable_p "$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 "link -dump" 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 ${ac_cv_prog_ac_ct_DUMPBIN+:} false; 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 as_fn_executable_p "$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 case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in *COFF*) DUMPBIN="$DUMPBIN -symbols -headers" ;; *) DUMPBIN=: ;; esac 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 ${lt_cv_nm_interface+:} false; 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:$LINENO: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 (eval echo "\"\$as_me:$LINENO: 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; } # 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 ${lt_cv_sys_max_cmd_len+:} false; 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; ;; mint*) # On MiNT this can take a long time and run out of memory. 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; ;; bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*) # 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 ;; os2*) # The test takes a long time on OS/2. lt_cv_sys_max_cmd_len=8192 ;; 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" && \ test undefined != "$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`env echo "$teststring$teststring" 2>/dev/null` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && test 17 != "$i" # 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"} 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 how to convert $build file names to $host format" >&5 $as_echo_n "checking how to convert $build file names to $host format... " >&6; } if ${lt_cv_to_host_file_cmd+:} false; then : $as_echo_n "(cached) " >&6 else case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ;; esac ;; *-*-cygwin* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_noop ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ;; esac ;; * ) # unhandled hosts (and "normal" native builds) lt_cv_to_host_file_cmd=func_convert_file_noop ;; esac fi to_host_file_cmd=$lt_cv_to_host_file_cmd { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 $as_echo "$lt_cv_to_host_file_cmd" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 $as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } if ${lt_cv_to_tool_file_cmd+:} false; then : $as_echo_n "(cached) " >&6 else #assume ordinary cross tools, or native build. lt_cv_to_tool_file_cmd=func_convert_file_noop case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ;; esac ;; esac fi to_tool_file_cmd=$lt_cv_to_tool_file_cmd { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 $as_echo "$lt_cv_to_tool_file_cmd" >&6; } { $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 ${lt_cv_ld_reload_flag+:} false; 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 cygwin* | mingw* | pw32* | cegcc*) if test yes != "$GCC"; then reload_cmds=false fi ;; darwin*) if test yes = "$GCC"; 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 ${ac_cv_prog_OBJDUMP+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_ac_ct_OBJDUMP+:} false; 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 as_fn_executable_p "$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 ${lt_cv_deplibs_check_method+:} false; 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 # that 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 # Keep this pattern in sync with the one in func_win32_libid. lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' 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 ;; haiku*) 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])(-bit)?( [LM]SB)? 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 glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) lt_cv_deplibs_check_method=pass_all ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd* | bitrig*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; 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 ;; os2*) 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_glob= want_nocaseglob=no if test "$build" = "$host"; then case $host_os in mingw* | pw32*) if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then want_nocaseglob=yes else file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` fi ;; esac fi 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}dlltool", so it can be a program name with args. set dummy ${ac_tool_prefix}dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DLLTOOL"; then ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" $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 DLLTOOL=$ac_cv_prog_DLLTOOL if test -n "$DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 $as_echo "$DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DLLTOOL"; then ac_ct_DLLTOOL=$DLLTOOL # Extract the first word of "dlltool", so it can be a program name with args. set dummy dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DLLTOOL"; then ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DLLTOOL="dlltool" $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_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL if test -n "$ac_ct_DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 $as_echo "$ac_ct_DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DLLTOOL" = x; then DLLTOOL="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 DLLTOOL=$ac_ct_DLLTOOL fi else DLLTOOL="$ac_cv_prog_DLLTOOL" fi test -z "$DLLTOOL" && DLLTOOL=dlltool { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 $as_echo_n "checking how to associate runtime and link libraries... " >&6; } if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_sharedlib_from_linklib_cmd='unknown' case $host_os in cygwin* | mingw* | pw32* | cegcc*) # two different shell functions defined in ltmain.sh; # decide which one to use based on capabilities of $DLLTOOL case `$DLLTOOL --help 2>&1` in *--identify-strict*) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ;; *) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ;; esac ;; *) # fallback: assume linklib IS sharedlib lt_cv_sharedlib_from_linklib_cmd=$ECHO ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 $as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO if test -n "$ac_tool_prefix"; then for ac_prog in ar 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 ${ac_cv_prog_AR+:} false; 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AR="$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 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 test -n "$AR" && break done fi if test -z "$AR"; then ac_ct_AR=$AR for ac_prog in ar 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 ${ac_cv_prog_ac_ct_AR+:} false; 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="$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_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 test -n "$ac_ct_AR" && break done 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 fi : ${AR=ar} : ${AR_FLAGS=cru} { $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 $as_echo_n "checking for archiver @FILE support... " >&6; } if ${lt_cv_ar_at_file+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ar_at_file=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : echo conftest.$ac_objext > conftest.lst lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 (eval $lt_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test 0 -eq "$ac_status"; then # Ensure the archiver fails upon bogus file names. rm -f conftest.$ac_objext libconftest.a { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 (eval $lt_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test 0 -ne "$ac_status"; then lt_cv_ar_at_file=@ fi fi rm -f conftest.* libconftest.a fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 $as_echo "$lt_cv_ar_at_file" >&6; } if test no = "$lt_cv_ar_at_file"; then archiver_list_spec= else archiver_list_spec=$lt_cv_ar_at_file fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_STRIP+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_ac_ct_STRIP+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_RANLIB+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_ac_ct_RANLIB+:} false; 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 as_fn_executable_p "$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 bitrig* | openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" fi case $host_os in darwin*) lock_old_archive_extraction=yes ;; *) lock_old_archive_extraction=no ;; esac # 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 ${lt_cv_sys_global_symbol_pipe+:} false; 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 ia64 = "$host_cpu"; 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 if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Gets list of data symbols to import. lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'" # Adjust the below global symbol transforms to fixup imported variables. lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" lt_c_name_lib_hook="\ -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\ -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'" else # Disable hooks by default. lt_cv_sys_global_symbol_to_import= lt_cdecl_hook= lt_c_name_hook= lt_c_name_lib_hook= fi # 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"\ $lt_cdecl_hook\ " -e 's/^T .* \(.*\)$/extern int \1();/p'"\ " -e 's/^$symcode$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"\ $lt_c_name_hook\ " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" # Transform an extracted symbol line into symbol name with lib prefix and # symbol address. lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\ $lt_c_name_lib_hook\ " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ " -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/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, # D for any global variable and I for any imported 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};"\ " /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\ " /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\ " /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\ " {split(\$ 0,a,/\||\r/); split(a[2],s)};"\ " s[1]~/^[@?]/{print f,s[1],s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print f,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 lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" # 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 /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE /* DATA imports from DLLs on WIN32 can't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT_DLSYM_CONST #elif defined __osf__ /* This system does not cope well with relocations in const data. */ # define LT_DLSYM_CONST #else # define LT_DLSYM_CONST const #endif #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. */ LT_DLSYM_CONST struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$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_globsym_save_LIBS=$LIBS lt_globsym_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_globsym_save_LIBS CFLAGS=$lt_globsym_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 yes = "$pipe_works"; 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 # Response file support. if test "$lt_cv_nm_interface" = "MS dumpbin"; then nm_file_list_spec='@' elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then nm_file_list_spec='@' fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 $as_echo_n "checking for sysroot... " >&6; } # Check whether --with-sysroot was given. if test "${with_sysroot+set}" = set; then : withval=$with_sysroot; else with_sysroot=no fi lt_sysroot= case $with_sysroot in #( yes) if test yes = "$GCC"; then lt_sysroot=`$CC --print-sysroot 2>/dev/null` fi ;; #( /*) lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` ;; #( no|'') ;; #( *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5 $as_echo "$with_sysroot" >&6; } as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 $as_echo "${lt_sysroot:-no}" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5 $as_echo_n "checking for a working dd... " >&6; } if ${ac_cv_path_lt_DD+:} false; then : $as_echo_n "(cached) " >&6 else printf 0123456789abcdef0123456789abcdef >conftest.i cat conftest.i conftest.i >conftest2.i : ${lt_DD:=$DD} if test -z "$lt_DD"; then ac_path_lt_DD_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 dd; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_lt_DD="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_lt_DD" || continue if "$ac_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then cmp -s conftest.i conftest.out \ && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=: fi $ac_path_lt_DD_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_lt_DD"; then : fi else ac_cv_path_lt_DD=$lt_DD fi rm -f conftest.i conftest2.i conftest.out fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5 $as_echo "$ac_cv_path_lt_DD" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5 $as_echo_n "checking how to truncate binary pipes... " >&6; } if ${lt_cv_truncate_bin+:} false; then : $as_echo_n "(cached) " >&6 else printf 0123456789abcdef0123456789abcdef >conftest.i cat conftest.i conftest.i >conftest2.i lt_cv_truncate_bin= if "$ac_cv_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then cmp -s conftest.i conftest.out \ && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1" fi rm -f conftest.i conftest2.i conftest.out test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5 $as_echo "$lt_cv_truncate_bin" >&6; } # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. func_cc_basename () { for cc_temp in $*""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` } # Check whether --enable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then : enableval=$enable_libtool_lock; fi test no = "$enable_libtool_lock" || 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 what ABI is being produced by ac_compile, and set mode # options accordingly. 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 what ABI is being produced by ac_compile, and set linker # options accordingly. echo '#line '$LINENO' "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 yes = "$lt_cv_prog_gnu_ld"; 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* ;; mips64*-*linux*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. echo '#line '$LINENO' "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 emul=elf case `/usr/bin/file conftest.$ac_objext` in *32-bit*) emul="${emul}32" ;; *64-bit*) emul="${emul}64" ;; esac case `/usr/bin/file conftest.$ac_objext` in *MSB*) emul="${emul}btsmip" ;; *LSB*) emul="${emul}ltsmip" ;; esac case `/usr/bin/file conftest.$ac_objext` in *N32*) emul="${emul}n32" ;; esac LD="${LD-ld} -m $emul" fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. Note that the listed cases only cover the # situations where additional linker options are needed (such as when # doing 32-bit compilation for a host where ld defaults to 64-bit, or # vice versa); the common cases where no linker options are needed do # not appear in the list. 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*) case `/usr/bin/file conftest.o` in *x86-64*) LD="${LD-ld} -m elf32_x86_64" ;; *) LD="${LD-ld} -m elf_i386" ;; esac ;; powerpc64le-*linux*) LD="${LD-ld} -m elf32lppclinux" ;; 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" ;; powerpcle-*linux*) LD="${LD-ld} -m elf64lppc" ;; 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 ${lt_cv_cc_needs_belf+:} false; 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 yes != "$lt_cv_cc_needs_belf"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS=$SAVE_CFLAGS fi ;; *-*solaris*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. 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*) case $host in i?86-*-solaris*|x86_64-*-solaris*) LD="${LD-ld} -m elf_x86_64" ;; sparc*-*-solaris*) LD="${LD-ld} -m elf64_sparc" ;; esac # GNU ld 2.21 introduced _sol2 emulations. Use them if available. if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then LD=${LD-ld}_sol2 fi ;; *) 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 if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. set dummy ${ac_tool_prefix}mt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$MANIFEST_TOOL"; then ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" $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 MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL if test -n "$MANIFEST_TOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 $as_echo "$MANIFEST_TOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_MANIFEST_TOOL"; then ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL # Extract the first word of "mt", so it can be a program name with args. set dummy mt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_MANIFEST_TOOL"; then ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" $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_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL if test -n "$ac_ct_MANIFEST_TOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 $as_echo "$ac_ct_MANIFEST_TOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_MANIFEST_TOOL" = x; then MANIFEST_TOOL=":" 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 MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL fi else MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" fi test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 $as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } if ${lt_cv_path_mainfest_tool+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_path_mainfest_tool=no echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out cat conftest.err >&5 if $GREP 'Manifest Tool' conftest.out > /dev/null; then lt_cv_path_mainfest_tool=yes fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 $as_echo "$lt_cv_path_mainfest_tool" >&6; } if test yes != "$lt_cv_path_mainfest_tool"; then MANIFEST_TOOL=: fi 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 ${ac_cv_prog_DSYMUTIL+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_NMEDIT+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_ac_ct_NMEDIT+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_LIPO+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_ac_ct_LIPO+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_OTOOL+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_ac_ct_OTOOL+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_OTOOL64+:} false; 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 as_fn_executable_p "$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 ${ac_cv_prog_ac_ct_OTOOL64+:} false; 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 as_fn_executable_p "$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 ${lt_cv_apple_cc_single_mod+:} false; 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 there is a non-empty error log, and "single_module" # appears in it, assume the flag caused a linker warning if test -s conftest.err && $GREP single_module conftest.err; then cat conftest.err >&5 # Otherwise, if the output was created with a 0 exit code from # the compiler, it worked. elif test -f libconftest.dylib && test 0 = "$_lt_result"; 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 ${lt_cv_ld_exported_symbols_list+:} false; 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; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 $as_echo_n "checking for -force_load linker flag... " >&6; } if ${lt_cv_ld_force_load+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 echo "$AR cru libconftest.a conftest.o" >&5 $AR cru libconftest.a conftest.o 2>&5 echo "$RANLIB libconftest.a" >&5 $RANLIB libconftest.a 2>&5 cat > conftest.c << _LT_EOF int main() { return 0;} _LT_EOF echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err _lt_result=$? if test -s conftest.err && $GREP force_load conftest.err; then cat conftest.err >&5 elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then lt_cv_ld_force_load=yes else cat conftest.err >&5 fi rm -f conftest.err libconftest.a conftest conftest.c rm -rf conftest.dSYM fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 $as_echo "$lt_cv_ld_force_load" >&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 yes = "$lt_cv_apple_cc_single_mod"; then _lt_dar_single_mod='$single_module' fi if test yes = "$lt_cv_ld_exported_symbols_list"; 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" && test no = "$lt_cv_ld_force_load"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac # func_munge_path_list VARIABLE PATH # ----------------------------------- # VARIABLE is name of variable containing _space_ separated list of # directories to be munged by the contents of PATH, which is string # having a format: # "DIR[:DIR]:" # string "DIR[ DIR]" will be prepended to VARIABLE # ":DIR[:DIR]" # string "DIR[ DIR]" will be appended to VARIABLE # "DIRP[:DIRP]::[DIRA:]DIRA" # string "DIRP[ DIRP]" will be prepended to VARIABLE and string # "DIRA[ DIRA]" will be appended to VARIABLE # "DIR[:DIR]" # VARIABLE will be replaced by "DIR[ DIR]" func_munge_path_list () { case x$2 in x) ;; *:) eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\" ;; x:*) eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\" ;; *::*) eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\" ;; *) eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\" ;; 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 ${ac_cv_prog_CPP+:} false; 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.i 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.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i 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.i 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.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i 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 ${ac_cv_header_stdc+:} false; 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 " if eval test \"x\$"$as_ac_Header"\" = 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" = xyes; 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 --enable-static was given. if test "${enable_static+set}" = set; then : enableval=$enable_static; p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for pkg in $enableval; do IFS=$lt_save_ifs if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS=$lt_save_ifs ;; esac else enable_static=yes fi # Check whether --with-pic was given. if test "${with_pic+set}" = set; then : withval=$with_pic; lt_p=${PACKAGE-default} case $withval in yes|no) pic_mode=$withval ;; *) pic_mode=default # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for lt_pkg in $withval; do IFS=$lt_save_ifs if test "X$lt_pkg" = "X$lt_p"; then pic_mode=yes fi done IFS=$lt_save_ifs ;; esac else pic_mode=default fi # Check whether --enable-fast-install was given. if test "${enable_fast_install+set}" = set; then : enableval=$enable_fast_install; p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for pkg in $enableval; do IFS=$lt_save_ifs if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS=$lt_save_ifs ;; esac else enable_fast_install=yes fi shared_archive_member_spec= case $host,$enable_shared in power*-*-aix[5-9]*,yes) { $as_echo "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5 $as_echo_n "checking which variant of shared library versioning to provide... " >&6; } # Check whether --with-aix-soname was given. if test "${with_aix_soname+set}" = set; then : withval=$with_aix_soname; case $withval in aix|svr4|both) ;; *) as_fn_error $? "Unknown argument to --with-aix-soname" "$LINENO" 5 ;; esac lt_cv_with_aix_soname=$with_aix_soname else if ${lt_cv_with_aix_soname+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_with_aix_soname=aix fi with_aix_soname=$lt_cv_with_aix_soname fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5 $as_echo "$with_aix_soname" >&6; } if test aix != "$with_aix_soname"; then # For the AIX way of multilib, we name the shared archive member # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o', # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File. # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag, # the AIX toolchain works better with OBJECT_MODE set (default 32). if test 64 = "${OBJECT_MODE-32}"; then shared_archive_member_spec=shr_64 else shared_archive_member_spec=shr fi fi ;; *) with_aix_soname=aix ;; esac # 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 ${lt_cv_objdir+:} false; 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 set != "${COLLECT_NAMES+set}"; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # 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 func_cc_basename $compiler cc_basename=$func_cc_basename_result # 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 ${lt_cv_path_MAGIC_CMD+:} false; 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 ${lt_cv_path_MAGIC_CMD+:} false; 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* ## 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... if test -n "$compiler"; then lt_prog_compiler_no_builtin_flag= if test yes = "$GCC"; then case $cc_basename in nvcc*) lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; *) lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; esac { $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 ${lt_cv_prog_compiler_rtti_exceptions+:} false; 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" ## exclude from sc_useless_quotes_in_assignment # 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:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $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 "$_lt_compiler_boilerplate" | $SED '/^$/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 yes = "$lt_cv_prog_compiler_rtti_exceptions"; 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= if test yes = "$GCC"; then lt_prog_compiler_wl='-Wl,' lt_prog_compiler_static='-static' case $host_os in aix*) # All AIX code is PIC. if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' fi lt_prog_compiler_pic='-fPIC' ;; 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' case $host_os in os2*) lt_prog_compiler_static='$wl-static' ;; esac ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. lt_prog_compiler_static= ;; 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 case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 lt_prog_compiler_wl='-Xlinker ' if test -n "$lt_prog_compiler_pic"; then lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic" fi ;; 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 ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' else lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' fi ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' case $cc_basename in nagfor*) # NAG Fortran compiler lt_prog_compiler_wl='-Wl,-Wl,,' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; esac ;; 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' case $host_os in os2*) lt_prog_compiler_static='$wl-static' ;; esac ;; 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 | 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' ;; nagfor*) # NAG Fortran compiler lt_prog_compiler_wl='-Wl,-Wl,,' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; tcc*) # Fabrice Bellard et al's Tiny C Compiler lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # 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* | bgxl* | bgf* | mpixl*) # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-qpic' lt_prog_compiler_static='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) # 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='' ;; *Sun\ F* | *Sun*Fortran*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Qoption ld ' ;; *Sun\ C*) # Sun C 5.9 lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Wl,' ;; *Intel*\ [CF]*Compiler*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; *Portland\ Group*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; 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* | sunf77* | sunf90* | sunf95*) 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 that 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}: checking for $compiler option to produce PIC" >&5 $as_echo_n "checking for $compiler option to produce PIC... " >&6; } if ${lt_cv_prog_compiler_pic+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic=$lt_prog_compiler_pic fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 $as_echo "$lt_cv_prog_compiler_pic" >&6; } lt_prog_compiler_pic=$lt_cv_prog_compiler_pic # # 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 ${lt_cv_prog_compiler_pic_works+:} false; 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" ## exclude from sc_useless_quotes_in_assignment # 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:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $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 "$_lt_compiler_boilerplate" | $SED '/^$/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 yes = "$lt_cv_prog_compiler_pic_works"; 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 ${lt_cv_prog_compiler_static_works+:} false; 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 "$_lt_linker_boilerplate" | $SED '/^$/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 yes = "$lt_cv_prog_compiler_static_works"; 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 ${lt_cv_prog_compiler_c_o+:} false; 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:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $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 "$_lt_compiler_boilerplate" | $SED '/^$/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 ${lt_cv_prog_compiler_c_o+:} false; 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:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $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 "$_lt_compiler_boilerplate" | $SED '/^$/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 no = "$lt_cv_prog_compiler_c_o" && test no != "$need_locks"; 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 no = "$hard_links"; 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_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 yes != "$GCC"; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd* | bitrig*) with_gnu_ld=no ;; esac ld_shlibs=yes # On some targets, GNU ld is compatible enough with the native linker # that we're better off using the native interface for both. lt_use_gnu_ld_interface=no if test yes = "$with_gnu_ld"; then case $host_os in aix*) # The AIX port of GNU ld has always aspired to compatibility # with the native linker. However, as the warning in the GNU ld # block says, versions before 2.19.5* couldn't really create working # shared libraries, regardless of the interface used. case `$LD -v 2>&1` in *\ \(GNU\ Binutils\)\ 2.19.5*) ;; *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; *\ \(GNU\ Binutils\)\ [3-9]*) ;; *) lt_use_gnu_ld_interface=yes ;; esac ;; *) lt_use_gnu_ld_interface=yes ;; esac fi if test yes = "$lt_use_gnu_ld_interface"; 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 | $SED -e 's/(^)\+)\s\+//' 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 ia64 != "$host_cpu"; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.19, 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 install binutils *** 2.20 or above, or modify your PATH so that a non-GNU linker is found. *** You will then need to restart the configuration process. _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' export_dynamic_flag_spec='$wl--export-all-symbols' 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/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' 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, use it as # is; otherwise, prepend EXPORTS... archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; 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 ;; haiku*) archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' link_all_deplibs=yes ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported shrext_cmds=.dll archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ prefix_cmds="$SED"~ if test EXPORTS = "`$SED 1q $export_symbols`"; then prefix_cmds="$prefix_cmds -e 1d"; fi~ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' enable_shared_with_static_runtimes=yes ;; 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 linux-dietlibc = "$host_os"; 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 no = "$tmp_diet" then tmp_addflag=' $pic_flag' 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; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95* | pgfortran*) # 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; func_echo_all \"$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' ;; nagfor*) # NAGFOR 5.3 tmp_sharedflag='-Wl,-shared' ;; xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; nvcc*) # Cuda Compiler Driver 2.2 whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' compiler_needs_object=yes ;; 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; func_echo_all \"$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 yes = "$supports_anon_versioning"; 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 tcc*) export_dynamic_flag_spec='-rdynamic' ;; xlf* | bgf* | bgxlf* | mpixlf*) # 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='$wl-rpath $wl$libdir' archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test yes = "$supports_anon_versioning"; 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 $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else ld_shlibs=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $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 $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $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 cannot *** 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 $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $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 no = "$ld_shlibs"; 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 yes = "$GCC" && 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 ia64 = "$host_cpu"; 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 GNU nm, but means don't demangle to AIX nm. # Without the "-l" option, or with the "-B" option, AIX nm treats # weak defined symbols like other global defined symbols, whereas # GNU nm marks them as "W". # While the 'weak' keyword is ignored in the Export File, we need # it in the Import File for the 'aix-soname' feature, so we have # to replace the "-B" option with "-P" for AIX 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") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' else export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | 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 # have runtime linking enabled, and use it for executables. # For shared libraries, we enable/disable runtime linking # depending on the kind of the shared library created - # when "with_aix_soname,aix_use_runtimelinking" is: # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables # "aix,yes" lib.so shared, rtl:yes, for executables # lib.a static archive # "both,no" lib.so.V(shr.o) shared, rtl:yes # lib.a(lib.so.V) shared, rtl:no, for executables # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a(lib.so.V) shared, rtl:no # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a static archive case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then aix_use_runtimelinking=yes break fi done if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then # With aix-soname=svr4, we create the lib.so.V shared archives only, # so we don't have lib.a shared libs to link our executables. # We have to force runtime linking in this case. aix_use_runtimelinking=yes LDFLAGS="$LDFLAGS -Wl,-brtl" fi ;; 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,' case $with_aix_soname,$aix_use_runtimelinking in aix,*) ;; # traditional, no import file svr4,* | *,yes) # use import file # The Import File defines what to hardcode. hardcode_direct=no hardcode_direct_absolute=no ;; esac if test yes = "$GCC"; 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 yes = "$aix_use_runtimelinking"; then shared_flag="$shared_flag "'$wl-G' fi # Need to ensure runtime linking is disabled for the traditional # shared library, or the linker may eventually find shared libraries # /with/ Import File - we do not want to mix them. shared_flag_aix='-shared' shared_flag_svr4='-shared $wl-G' else # not using gcc if test ia64 = "$host_cpu"; 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 yes = "$aix_use_runtimelinking"; then shared_flag='$wl-G' else shared_flag='$wl-bM:SRE' fi shared_flag_aix='$wl-bM:SRE' shared_flag_svr4='$wl-G' 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,yes = "$with_aix_soname,$aix_use_runtimelinking"; 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. if test set = "${lt_cv_aix_libpath+set}"; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath_+:} false; then : $as_echo_n "(cached) " >&6 else 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 } }' lt_cv_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 "$lt_cv_aix_libpath_"; then lt_cv_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 "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=/usr/lib:/lib fi fi aix_libpath=$lt_cv_aix_libpath_ 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 -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag else if test ia64 = "$host_cpu"; 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. if test set = "${lt_cv_aix_libpath+set}"; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath_+:} false; then : $as_echo_n "(cached) " >&6 else 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 } }' lt_cv_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 "$lt_cv_aix_libpath_"; then lt_cv_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 "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=/usr/lib:/lib fi fi aix_libpath=$lt_cv_aix_libpath_ 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' if test yes = "$with_gnu_ld"; then # We only use this code for GNU lds that support --whole-archive. whole_archive_flag_spec='$wl--whole-archive$convenience $wl--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec='$convenience' fi archive_cmds_need_lc=yes archive_expsym_cmds='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' # -brtl affects multiple linker settings, -berok does not and is overridden later compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([, ]\\)%-berok\\1%g"`' if test svr4 != "$with_aix_soname"; then # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' fi if test aix != "$with_aix_soname"; then archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' else # used by -dlpreopen to get the symbols archive_expsym_cmds="$archive_expsym_cmds"'~$MV $output_objdir/$realname.d/$soname $output_objdir' fi archive_expsym_cmds="$archive_expsym_cmds"'~$RM -r $output_objdir/$realname.d' 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. case $cc_basename in cl*) # Native MSVC hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported always_export_symbols=yes file_list_spec='@' # 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 $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then cp "$export_symbols" "$output_objdir/$soname.def"; echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; else $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, )='true' enable_shared_with_static_runtimes=yes exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' # Don't use ranlib old_postinstall_cmds='chmod 644 $oldlib' postlink_cmds='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile=$lt_outputfile.exe lt_tool_outputfile=$lt_tool_outputfile.exe ;; esac~ if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # Assume MSVC wrapper 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 `func_echo_all "$deplibs" | $SED '\''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' enable_shared_with_static_runtimes=yes ;; esac ;; darwin* | rhapsody*) archive_cmds_need_lc=no hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported if test yes = "$lt_cv_ld_force_load"; then whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' else whole_archive_flag_spec='' fi link_all_deplibs=yes allow_undefined_flag=$_lt_dar_allow_undefined case $cc_basename in ifort*|nagfor*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test yes = "$_lt_dar_can_shared"; then output_verbose_link_cmd=func_echo_all 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 ;; # 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 $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; hpux9*) if test yes = "$GCC"; then archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$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 "x$output_objdir/$soname" = "x$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 yes,no = "$GCC,$with_gnu_ld"; then archive_cmds='$CC -shared $pic_flag $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 no = "$with_gnu_ld"; then hardcode_libdir_flag_spec='$wl+b $wl$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 yes,no = "$GCC,$with_gnu_ld"; 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 $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -shared $pic_flag $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' ;; *) # Older versions of the 11.00 compiler do not understand -b yet # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 $as_echo_n "checking if $CC understands -b... " >&6; } if ${lt_cv_prog_compiler__b+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler__b=no save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -b" 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 "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler__b=yes fi else lt_cv_prog_compiler__b=yes fi fi $RM -r conftest* LDFLAGS=$save_LDFLAGS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 $as_echo "$lt_cv_prog_compiler__b" >&6; } if test yes = "$lt_cv_prog_compiler__b"; then archive_cmds='$CC -b $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 ;; esac fi if test no = "$with_gnu_ld"; 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 yes = "$GCC"; then archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $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. # This should be the same for all languages, so no per-tag cache variable. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 $as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } if ${lt_cv_irix_exported_symbol+:} false; then : $as_echo_n "(cached) " >&6 else 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) { return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_irix_exported_symbol=yes else lt_cv_irix_exported_symbol=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_irix_exported_symbol" >&5 $as_echo "$lt_cv_irix_exported_symbol" >&6; } if test yes = "$lt_cv_irix_exported_symbol"; then archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' fi else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -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 ;; linux*) case $cc_basename in tcc*) # Fabrice Bellard et al's Tiny C Compiler ld_shlibs=yes archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; newsos6) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' hardcode_libdir_separator=: hardcode_shlibpath_var=no ;; *nto* | *qnx*) ;; openbsd* | bitrig*) 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__`"; 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 archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='$wl-rpath,$libdir' fi else ld_shlibs=no fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported shrext_cmds=.dll archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ prefix_cmds="$SED"~ if test EXPORTS = "`$SED 1q $export_symbols`"; then prefix_cmds="$prefix_cmds -e 1d"; fi~ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' enable_shared_with_static_runtimes=yes ;; osf3*) if test yes = "$GCC"; 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" && func_echo_all "$wl-set_version $wl$verstring"` $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" && func_echo_all "-set_version $verstring"` -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 yes = "$GCC"; then allow_undefined_flag=' $wl-expect_unresolved $wl\*' archive_cmds='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; 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 "-set_version $verstring"` -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 yes = "$GCC"; then wlarc='$wl' archive_cmds='$CC -shared $pic_flag $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 $pic_flag $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 yes = "$GCC"; 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 sequent = "$host_vendor"; 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 yes = "$GCC"; 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 CANNOT 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 yes = "$GCC"; 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 sni = "$host_vendor"; 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 no = "$ld_shlibs" && 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 yes,yes = "$GCC,$enable_shared"; 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; } if ${lt_cv_archive_cmds_need_lc+:} false; then : $as_echo_n "(cached) " >&6 else $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 lt_cv_archive_cmds_need_lc=no else lt_cv_archive_cmds_need_lc=yes fi allow_undefined_flag=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 $as_echo "$lt_cv_archive_cmds_need_lc" >&6; } archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc ;; 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 yes = "$GCC"; then case $host_os in darwin*) lt_awk_arg='/^libraries:/,/LR/' ;; *) lt_awk_arg='/^libraries:/' ;; esac case $host_os in mingw* | cegcc*) lt_sed_strip_eq='s|=\([A-Za-z]:\)|\1|g' ;; *) lt_sed_strip_eq='s|=/|/|g' ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` case $lt_search_path_spec in *\;*) # 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 's/;/ /g'` ;; *) lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` ;; esac # 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` # ...but if some path component already ends with the multilib dir we assume # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer). case "$lt_multi_os_dir; $lt_search_path_spec " in "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*) lt_multi_os_dir= ;; esac 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" elif test -n "$lt_multi_os_dir"; then 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; } }'` # AWK program above erroneously prepends '/' to C:/dos/paths # for these hosts. case $host_os in mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ $SED 's|/\([A-Za-z]:\)|\1|g'` ;; esac sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` 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 # correct to gnu/linux during the next big refactor 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 # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes if test ia64 = "$host_cpu"; 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 # Using Import Files as archive members, it is possible to support # filename-based versioning of shared library archives on AIX. While # this would work for both with and without runtime linking, it will # prevent static linking of such archives. So we do filename-based # shared library versioning with .so extension only, which is used # when both runtime linking and shared linking is enabled. # Unfortunately, runtime linking may impact performance, so we do # not want this to be the default eventually. Also, we use the # versioned .so libs for executables only if there is the -brtl # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only. # To allow for filename-based versioning support, we need to create # libNAME.so.V as an archive file, containing: # *) an Import File, referring to the versioned filename of the # archive as well as the shared archive member, telling the # bitwidth (32 or 64) of that shared object, and providing the # list of exported symbols of that shared object, eventually # decorated with the 'weak' keyword # *) the shared object with the F_LOADONLY flag set, to really avoid # it being seen by the linker. # At run time we better use the real file rather than another symlink, # but for link time we create the symlink libNAME.so -> libNAME.so.V case $with_aix_soname,$aix_use_runtimelinking in # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. aix,yes) # traditional libtool dynamic_linker='AIX unversionable lib.so' # 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' ;; aix,no) # traditional AIX only dynamic_linker='AIX lib.a(lib.so.V)' # 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' ;; svr4,*) # full svr4 only dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o)" library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' # We do not specify a path in Import Files, so LIBPATH fires. shlibpath_overrides_runpath=yes ;; *,yes) # both, prefer svr4 dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o), lib.a(lib.so.V)" library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' # unpreferred sharedlib libNAME.a needs extra handling postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"' postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"' # We do not specify a path in Import Files, so LIBPATH fires. shlibpath_overrides_runpath=yes ;; *,no) # both, prefer aix dynamic_linker="AIX lib.a(lib.so.V), lib.so.V($shared_archive_member_spec.o)" library_names_spec='$libname$release.a $libname.a' soname_spec='$libname$release$shared_ext$major' # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)' postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"' ;; esac 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=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; $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 # correct to gnu/linux during the next big refactor 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,$cc_basename in yes,*) # gcc 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="$sys_lib_search_path_spec /usr/lib/w32api" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' ;; 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 dynamic_linker='Win32 ld.exe' ;; *,cl*) # Native MSVC libname_spec='$name' soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' library_names_spec='$libname.dll.lib' case $build_os in mingw*) sys_lib_search_path_spec= lt_save_ifs=$IFS IFS=';' for lt_path in $LIB do IFS=$lt_save_ifs # Let DOS variable expansion print the short 8.3 style file name. lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" done IFS=$lt_save_ifs # Convert to MSYS style. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form # but this time dos style (no spaces!) so that the unix form looks # like /cygdrive/c/PROGRA~1:/cygdr... sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) sys_lib_search_path_spec=$LIB if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH. 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 # FIXME: find the short name or the path components, as spaces are # common. (e.g. "Program Files" -> "PROGRA~1") ;; esac # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \$file`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes dynamic_linker='Win32 link.exe' ;; *) # Assume MSVC wrapper library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac # 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 # correct to gnu/linux during the next big refactor 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 ;; 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[23].*) 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$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' 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 ;; haiku*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" 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=LIBRARY_PATH shlibpath_overrides_runpath=no sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' 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 32 = "$HPUX_IA64_MODE"; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" sys_lib_dlsearch_path_spec=/usr/lib/hpux32 else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" sys_lib_dlsearch_path_spec=/usr/lib/hpux64 fi ;; 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' # or fails outright, so override atomically: install_override_mode=555 ;; interix[3-9]*) version_type=linux # correct to gnu/linux during the next big refactor 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 yes = "$lt_cv_prog_gnu_ld"; then version_type=linux # correct to gnu/linux during the next big refactor 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 ;; linux*android*) version_type=none # Android doesn't support versioned libraries. need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext' soname_spec='$libname$release$shared_ext' finish_cmds= shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # 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 dynamic_linker='Android linker' # Don't embed -rpath directories since the linker doesn't support them. hardcode_libdir_flag_spec='-L$libdir' ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) version_type=linux # correct to gnu/linux during the next big refactor 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 if ${lt_cv_shlibpath_overrides_runpath+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_shlibpath_overrides_runpath=no 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 : lt_cv_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 fi shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # 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 # Ideally, we could use ldconfig to report *all* directores which are # searched for libraries, however this is still not possible. Aside from not # being certain /sbin/ldconfig is available, command # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, # even though it is searched at run-time. Try to do the best guess by # appending ld.so.conf contents (and includes) 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;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' ;; 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 # correct to gnu/linux during the next big refactor 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* | bitrig*) version_type=sunos sys_lib_dlsearch_path_spec=/usr/lib need_lib_prefix=no if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then need_version=no else need_version=yes fi 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 shlibpath_overrides_runpath=yes ;; os2*) libname_spec='$name' version_type=windows shrext_cmds=.dll need_version=no need_lib_prefix=no # OS/2 can only load a DLL with a base name of 8 characters or less. soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; v=$($ECHO $release$versuffix | tr -d .-); n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); $ECHO $n$v`$shared_ext' library_names_spec='${libname}_dll.$libext' dynamic_linker='OS/2 ld.exe' shlibpath_var=BEGINLIBPATH sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec 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' ;; 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 # correct to gnu/linux during the next big refactor 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 yes = "$with_gnu_ld"; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux # correct to gnu/linux during the next big refactor 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 # correct to gnu/linux during the next big refactor 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=sco 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 yes = "$with_gnu_ld"; 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 # correct to gnu/linux during the next big refactor 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 # correct to gnu/linux during the next big refactor 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 no = "$dynamic_linker" && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test yes = "$GCC"; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec fi if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec fi # remember unaugmented sys_lib_dlsearch_path content for libtool script decls... configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec # ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" # to be used as default LT_SYS_LIBRARY_PATH value in generated libtool configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH { $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 yes = "$hardcode_automatic"; then # We can hardcode non-existent directories. if test no != "$hardcode_direct" && # 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 no != "$_LT_TAGVAR(hardcode_shlibpath_var, )" && test no != "$hardcode_minus_L"; 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 relink = "$hardcode_action" || test yes = "$inherit_rpath"; then # Fast installation is not supported enable_fast_install=no elif test yes = "$shlibpath_overrides_runpath" || test no = "$enable_shared"; then # Fast installation is not necessary enable_fast_install=needless fi if test yes != "$enable_dlopen"; 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 ${ac_cv_lib_dl_dlopen+:} false; 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" = xyes; 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 ;; tpf*) # Don't try to run any link tests for TPF. We know it's impossible # because TPF is a cross-compiler, and we know how we open DSOs. lt_cv_dlopen=dlopen lt_cv_dlopen_libs= lt_cv_dlopen_self=no ;; *) ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" if test "x$ac_cv_func_shl_load" = xyes; 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 ${ac_cv_lib_dld_shl_load+:} false; 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" = xyes; 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" = xyes; 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 ${ac_cv_lib_dl_dlopen+:} false; 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" = xyes; 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 ${ac_cv_lib_svld_dlopen+:} false; 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" = xyes; 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 ${ac_cv_lib_dld_dld_link+:} false; 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" = xyes; then : lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld fi fi fi fi fi fi ;; esac if test no = "$lt_cv_dlopen"; then enable_dlopen=no else enable_dlopen=yes fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS=$CPPFLAGS test yes = "$ac_cv_header_dlfcn_h" && 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 ${lt_cv_dlopen_self+:} false; then : $as_echo_n "(cached) " >&6 else if test yes = "$cross_compiling"; 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 $LINENO "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 /* When -fvisibility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 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; else puts (dlerror ()); } /* 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 yes = "$lt_cv_dlopen_self"; 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 ${lt_cv_dlopen_self_static+:} false; then : $as_echo_n "(cached) " >&6 else if test yes = "$cross_compiling"; 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 $LINENO "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 /* When -fvisibility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 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; else puts (dlerror ()); } /* 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 what 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 no = "$can_build_shared" && 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 yes = "$enable_shared" && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[4-9]*) if test ia64 != "$host_cpu"; then case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in yes,aix,yes) ;; # shared object as lib.so file only yes,svr4,*) ;; # shared object as lib.so archive member only yes,*) enable_static=no ;; # shared object in lib.a archive as well esac 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 yes = "$enable_shared" || 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: # By default we simply use the C compiler to build assembly code. test "${CCAS+set}" = set || CCAS=$CC test "${CCASFLAGS+set}" = set || CCASFLAGS=$CFLAGS depcc="$CCAS" 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 ${am_cv_CCAS_dependencies_compiler_type+:} false; 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". rm -rf conftest.dir 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_CCAS_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 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 10 /bin/sh. echo '/* dummy */' > 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 ;; msvc7 | msvc7msys | 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_CCAS_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CCAS_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CCAS_dependencies_compiler_type" >&5 $as_echo "$am_cv_CCAS_dependencies_compiler_type" >&6; } CCASDEPMODE=depmode=$am_cv_CCAS_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CCAS_dependencies_compiler_type" = gcc3; then am__fastdepCCAS_TRUE= am__fastdepCCAS_FALSE='#' else am__fastdepCCAS_TRUE='#' am__fastdepCCAS_FALSE= fi # Check platform { $as_echo "$as_me:${as_lineno-$LINENO}: checking OS" >&5 $as_echo_n "checking OS... " >&6; } if echo $host_os | grep linux ; then os_linux=1 else os_linux=0 fi if test "$os_linux" -eq 1; then OS_LINUX_TRUE= OS_LINUX_FALSE='#' else OS_LINUX_TRUE='#' OS_LINUX_FALSE= fi if echo $host_os | grep -E 'darwin|freebsd'; then OS_BSD_TRUE= OS_BSD_FALSE='#' else OS_BSD_TRUE='#' OS_BSD_FALSE= fi if echo $host_os | grep mingw; then OS_MINGW_TRUE= OS_MINGW_FALSE='#' else OS_MINGW_TRUE='#' OS_MINGW_FALSE= fi if test "$os_linux" -eq 1; then : $as_echo "#define OS_LINUX 1" >>confdefs.h else $as_echo "#define OS_LINUX 0" >>confdefs.h fi CFLAGS="$CFLAGS -Wall -Wno-deprecated-declarations" # DEBUG # Check whether --enable-debug was given. if test "${enable_debug+set}" = set; then : enableval=$enable_debug; enable_debug="$enableval" fi if test "${enable_debug}" = yes; then CXXFLAGS="$CXXFLAGS -DDEBUG -g" CFLAGS="$CFLAGS -DDEBUG -g" fi # ASM { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use asm checksum routine" >&5 $as_echo_n "checking whether to use asm checksum routine... " >&6; } # Check whether --enable-asm was given. if test "${enable_asm+set}" = set; then : enableval=$enable_asm; enable_asm="$enableval" else enable_asm="no" fi if test "${enable_asm}" = yes; 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; } $as_echo "#define NO_ASM 1" >>confdefs.h fi if test x$enable_asm = xno; then NO_ASM_TRUE= NO_ASM_FALSE='#' else NO_ASM_TRUE='#' NO_ASM_FALSE= fi if false; then HAVE_NI_TRUE= HAVE_NI_FALSE='#' else HAVE_NI_TRUE='#' HAVE_NI_FALSE= fi # libs { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cap_set_flag in -lcap" >&5 $as_echo_n "checking for cap_set_flag in -lcap... " >&6; } if ${ac_cv_lib_cap_cap_set_flag+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lcap $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 cap_set_flag (); int main () { return cap_set_flag (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_cap_cap_set_flag=yes else ac_cv_lib_cap_cap_set_flag=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_cap_cap_set_flag" >&5 $as_echo "$ac_cv_lib_cap_cap_set_flag" >&6; } if test "x$ac_cv_lib_cap_cap_set_flag" = xyes; then : tcpcryptd_LDADD="-lcap $tcpcryptd_LDADD" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EVP_OpenInit in -lcrypto" >&5 $as_echo_n "checking for EVP_OpenInit in -lcrypto... " >&6; } if ${ac_cv_lib_crypto_EVP_OpenInit+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lcrypto $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 EVP_OpenInit (); int main () { return EVP_OpenInit (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_crypto_EVP_OpenInit=yes else ac_cv_lib_crypto_EVP_OpenInit=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_crypto_EVP_OpenInit" >&5 $as_echo "$ac_cv_lib_crypto_EVP_OpenInit" >&6; } if test "x$ac_cv_lib_crypto_EVP_OpenInit" = xyes; then : crypto_LDADD="-lcrypto" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nfq_open in -lnetfilter_queue" >&5 $as_echo_n "checking for nfq_open in -lnetfilter_queue... " >&6; } if ${ac_cv_lib_netfilter_queue_nfq_open+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lnetfilter_queue $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 nfq_open (); int main () { return nfq_open (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_netfilter_queue_nfq_open=yes else ac_cv_lib_netfilter_queue_nfq_open=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_netfilter_queue_nfq_open" >&5 $as_echo "$ac_cv_lib_netfilter_queue_nfq_open" >&6; } if test "x$ac_cv_lib_netfilter_queue_nfq_open" = xyes; then : tcpcryptd_LDADD="-lnetfilter_queue $tcpcryptd_LDADD" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nfct_open in -lnetfilter_conntrack" >&5 $as_echo_n "checking for nfct_open in -lnetfilter_conntrack... " >&6; } if ${ac_cv_lib_netfilter_conntrack_nfct_open+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lnetfilter_conntrack $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 nfct_open (); int main () { return nfct_open (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_netfilter_conntrack_nfct_open=yes else ac_cv_lib_netfilter_conntrack_nfct_open=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_netfilter_conntrack_nfct_open" >&5 $as_echo "$ac_cv_lib_netfilter_conntrack_nfct_open" >&6; } if test "x$ac_cv_lib_netfilter_conntrack_nfct_open" = xyes; then : tcpcryptd_LDADD="-lnetfilter_conntrack $tcpcryptd_LDADD" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nfnl_rcvbufsiz in -lnfnetlink" >&5 $as_echo_n "checking for nfnl_rcvbufsiz in -lnfnetlink... " >&6; } if ${ac_cv_lib_nfnetlink_nfnl_rcvbufsiz+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lnfnetlink $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 nfnl_rcvbufsiz (); int main () { return nfnl_rcvbufsiz (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_nfnetlink_nfnl_rcvbufsiz=yes else ac_cv_lib_nfnetlink_nfnl_rcvbufsiz=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_nfnetlink_nfnl_rcvbufsiz" >&5 $as_echo "$ac_cv_lib_nfnetlink_nfnl_rcvbufsiz" >&6; } if test "x$ac_cv_lib_nfnetlink_nfnl_rcvbufsiz" = xyes; then : tcpcryptd_LDADD="-lnfnetlink $tcpcryptd_LDADD" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pcap_open_live in -lpcap" >&5 $as_echo_n "checking for pcap_open_live in -lpcap... " >&6; } if ${ac_cv_lib_pcap_pcap_open_live+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lpcap $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 pcap_open_live (); int main () { return pcap_open_live (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_pcap_pcap_open_live=yes else ac_cv_lib_pcap_pcap_open_live=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_pcap_pcap_open_live" >&5 $as_echo "$ac_cv_lib_pcap_pcap_open_live" >&6; } if test "x$ac_cv_lib_pcap_pcap_open_live" = xyes; then : tcpcryptd_LDADD="-lpcap $tcpcryptd_LDADD" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_create in -lpthread" >&5 $as_echo_n "checking for pthread_create in -lpthread... " >&6; } if ${ac_cv_lib_pthread_pthread_create+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lpthread $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 pthread_create (); int main () { return pthread_create (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_pthread_pthread_create=yes else ac_cv_lib_pthread_pthread_create=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_pthread_pthread_create" >&5 $as_echo "$ac_cv_lib_pthread_pthread_create" >&6; } if test "x$ac_cv_lib_pthread_pthread_create" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBPTHREAD 1 _ACEOF LIBS="-lpthread $LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bind in -lwsock32" >&5 $as_echo_n "checking for bind in -lwsock32... " >&6; } if ${ac_cv_lib_wsock32_bind+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lwsock32 $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 bind (); int main () { return bind (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_wsock32_bind=yes else ac_cv_lib_wsock32_bind=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_wsock32_bind" >&5 $as_echo "$ac_cv_lib_wsock32_bind" >&6; } if test "x$ac_cv_lib_wsock32_bind" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBWSOCK32 1 _ACEOF LIBS="-lwsock32 $LIBS" fi # TODO: find symbol name { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GetAdaptersInfo in -liphlpapi" >&5 $as_echo_n "checking for GetAdaptersInfo in -liphlpapi... " >&6; } if ${ac_cv_lib_iphlpapi_GetAdaptersInfo+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-liphlpapi $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 GetAdaptersInfo (); int main () { return GetAdaptersInfo (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_iphlpapi_GetAdaptersInfo=yes else ac_cv_lib_iphlpapi_GetAdaptersInfo=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_iphlpapi_GetAdaptersInfo" >&5 $as_echo "$ac_cv_lib_iphlpapi_GetAdaptersInfo" >&6; } if test "x$ac_cv_lib_iphlpapi_GetAdaptersInfo" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBIPHLPAPI 1 _ACEOF LIBS="-liphlpapi $LIBS" fi # TODO: find symbol name # Checks for header files. for ac_header in arpa/inet.h fcntl.h limits.h netinet/in.h stddef.h stdint.h stdlib.h string.h strings.h sys/socket.h sys/time.h unistd.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done # Checks for typedefs, structures, and compiler characteristics. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 $as_echo_n "checking for inline... " >&6; } if ${ac_cv_c_inline+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifndef __cplusplus typedef int foo_t; static $ac_kw foo_t static_foo () {return 0; } $ac_kw foo_t foo () {return 0; } #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_inline=$ac_kw fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext test "$ac_cv_c_inline" != no && break done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 $as_echo "$ac_cv_c_inline" >&6; } case $ac_cv_c_inline in inline | yes) ;; *) case $ac_cv_c_inline in no) ac_val=;; *) ac_val=$ac_cv_c_inline;; esac cat >>confdefs.h <<_ACEOF #ifndef __cplusplus #define inline $ac_val #endif _ACEOF ;; esac ac_fn_c_check_type "$LINENO" "mode_t" "ac_cv_type_mode_t" "$ac_includes_default" if test "x$ac_cv_type_mode_t" = xyes; then : else cat >>confdefs.h <<_ACEOF #define mode_t int _ACEOF fi ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" if test "x$ac_cv_type_size_t" = xyes; then : else cat >>confdefs.h <<_ACEOF #define size_t unsigned int _ACEOF fi ac_fn_c_check_type "$LINENO" "ssize_t" "ac_cv_type_ssize_t" "$ac_includes_default" if test "x$ac_cv_type_ssize_t" = xyes; then : else cat >>confdefs.h <<_ACEOF #define ssize_t int _ACEOF fi ac_fn_c_find_uintX_t "$LINENO" "16" "ac_cv_c_uint16_t" case $ac_cv_c_uint16_t in #( no|yes) ;; #( *) cat >>confdefs.h <<_ACEOF #define uint16_t $ac_cv_c_uint16_t _ACEOF ;; esac ac_fn_c_find_uintX_t "$LINENO" "32" "ac_cv_c_uint32_t" case $ac_cv_c_uint32_t in #( no|yes) ;; #( *) $as_echo "#define _UINT32_T 1" >>confdefs.h cat >>confdefs.h <<_ACEOF #define uint32_t $ac_cv_c_uint32_t _ACEOF ;; esac ac_fn_c_find_uintX_t "$LINENO" "64" "ac_cv_c_uint64_t" case $ac_cv_c_uint64_t in #( no|yes) ;; #( *) $as_echo "#define _UINT64_T 1" >>confdefs.h cat >>confdefs.h <<_ACEOF #define uint64_t $ac_cv_c_uint64_t _ACEOF ;; esac ac_fn_c_find_uintX_t "$LINENO" "8" "ac_cv_c_uint8_t" case $ac_cv_c_uint8_t in #( no|yes) ;; #( *) $as_echo "#define _UINT8_T 1" >>confdefs.h cat >>confdefs.h <<_ACEOF #define uint8_t $ac_cv_c_uint8_t _ACEOF ;; esac ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default" if test "x$ac_cv_type_ptrdiff_t" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_PTRDIFF_T 1 _ACEOF fi # testing ac_config_commands="$ac_config_commands tests/atconfig" ac_config_files="$ac_config_files tests/atlocal" # Checks for library functions. # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # for constant arguments. Useless! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5 $as_echo_n "checking for working alloca.h... " >&6; } if ${ac_cv_working_alloca_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { char *p = (char *) alloca (2 * sizeof (int)); if (p) return 0; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_working_alloca_h=yes else ac_cv_working_alloca_h=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: $ac_cv_working_alloca_h" >&5 $as_echo "$ac_cv_working_alloca_h" >&6; } if test $ac_cv_working_alloca_h = yes; then $as_echo "#define HAVE_ALLOCA_H 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5 $as_echo_n "checking for alloca... " >&6; } if ${ac_cv_func_alloca_works+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __GNUC__ # define alloca __builtin_alloca #else # ifdef _MSC_VER # include # define alloca _alloca # else # ifdef HAVE_ALLOCA_H # include # else # ifdef _AIX #pragma alloca # else # ifndef alloca /* predefined by HP cc +Olibcalls */ void *alloca (size_t); # endif # endif # endif # endif #endif int main () { char *p = (char *) alloca (1); if (p) return 0; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_func_alloca_works=yes else ac_cv_func_alloca_works=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: $ac_cv_func_alloca_works" >&5 $as_echo "$ac_cv_func_alloca_works" >&6; } if test $ac_cv_func_alloca_works = yes; then $as_echo "#define HAVE_ALLOCA 1" >>confdefs.h else # The SVR3 libPW and SVR4 libucb both contain incompatible functions # that cause trouble. Some versions do not even contain alloca or # contain a buggy version. If you still want to use their alloca, # use ar to extract alloca.o from them instead of compiling alloca.c. ALLOCA=\${LIBOBJDIR}alloca.$ac_objext $as_echo "#define C_ALLOCA 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether \`alloca.c' needs Cray hooks" >&5 $as_echo_n "checking whether \`alloca.c' needs Cray hooks... " >&6; } if ${ac_cv_os_cray+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined CRAY && ! defined CRAY2 webecray #else wenotbecray #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "webecray" >/dev/null 2>&1; then : ac_cv_os_cray=yes else ac_cv_os_cray=no fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_os_cray" >&5 $as_echo "$ac_cv_os_cray" >&6; } if test $ac_cv_os_cray = yes; then for ac_func in _getb67 GETB67 getb67; do as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define CRAY_STACKSEG_END $ac_func _ACEOF break fi done fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5 $as_echo_n "checking stack direction for C alloca... " >&6; } if ${ac_cv_c_stack_direction+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_c_stack_direction=0 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int find_stack_direction (int *addr, int depth) { int dir, dummy = 0; if (! addr) addr = &dummy; *addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1; dir = depth ? find_stack_direction (addr, depth - 1) : 0; return dir + dummy; } int main (int argc, char **argv) { return find_stack_direction (0, argc + !argv + 20) < 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_c_stack_direction=1 else ac_cv_c_stack_direction=-1 fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_stack_direction" >&5 $as_echo "$ac_cv_c_stack_direction" >&6; } cat >>confdefs.h <<_ACEOF #define STACK_DIRECTION $ac_cv_c_stack_direction _ACEOF fi ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default" if test "x$ac_cv_type_pid_t" = xyes; then : else cat >>confdefs.h <<_ACEOF #define pid_t int _ACEOF fi for ac_header in vfork.h do : ac_fn_c_check_header_mongrel "$LINENO" "vfork.h" "ac_cv_header_vfork_h" "$ac_includes_default" if test "x$ac_cv_header_vfork_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_VFORK_H 1 _ACEOF fi done for ac_func in fork vfork do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done if test "x$ac_cv_func_fork" = xyes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working fork" >&5 $as_echo_n "checking for working fork... " >&6; } if ${ac_cv_func_fork_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_func_fork_works=cross else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { /* By Ruediger Kuhlmann. */ return fork () < 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_fork_works=yes else ac_cv_func_fork_works=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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_fork_works" >&5 $as_echo "$ac_cv_func_fork_works" >&6; } else ac_cv_func_fork_works=$ac_cv_func_fork fi if test "x$ac_cv_func_fork_works" = xcross; then case $host in *-*-amigaos* | *-*-msdosdjgpp*) # Override, as these systems have only a dummy fork() stub ac_cv_func_fork_works=no ;; *) ac_cv_func_fork_works=yes ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&5 $as_echo "$as_me: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&2;} fi ac_cv_func_vfork_works=$ac_cv_func_vfork if test "x$ac_cv_func_vfork" = xyes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working vfork" >&5 $as_echo_n "checking for working vfork... " >&6; } if ${ac_cv_func_vfork_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_func_vfork_works=cross else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Thanks to Paul Eggert for this test. */ $ac_includes_default #include #ifdef HAVE_VFORK_H # include #endif /* On some sparc systems, changes by the child to local and incoming argument registers are propagated back to the parent. The compiler is told about this with #include , but some compilers (e.g. gcc -O) don't grok . Test for this by using a static variable whose address is put into a register that is clobbered by the vfork. */ static void #ifdef __cplusplus sparc_address_test (int arg) # else sparc_address_test (arg) int arg; #endif { static pid_t child; if (!child) { child = vfork (); if (child < 0) { perror ("vfork"); _exit(2); } if (!child) { arg = getpid(); write(-1, "", 0); _exit (arg); } } } int main () { pid_t parent = getpid (); pid_t child; sparc_address_test (0); child = vfork (); if (child == 0) { /* Here is another test for sparc vfork register problems. This test uses lots of local variables, at least as many local variables as main has allocated so far including compiler temporaries. 4 locals are enough for gcc 1.40.3 on a Solaris 4.1.3 sparc, but we use 8 to be safe. A buggy compiler should reuse the register of parent for one of the local variables, since it will think that parent can't possibly be used any more in this routine. Assigning to the local variable will thus munge parent in the parent process. */ pid_t p = getpid(), p1 = getpid(), p2 = getpid(), p3 = getpid(), p4 = getpid(), p5 = getpid(), p6 = getpid(), p7 = getpid(); /* Convince the compiler that p..p7 are live; otherwise, it might use the same hardware register for all 8 local variables. */ if (p != p1 || p != p2 || p != p3 || p != p4 || p != p5 || p != p6 || p != p7) _exit(1); /* On some systems (e.g. IRIX 3.3), vfork doesn't separate parent from child file descriptors. If the child closes a descriptor before it execs or exits, this munges the parent's descriptor as well. Test for this by closing stdout in the child. */ _exit(close(fileno(stdout)) != 0); } else { int status; struct stat st; while (wait(&status) != child) ; return ( /* Was there some problem with vforking? */ child < 0 /* Did the child fail? (This shouldn't happen.) */ || status /* Did the vfork/compiler bug occur? */ || parent != getpid() /* Did the file descriptor bug occur? */ || fstat(fileno(stdout), &st) != 0 ); } } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_vfork_works=yes else ac_cv_func_vfork_works=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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_vfork_works" >&5 $as_echo "$ac_cv_func_vfork_works" >&6; } fi; if test "x$ac_cv_func_fork_works" = xcross; then ac_cv_func_vfork_works=$ac_cv_func_vfork { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&5 $as_echo "$as_me: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&2;} fi if test "x$ac_cv_func_vfork_works" = xyes; then $as_echo "#define HAVE_WORKING_VFORK 1" >>confdefs.h else $as_echo "#define vfork fork" >>confdefs.h fi if test "x$ac_cv_func_fork_works" = xyes; then $as_echo "#define HAVE_WORKING_FORK 1" >>confdefs.h fi for ac_header in stdlib.h do : ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default" if test "x$ac_cv_header_stdlib_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STDLIB_H 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible malloc" >&5 $as_echo_n "checking for GNU libc compatible malloc... " >&6; } if ${ac_cv_func_malloc_0_nonnull+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_func_malloc_0_nonnull=no else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined STDC_HEADERS || defined HAVE_STDLIB_H # include #else char *malloc (); #endif int main () { return ! malloc (0); ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_malloc_0_nonnull=yes else ac_cv_func_malloc_0_nonnull=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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_malloc_0_nonnull" >&5 $as_echo "$ac_cv_func_malloc_0_nonnull" >&6; } if test $ac_cv_func_malloc_0_nonnull = yes; then : $as_echo "#define HAVE_MALLOC 1" >>confdefs.h else $as_echo "#define HAVE_MALLOC 0" >>confdefs.h case " $LIBOBJS " in *" malloc.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS malloc.$ac_objext" ;; esac $as_echo "#define malloc rpl_malloc" >>confdefs.h fi for ac_func in bzero clock_gettime gettimeofday inet_ntoa memmove memset select socket strchr strdup strtoul do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done ac_config_files="$ac_config_files Makefile src/tcpcrypt_version.h" 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 if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi 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= U= 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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 $as_echo_n "checking that generated files are newer than configure... " >&6; } if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 $as_echo "done" >&6; } if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' else am__EXEEXT_TRUE='#' am__EXEEXT_FALSE= fi if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 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 if test -z "${am__fastdepCCAS_TRUE}" && test -z "${am__fastdepCCAS_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCCAS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${OS_LINUX_TRUE}" && test -z "${OS_LINUX_FALSE}"; then as_fn_error $? "conditional \"OS_LINUX\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${OS_BSD_TRUE}" && test -z "${OS_BSD_FALSE}"; then as_fn_error $? "conditional \"OS_BSD\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${OS_MINGW_TRUE}" && test -z "${OS_MINGW_FALSE}"; then as_fn_error $? "conditional \"OS_MINGW\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${NO_ASM_TRUE}" && test -z "${NO_ASM_FALSE}"; then as_fn_error $? "conditional \"NO_ASM\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_NI_TRUE}" && test -z "${HAVE_NI_FALSE}"; then as_fn_error $? "conditional \"HAVE_NI\" 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. as_myself= 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 STATUS 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=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&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 -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' 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 # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p as_test_x='test -x' as_executable_p=as_fn_executable_p # 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 tcpcrypt $as_me 0.5, which was generated by GNU Autoconf 2.69. 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 . tcpcrypt home page: ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ tcpcrypt config.status 0.5 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" Copyright (C) 2012 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=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= 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"` ;; '') as_fn_error $? "missing file argument" ;; 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' macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' shared_archive_member_spec='`$ECHO "$shared_archive_member_spec" | $SED "$delay_single_quote_subst"`' SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_import='`$ECHO "$lt_cv_sys_global_symbol_to_import" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' lt_cv_nm_interface='`$ECHO "$lt_cv_nm_interface" | $SED "$delay_single_quote_subst"`' nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' lt_cv_truncate_bin='`$ECHO "$lt_cv_truncate_bin" | $SED "$delay_single_quote_subst"`' objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' configure_time_dlsearch_path='`$ECHO "$configure_time_dlsearch_path" | $SED "$delay_single_quote_subst"`' configure_time_lt_sys_library_path='`$ECHO "$configure_time_lt_sys_library_path" | $SED "$delay_single_quote_subst"`' hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$1 _LTECHO_EOF' } # Quote evaled strings. for var in SHELL \ ECHO \ PATH_SEPARATOR \ SED \ GREP \ EGREP \ FGREP \ LD \ NM \ LN_S \ lt_SP2NL \ lt_NL2SP \ reload_flag \ OBJDUMP \ deplibs_check_method \ file_magic_cmd \ file_magic_glob \ want_nocaseglob \ DLLTOOL \ sharedlib_from_linklib_cmd \ AR \ AR_FLAGS \ archiver_list_spec \ STRIP \ RANLIB \ CC \ CFLAGS \ compiler \ lt_cv_sys_global_symbol_pipe \ lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_import \ lt_cv_sys_global_symbol_to_c_name_address \ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ lt_cv_nm_interface \ nm_file_list_spec \ lt_cv_truncate_bin \ lt_prog_compiler_no_builtin_flag \ lt_prog_compiler_pic \ lt_prog_compiler_wl \ lt_prog_compiler_static \ lt_cv_prog_compiler_c_o \ need_locks \ MANIFEST_TOOL \ 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_separator \ exclude_expsyms \ include_expsyms \ file_list_spec \ variables_saved_for_relink \ libname_spec \ library_names_spec \ soname_spec \ install_override_mode \ finish_eval \ old_striplib \ striplib; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes ;; *) 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 \ postlink_cmds \ postinstall_cmds \ postuninstall_cmds \ finish_cmds \ sys_lib_search_path_spec \ configure_time_dlsearch_path \ configure_time_lt_sys_library_path; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done ac_aux_dir='$ac_aux_dir' # See if we are running on zsh, and set the options that 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' 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" ;; "tests/atconfig") CONFIG_COMMANDS="$CONFIG_COMMANDS tests/atconfig" ;; "tests/atlocal") CONFIG_FILES="$CONFIG_FILES tests/atlocal" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "src/tcpcrypt_version.h") CONFIG_FILES="$CONFIG_FILES src/tcpcrypt_version.h" ;; *) 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= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_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 -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # 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 {' >"$ac_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 >>"\$ac_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 >>"\$ac_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 < "$ac_tmp/subs1.awk" > "$ac_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 sole $(srcdir), # ${srcdir} and @srcdir@ entries 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[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// 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 >"$ac_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_tt=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_tt"; 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="$ac_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 1 "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 >"$ac_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 "$ac_tmp/subs.awk" \ >$ac_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' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_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 "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_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 "$ac_tmp/defines.awk"' "$ac_file_inputs" } >"$ac_tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 if diff "$ac_file" "$ac_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 "$ac_tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_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"" || { # Older Autoconf 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"` # 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'`; 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 that 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 # Generated automatically by $as_me ($PACKAGE) $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. # Provide generalized library-building support services. # Written by Gordon Matzigkeit, 1996 # Copyright (C) 2014 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 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 this program. If not, see . # The names of the tagged configurations supported by this script. available_tags='' # Configured defaults for sys_lib_dlsearch_path munging. : \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"} # ### BEGIN LIBTOOL CONFIG # 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 # Whether or not to build static libraries. build_old_libs=$enable_static # What type of objects to build. pic_mode=$pic_mode # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # Shared archive member basename,for filename based shared library versioning on AIX. shared_archive_member_spec=$shared_archive_member_spec # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # An echo program that protects backslashes. ECHO=$lt_ECHO # The PATH separator for the build system. PATH_SEPARATOR=$lt_PATH_SEPARATOR # 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 # convert \$build file names to \$host format. to_host_file_cmd=$lt_cv_to_host_file_cmd # convert \$build files to toolchain format. to_tool_file_cmd=$lt_cv_to_tool_file_cmd # 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 # How to find potential files when deplibs_check_method = "file_magic". file_magic_glob=$lt_file_magic_glob # Find potential files using nocaseglob when deplibs_check_method = "file_magic". want_nocaseglob=$lt_want_nocaseglob # DLL creation program. DLLTOOL=$lt_DLLTOOL # Command to associate shared and link libraries. sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd # The archiver. AR=$lt_AR # Flags to create an archive. AR_FLAGS=$lt_AR_FLAGS # How to feed a file listing to the archiver. archiver_list_spec=$lt_archiver_list_spec # 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 # Whether to use a lock for old archive extraction. lock_old_archive_extraction=$lock_old_archive_extraction # 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 into a list of symbols to manually relocate. global_symbol_to_import=$lt_lt_cv_sys_global_symbol_to_import # 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 lister interface. nm_interface=$lt_lt_cv_nm_interface # Specify filename containing input files for \$NM. nm_file_list_spec=$lt_nm_file_list_spec # The root where to search for dependent libraries,and where our libraries should be installed. lt_sysroot=$lt_sysroot # Command to truncate a binary pipe. lt_truncate_bin=$lt_lt_cv_truncate_bin # The name of the directory that contains temporary libtool files. objdir=$objdir # 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 # Manifest tool. MANIFEST_TOOL=$lt_MANIFEST_TOOL # 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 # Permission mode override for installation of shared libraries. install_override_mode=$lt_install_override_mode # 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 # Detected run-time system search path for libraries. sys_lib_dlsearch_path_spec=$lt_configure_time_dlsearch_path # Explicit LT_SYS_LIBRARY_PATH set during ./configure time. configure_time_lt_sys_library_path=$lt_configure_time_lt_sys_library_path # 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 # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # 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 # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl # 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 # 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 # 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 # Commands necessary for finishing linking programs. postlink_cmds=$lt_postlink_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 cat <<'_LT_EOF' >> "$cfgfile" # ### BEGIN FUNCTIONS SHARED WITH CONFIGURE # func_munge_path_list VARIABLE PATH # ----------------------------------- # VARIABLE is name of variable containing _space_ separated list of # directories to be munged by the contents of PATH, which is string # having a format: # "DIR[:DIR]:" # string "DIR[ DIR]" will be prepended to VARIABLE # ":DIR[:DIR]" # string "DIR[ DIR]" will be appended to VARIABLE # "DIRP[:DIRP]::[DIRA:]DIRA" # string "DIRP[ DIRP]" will be prepended to VARIABLE and string # "DIRA[ DIRA]" will be appended to VARIABLE # "DIR[:DIR]" # VARIABLE will be replaced by "DIR[ DIR]" func_munge_path_list () { case x$2 in x) ;; *:) eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\" ;; x:*) eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\" ;; *::*) eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\" ;; *) eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\" ;; esac } # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. func_cc_basename () { for cc_temp in $*""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` } # ### END FUNCTIONS SHARED WITH CONFIGURE _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 set != "${COLLECT_NAMES+set}"; 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 '$q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ;; "tests/atconfig":C) cat >tests/atconfig </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 1 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 tcpcrypt-0.5/LICENSE0000644000175200017520000000241412742073006013273 0ustar sorbosorboCopyright (C) 2009 Tcpcrypt. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY TCPCRYPT AND ITS CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL TCPCRYPT OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. tcpcrypt-0.5/util/0000755000175200017520000000000012742073006013242 5ustar sorbosorbotcpcrypt-0.5/util/tcnetstat.man.md0000644000175200017520000000137212742073006016352 0ustar sorbosorbo% tcnetstat(8) % # NAME __tcnetstat__ - Print information about network connections protected by tcpcrypt # SYNOPSIS __tcnetstat__ # DESCRIPTION The __tcnetstat__ utility prints the _session id_ of each TCP connection that is currently being protected by the _tcpcrypt_ protocol. # OPTIONS Where the _tcpcrypt_ protocol is implemented by the __tcpcryptd__ daemon, this utility communicates with the daemon via a "control socket", configurable with __-u__ _socket_address_. If _socket_address_ begins with "/", it is interpreted as a filesystem path pointing to a unix-domain socket; if it is of the form ":_port_", it is interpreted as the internet address localhost:_port_. # SEE ALSO __tcpcryptd__(8), [http://tcpcrypt.org/](http://tcpcrypt.org/) tcpcrypt-0.5/util/tcnetstat.c0000644000175200017520000000325612742073006015425 0ustar sorbosorbo#include #include #include #include #include #include "src/tcpcrypt.h" #include "src/tcpcrypt_ctl.h" #include "src/inc.h" int open_socket() { int s; struct sockaddr_in s_in; #ifdef __WIN32__ WSADATA wsadata; if (WSAStartup(MAKEWORD(1,1), &wsadata) == SOCKET_ERROR) errx(1, "WSAStartup()"); #endif memset(&s_in, 0, sizeof(s_in)); s_in.sin_family = PF_INET; s_in.sin_port = 0; s_in.sin_addr.s_addr = INADDR_ANY; s = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP); if (s == -1) err(1, "socket()"); if (bind(s, (struct sockaddr*) &s_in, sizeof(s_in)) == -1) err(1, "bind()"); return s; } static void do_netstat(void) { unsigned char buf[2048]; unsigned int len = sizeof(buf); int s, sl, i; struct tc_netstat *n = (struct tc_netstat*) buf; char src[64]; char dst[64]; s = open_socket(); if (tcpcrypt_getsockopt(s, IPPROTO_TCP, TCP_CRYPT_NETSTAT, buf, &len) == -1) err(1, "tcpcrypt_getsockopt()"); printf("Local address\t\tForeign address\t\tSID\n"); while (len > sizeof(*n)) { sl = ntohs(n->tn_len); assert(len >= sizeof(*n) + sl); sprintf(src, "%s:%d", inet_ntoa(n->tn_sip), ntohs(n->tn_sport)); sprintf(dst, "%s:%d", inet_ntoa(n->tn_dip), ntohs(n->tn_dport)); printf("%-21s\t%-21s\t", src, dst); for (i = 0; i < sl; i++) printf("%.2X", n->tn_sid[i]); printf("\n"); sl += sizeof(*n); n = (struct tc_netstat*) ((unsigned long) n + sl); len -= sl; } assert(len == 0); } int main(int argc, char **argv) { if (argc >= 3 && !strcmp(argv[1], "-u")) { tcpcrypt_setparam(TCPCRYPT_PARAM_CTLPATH, argv[2]); } do_netstat(); return 0; } tcpcrypt-0.5/util/.gitignore0000644000175200017520000000003512742073006015230 0ustar sorbosorbo*.d *.o .*.swp tcnetstat tcs tcpcrypt-0.5/util/tcs.c0000644000175200017520000001403612742073006014203 0ustar sorbosorbo#include #include #include #include #include #include #include "config.h" #include "src/inc.h" #include "src/tcpcryptd.h" #include "src/tcpcrypt.h" #include "src/tcpcrypt_ctl.h" #include "src/tcpcrypt_strings.h" #include "src/priv.h" static const char *_bind_ip = "0.0.0.0"; enum { TYPE_CLIENT = 0, TYPE_SERVER, TYPE_RAW, }; enum { FLAG_HELLO = 1, }; struct sock { int s; int type; int dead; time_t added; struct sockaddr_in peer; int port; int flags; struct sock *next; } _socks; struct client { int sport; int dport; int flags; struct in_addr ip; time_t added; struct client *next; } _clients; static struct sock *add_sock(int s) { struct sock *sock = malloc(sizeof(*sock)); if (!sock) err(1, "malloc()"); memset(sock, 0, sizeof(*sock)); sock->s = s; sock->added = time(NULL); sock->next = _socks.next; _socks.next = sock; return sock; } static void add_server(int port) { int s; struct sockaddr_in s_in; struct sock *sock; int one = 1; if ((s = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP)) == -1) err(1, "socket()"); if (setsockopt(s, SOL_SOCKET, SO_REUSEADDR, &one, sizeof(one)) == -1) err(1, "setsockopt()"); memset(&s_in, 0, sizeof(s_in)); s_in.sin_family = PF_INET; s_in.sin_addr.s_addr = inet_addr(_bind_ip); s_in.sin_port = htons(port); if (bind(s, (struct sockaddr*) &s_in, sizeof(s_in)) == -1) err(1, "bind()"); if (listen(s, 5) == -1) err(1, "listen()"); sock = add_sock(s); sock->type = TYPE_SERVER; sock->port = port; } static void add_sniffer(void) { int s; struct sock *sock; if ((s = socket(AF_INET, SOCK_RAW, IPPROTO_TCP)) == -1) err(1, "socket()"); sock = add_sock(s); sock->type = TYPE_RAW; } static void find_client(struct sock *s) { struct client *c = &_clients; while (c->next) { struct client *next = c->next; struct client *del = NULL; if (next->dport == s->port && next->sport == ntohs(s->peer.sin_port)) { s->flags = next->flags; del = next; } if ((time(NULL) - next->added) > 10) del = next; if (del) { c->next = next->next; free(del); } else c = next; } } static void handle_server(struct sock *s) { struct sockaddr_in s_in; socklen_t len = sizeof(s_in); int dude; struct sock *d; dude = accept(s->s, (struct sockaddr*) &s_in, &len); if (dude == -1) { perror("accept()"); return; } d = add_sock(dude); memcpy(&d->peer, &s_in, sizeof(d->peer)); d->port = s->port; find_client(d); } static void handle_client(struct sock *s) { char buf[1024]; int rc; int got = -1; int i; int crypt = 0; unsigned int len; struct tm *tm; time_t t; len = sizeof(buf); rc = tcpcrypt_getsockopt(s->s, IPPROTO_TCP, TCP_CRYPT_SESSID, buf, &len); crypt = rc != -1; rc = read(s->s, buf, sizeof(buf) - 1); if (rc <= 0) { s->dead = 1; return; } buf[rc] = 0; s->dead = 1; for (i = 0; i < sizeof(REQS) / sizeof(*REQS); i++) { if (strcmp(buf, REQS[i]) == 0) { got = i; break; } } if (got == -1) return; snprintf(buf, sizeof(buf), "%s%d", TEST_REPLY, s->flags); rc = strlen(buf); if (write(s->s, buf, rc) != rc) return; t = time(NULL); tm = localtime(&t); strftime(buf, sizeof(buf), "%m/%d/%y %H:%M:%S", tm); printf("[%s] GOT %s:%d - %4d [MSG %d] crypt %d flags %d\n", buf, inet_ntoa(s->peer.sin_addr), ntohs(s->peer.sin_port), s->port, got, crypt, s->flags); s->dead = 1; } static void found_crypt(struct ip *ip, struct tcphdr *th) { struct client *c = malloc(sizeof(*c)); if (!c) err(1, "malloc()"); memset(c, 0, sizeof(*c)); c->ip = ip->ip_src; c->sport = ntohs(th->th_sport); c->dport = ntohs(th->th_dport); c->added = time(NULL); c->flags = FLAG_HELLO; c->next = _clients.next; _clients.next = c; } static void handle_raw(struct sock *s) { unsigned char buf[2048]; int rc; struct ip *ip = (struct ip*) buf; struct tcphdr *th; unsigned char *end, *p; if ((rc = read(s->s, buf, sizeof(buf))) <= 0) err(1, "read()"); if (ip->ip_v != 4) return; if (ip->ip_p != IPPROTO_TCP) return; th = (struct tcphdr*) (((unsigned long) ip) + (ip->ip_hl << 2)); if ((unsigned long) th >= (unsigned long) (&buf[rc] - sizeof(*th))) return; p = (unsigned char*) (th + 1); end = (unsigned char*) (((unsigned long) th) + (th->th_off << 2)); if ((unsigned long) end > (unsigned long) &buf[rc]) return; if (th->th_flags != TH_SYN) return; while (p < end) { int opt = *p++; int len; switch (opt) { case TCPOPT_EOL: case TCPOPT_NOP: continue; } if (p >= end) break; len = *p++ - 2; if ((p + len) >= end) break; switch (opt) { case TCPOPT_EXP: if (len >= 2 && ntohs(*((uint16_t*) p)) == EXID_ENO) found_crypt(ip, th); break; } p += len; } } static void process_socket(struct sock *s) { switch (s->type) { case TYPE_SERVER: handle_server(s); break; case TYPE_RAW: handle_raw(s); break; case TYPE_CLIENT: handle_client(s); break; default: printf("WTF %d\n", s->type); abort(); break; } } static void check_sockets(void) { struct sock *s = _socks.next; fd_set fds; int max = 0; struct timeval tv; FD_ZERO(&fds); while (s) { FD_SET(s->s, &fds); if (s->s > max) max = s->s; s = s->next; } tv.tv_sec = 5; tv.tv_usec = 0; if (select(max + 1, &fds, NULL, NULL, &tv) == -1) err(1, "select()"); s = &_socks; while ((s = s->next)) { if (FD_ISSET(s->s, &fds)) process_socket(s); } s = &_socks; while (s->next) { struct sock *next = s->next; if (next->type == TYPE_CLIENT && (time(NULL) - next->added > 10)) next->dead = 1; if (next->dead) { close(next->s); s->next = next->next; free(next); } else s = next; } } static void pwn(void) { add_sniffer(); add_server(80); add_server(7777); tzset(); drop_privs(TCPCRYPTD_JAIL_DIR, TCPCRYPTD_JAIL_USER); while (1) check_sockets(); } int main(int argc, const char *argv[]) { if (argc > 1) { _bind_ip = argv[1]; printf("Binding to %s\n", _bind_ip); } pwn(); exit(0); } tcpcrypt-0.5/util/tcnetstat.man0000644000175200017520000000152312742073006015751 0ustar sorbosorbo.TH "tcnetstat" "8" "" "" "" .SH NAME .PP \f[B]tcnetstat\f[] \- Print information about network connections protected by tcpcrypt .SH SYNOPSIS .PP \f[B]tcnetstat\f[] .SH DESCRIPTION .PP The \f[B]tcnetstat\f[] utility prints the \f[I]session id\f[] of each TCP connection that is currently being protected by the \f[I]tcpcrypt\f[] protocol. .SH OPTIONS .PP Where the \f[I]tcpcrypt\f[] protocol is implemented by the \f[B]tcpcryptd\f[] daemon, this utility communicates with the daemon via a "control socket", configurable with \f[B]\-u\f[] \f[I]socket_address\f[]. If \f[I]socket_address\f[] begins with "/", it is interpreted as a filesystem path pointing to a unix\-domain socket; if it is of the form ":\f[I]port\f[]", it is interpreted as the internet address localhost:\f[I]port\f[]. .SH SEE ALSO .PP \f[B]tcpcryptd\f[](8), tcpcrypt-0.5/util/README.markdown0000644000175200017520000000113712742073006015745 0ustar sorbosorboTcpcrypt netstat ================ The `util/tcnetstat` program lists active tcpcrypt connections and their session IDs. With two HTTP connections open, the output looks like: $ test/tcnetstat -N Using 1 implementation Local address Foreign address SID 128.12.13.14:59539 171.66.3.211:80 E0C4FA717D0B3C51E4E2A8EC70CA34ADFC91A260 128.12.13.14:59540 171.66.3.211:80 EA22A7B8A9994AB151A865C5F5AC1309DD674D6C There is currently a limit of approximately 100 active connections that can be displayed by tcnetstat. This will be fixed soon and does not affect tcpcryptd. tcpcrypt-0.5/tests/0000755000175200017520000000000012742073006013427 5ustar sorbosorbotcpcrypt-0.5/tests/testsuite.at0000644000175200017520000000033712742073006016011 0ustar sorbosorbo# Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for tcpcrypt m4_include([tests/package.m4]) AT_INIT AT_TESTED([tcpcryptd]) m4_include([tests/version.at]) m4_include([tests/hmac.at]) tcpcrypt-0.5/tests/version.at0000644000175200017520000000055312742073006015445 0ustar sorbosorboAT_SETUP([tcpcryptd version]) AT_CHECK([tcpcryptd -V], [0], [AT_PACKAGE_NAME version AT_PACKAGE_VERSION ], [], [], [ echo '==============================================================' echo 'WARNING: Not using the expected version, *all* checks dubious...' echo '==============================================================' ]) AT_CLEANUP tcpcrypt-0.5/tests/hmac.c0000644000175200017520000001121612742073006014504 0ustar sorbosorbo#include #include #include "inc.h" #include "crypto.h" struct testcase { const char* name; const struct iovec key; const struct iovec data; const struct iovec answer; }; /* Test cases from RFC 4231 (https://tools.ietf.org/html/rfc4231) */ static const struct testcase tests[] = { { "RFC 4231 Test Case 1", {"\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b" "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b", 20}, { "Hi There", 8}, {"\xb0\x34\x4c\x61\xd8\xdb\x38\x53\x5c\xa8\xaf\xce\xaf\x0b\xf1\x2b" "\x88\x1d\xc2\x00\xc9\x83\x3d\xa7\x26\xe9\x37\x6c\x2e\x32\xcf\xf7", 32} }, { "RFC 4231 Test Case 2", {"Jefe", 4}, {"what do ya want for nothing?", 28}, {"\x5b\xdc\xc1\x46\xbf\x60\x75\x4e\x6a\x04\x24\x26\x08\x95\x75\xc7" "\x5a\x00\x3f\x08\x9d\x27\x39\x83\x9d\xec\x58\xb9\x64\xec\x38\x43", 32} }, { "RFC 4231 Test Case 3", {"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" "\xaa\xaa\xaa\xaa", 20}, {"\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd" "\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd" "\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd" "\xdd\xdd", 50}, {"\x77\x3e\xa9\x1e\x36\x80\x0e\x46\x85\x4d\xb8\xeb\xd0\x91\x81\xa7" "\x29\x59\x09\x8b\x3e\xf8\xc1\x22\xd9\x63\x55\x14\xce\xd5\x65\xfe", 32} }, { "RFC 4231 Test Case 4", {"\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10" "\x11\x12\x13\x14\x15\x16\x17\x18\x19", 25}, {"\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd" "\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd" "\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd" "\xcd\xcd", 50}, {"\x82\x55\x8a\x38\x9a\x44\x3c\x0e\xa4\xcc\x81\x98\x99\xf2\x08\x3a" "\x85\xf0\xfa\xa3\xe5\x78\xf8\x07\x7a\x2e\x3f\xf4\x67\x29\x66\x5b", 32} }, { "RFC 4231 Test Case 5", {"\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c" "\x0c\x0c\x0c\x0c", 20}, {"Test With Truncation", 20}, {"\xa3\xb6\x16\x74\x73\x10\x0e\xe0\x6e\x0c\x79\x6c\x29\x55\x55\x2b", 16} }, { "RFC 4231 Test Case 6", {"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" "\xaa\xaa\xaa\xaa\xaa\xaa", 131}, {"Test Using Larger Than Block-Size Key - Hash Key First", 54}, {"\x60\xe4\x31\x59\x1e\xe0\xb6\x7f\x0d\x8a\x26\xaa\xcb\xf5\xb7\x7f" "\x8e\x0b\xc6\x21\x37\x28\xc5\x14\x05\x46\x04\x0f\x0e\xe3\x7f\x54", 32} }, { "RFC 4231 Test Case 7", {"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" "\xaa\xaa\xaa\xaa\xaa\xaa", 131}, {"This is a test using a larger than block-size key and a larger " "than block-size data. The key needs to be hashed before being " "used by the HMAC algorithm.", 152}, {"\x9b\x09\xff\xa7\x1b\x94\x2f\xcb\x27\x63\x5f\xbc\xd5\xb0\xe9\x44" "\xbf\xdc\x63\x64\x4f\x07\x13\x93\x8a\x7f\x51\x53\x5c\x3a\x35\xe2", 32} } }; int main() { struct crypt* c = NULL; int failures = 0; char mac[32]; int maclen; int ix; int ret; c = crypt_HMAC_SHA256_new(); for (ix = 0; ix < sizeof(tests)/sizeof(tests[0]); ix++) { ret = c->c_set_key(c, tests[ix].key.iov_base, tests[ix].key.iov_len); if (ret) { printf("%s: failed to set key (return: %d)\n", tests[ix].name, ret); failures++; } maclen = sizeof(mac); c->c_mac(c, &(tests[ix].data), 1, mac, &maclen); if (maclen != sizeof(mac)) { printf("%s: wrong HMAC output length %d\n", tests[ix].name, maclen); failures++; } if (memcmp(tests[ix].answer.iov_base, mac, tests[ix].answer.iov_len) != 0) { printf("%s: MAC did not match\n", tests[ix].name); failures++; } }; c->c_destroy(c); if (!failures) { printf("OK\n"); return 0; } return 1; } tcpcrypt-0.5/tests/hmac.at0000644000175200017520000000011512742073006014662 0ustar sorbosorboAT_SETUP([HMAC]) AT_CHECK([hmac], [0], [OK ]) AT_CLEANUP tcpcrypt-0.5/tests/.gitignore0000644000175200017520000000010712742073006015415 0ustar sorbosorboatconfig atlocal package.m4 testsuite testsuite.log testsuite.dir hmac tcpcrypt-0.5/tests/atlocal.in0000644000175200017520000000015012742073006015372 0ustar sorbosorbo# configuration data specifically for testing # PATH=@abs_top_srcdir@/src:@abs_top_srcdir@/tests:$PATH tcpcrypt-0.5/src/0000755000175200017520000000000012742073006013054 5ustar sorbosorbotcpcrypt-0.5/src/checksum.c0000644000175200017520000001130012742073006015015 0ustar sorbosorbo#include #include #include #include #include #include "inc.h" #include "tcpcrypt_ctl.h" #include "tcpcrypt.h" #include "tcpcryptd.h" #include "checksum.h" #include "config.h" typedef __signed__ char __s8; typedef unsigned char __u8; typedef __signed__ short __s16; typedef unsigned short __u16; typedef __signed__ int __s32; typedef unsigned int __u32; typedef __u16 __sum16; typedef __u32 __wsum; typedef __u32 u32; typedef u32 __be32; # define __force extern unsigned int csum_partial(const unsigned char * buff, int len, unsigned int sum); #ifdef NO_ASM static int _use_linux = 0; unsigned int csum_partial(const unsigned char * buff, int len, unsigned int sum) { abort(); } #else static int _use_linux = 1; #endif /* ! NO_ASM */ struct tcp_ph { struct in_addr ph_src; struct in_addr ph_dst; uint8_t ph_zero; uint8_t ph_proto; uint16_t ph_len; }; static unsigned short in_cksum(struct tcp_ph *ph, unsigned short *ptr, int nbytes, int s) { register long sum; u_short oddbyte; register u_short answer; sum = s; if (ph) { unsigned short *p = (unsigned short*) ph; int i; for (i = 0; i < sizeof(*ph) >> 1; i++) sum += *p++; } while (nbytes > 1) { sum += *ptr++; nbytes -= 2; } if (nbytes == 1) { oddbyte = 0; *((u_char *) & oddbyte) = *(u_char *) ptr; sum += oddbyte; } sum = (sum >> 16) + (sum & 0xffff); sum += (sum >> 16); answer = ~sum; return (answer); } static void checksum_ip_generic(struct ip *ip) { ip->ip_sum = 0; ip->ip_sum = in_cksum(NULL, (unsigned short*) ip, sizeof(*ip), 0); } static void checksum_tcp_generic(struct ip *ip, struct tcphdr *tcp, int sum) { struct tcp_ph ph; int len; len = ntohs(ip->ip_len) - (ip->ip_hl << 2); ph.ph_src = ip->ip_src; ph.ph_dst = ip->ip_dst; ph.ph_zero = 0; ph.ph_proto = ip->ip_p; ph.ph_len = htons(len); if (sum != 0) len = tcp->th_off << 2; tcp->th_sum = 0; tcp->th_sum = in_cksum(&ph, (unsigned short*) tcp, len, sum); } static inline __sum16 csum_fold(__wsum sum) { asm("addl %1, %0 ;\n" "adcl $0xffff, %0 ;\n" : "=r" (sum) : "r" ((__force u32)sum << 16), "0" ((__force u32)sum & 0xffff0000)); return (__force __sum16)(~(__force u32)sum >> 16); } static inline __wsum csum_tcpudp_nofold(__be32 saddr, __be32 daddr, unsigned short len, unsigned short proto, __wsum sum) { asm("addl %1, %0 ;\n" "adcl %2, %0 ;\n" "adcl %3, %0 ;\n" "adcl $0, %0 ;\n" : "=r" (sum) : "g" (daddr), "g"(saddr), "g" ((len + proto) << 8), "0" (sum)); return sum; } /* * computes the checksum of the TCP/UDP pseudo-header * returns a 16-bit checksum, already complemented */ static inline __sum16 csum_tcpudp_magic(__be32 saddr, __be32 daddr, unsigned short len, unsigned short proto, __wsum sum) { return csum_fold(csum_tcpudp_nofold(saddr, daddr, len, proto, sum)); } static void checksum_tcp_linux(struct tc *tc, struct ip *ip, struct tcphdr *tcp) { int len = ntohs(ip->ip_len) - (ip->ip_hl << 2); int p; int sum = tc->tc_csum; tcp->th_sum = 0; if (sum) { sum = (sum >> 16) + (sum & 0xffff); sum += (sum >> 16); sum &= 0xffff; p = csum_partial((unsigned char*) tcp, tcp->th_off << 2, sum); } else p = csum_partial((unsigned char*) tcp, len, 0); tcp->th_sum = csum_tcpudp_magic(ip->ip_src.s_addr, ip->ip_dst.s_addr, len, IPPROTO_TCP, p); } void checksum_tcp(struct tc *tc, struct ip *ip, struct tcphdr *tcp) { if (tc && _use_linux) checksum_tcp_linux(tc, ip, tcp); else checksum_tcp_generic(ip, tcp, 0); } static inline __sum16 ip_compute_csum(const void *buff, int len) { return csum_fold(csum_partial(buff, len, 0)); } static void checksum_ip_linux(struct ip *ip) { ip->ip_sum = 0; ip->ip_sum = ip_compute_csum(ip, ip->ip_hl << 2); } void checksum_ip(struct ip *ip) { if (_use_linux) checksum_ip_linux(ip); else checksum_ip_generic(ip); } uint16_t checksum(void *data, int len) { if (_use_linux) return ip_compute_csum(data, len); else return in_cksum(NULL, data, len, 0); } tcpcrypt-0.5/src/crypto_reg.c0000644000175200017520000000400212742073006015371 0ustar sorbosorbo#include #include #include #include #include #include #include #include #include "inc.h" #include "util.h" #include "tcpcrypt_ctl.h" #include "tcpcrypt.h" #include "tcpcryptd.h" #include "crypto.h" #include "profile.h" static struct crypt_pub *ECDHE_HKDF_new(struct crypt*(*ctr)(void), int klen) { struct crypt_pub *cp = xmalloc(sizeof(*cp)); memset(cp, 0, sizeof(*cp)); cp->cp_hkdf = crypt_HKDF_SHA256_new(); cp->cp_pub = ctr(); cp->cp_n_c = 32; cp->cp_n_s = 32; cp->cp_k_len = 32; cp->cp_max_key = (4096 / 8); cp->cp_cipher_len = cp->cp_n_s + klen; cp->cp_key_agreement = 1; return cp; } static struct crypt_pub *ECDHE256_HKDF_new(void) { return ECDHE_HKDF_new(crypt_ECDHE256_new, 65 + 2); } static struct crypt_pub *ECDHE521_HKDF_new(void) { return ECDHE_HKDF_new(crypt_ECDHE521_new, 133 + 2); } static struct crypt_sym *AES_GCM_new(struct crypt*(*ctr)(void), int mlen, int klen) { struct crypt_sym *cs = xmalloc(sizeof(*cs)); memset(cs, 0, sizeof(*cs)); cs->cs_cipher = ctr(); cs->cs_mac = ctr(); cs->cs_ack_mac = ctr(); cs->cs_mac_len = mlen; cs->cs_key_len = klen; return cs; } static struct crypt_sym *AES128_GCM_new(void) { return AES_GCM_new(crypt_AES128_new, 16, 128 / 8); } static struct crypt_sym *AES256_GCM_new(void) { return AES_GCM_new(crypt_AES256_new, 16, 256 / 8); } static void register_pub(uint8_t id, struct crypt_pub *(*ctr)(void)) { crypt_register(TYPE_PKEY, id, (crypt_ctr) ctr); } static void register_sym(uint8_t id, struct crypt_sym *(*ctr)(void)) { crypt_register(TYPE_SYM, id, (crypt_ctr) ctr); } static void __register_ciphers(void) __attribute__ ((constructor)); static void __register_ciphers(void) { register_pub(TC_CIPHER_ECDHE_P256, ECDHE256_HKDF_new); register_pub(TC_CIPHER_ECDHE_P521, ECDHE521_HKDF_new); register_sym(TC_AES128_GCM, AES128_GCM_new); register_sym(TC_AES256_GCM, AES256_GCM_new); } tcpcrypt-0.5/src/linux.c0000644000175200017520000001372712742073006014371 0ustar sorbosorbo#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define __FAVOR_BSD #include #undef _POSIX_SOURCE #include "tcpcrypt_divert.h" #include "tcpcryptd.h" static struct nfq_handle *_h; static struct nfq_q_handle *_q; static unsigned int _mark; static struct nfct_handle *_ct; static struct ct_arg { struct sockaddr_in *ct_to; struct ip *ct_ip; int *ct_flags; int ct_rc; } _ct_arg; static int packet_input(struct nfq_q_handle *qh, struct nfgenmsg *nfmsg, struct nfq_data *nfa, void *data) { divert_cb cb = (divert_cb) data; unsigned char *d; int len; int rc; unsigned int id; struct nfqnl_msg_packet_hdr *ph = nfq_get_msg_packet_hdr(nfa); struct ip *ip; int flags = 0; struct timeval tv; int rlen = 0; void *rdata = NULL; len = nfq_get_payload(nfa, &d); if (len < 0) err(1, "nfq_get_payload()"); if (nfq_get_indev(nfa)) flags |= DF_IN; if (nfq_get_timestamp(nfa, &tv) == 0) set_time(&tv); else { static int warn = 0; if (!warn && !_conf.cf_disable_timers) xprintf(XP_ALWAYS, "No timestamp provided in packet" " - expect low performance due to" " calls to gettimeofday\n"); warn = 1; } rc = cb(d, len, flags); id = ntohl(ph->packet_id); switch (rc) { case DIVERT_MODIFY: ip = (struct ip*) d; rlen = ntohs(ip->ip_len); rdata = d; /* fallthrough */ case DIVERT_ACCEPT: if (_mark) { unsigned int mark = 0; assert((mark & _mark) == 0); nfq_set_verdict_mark(qh, id, NF_REPEAT, htonl(_mark | mark), rlen, rdata); } else nfq_set_verdict(qh, id, NF_ACCEPT, rlen, rdata); break; case DIVERT_DROP: nfq_set_verdict(qh, id, NF_DROP, 0, NULL); break; default: printf("Unknown verdict %d\n", rc); abort(); } return 0; } static int conntrack_find(enum nf_conntrack_msg_type type, struct nf_conntrack *ct, void *data) { struct ct_arg *arg = data; int *flags = arg->ct_flags; struct sockaddr_in *to = arg->ct_to; struct ip *ip = arg->ct_ip; struct tcphdr *tcp = (struct tcphdr*) ((unsigned long) ip + ip->ip_hl * 4); if (arg->ct_rc == 0) return NFCT_CB_CONTINUE; #if 0 char buf[1024]; nfct_snprintf(buf, sizeof(buf), ct, type, NFCT_O_DEFAULT, 0); printf("YO [%s]\n", buf); return NFCT_CB_CONTINUE; #endif if (nfct_get_attr_u32(ct, ATTR_IPV4_SRC) != ip->ip_src.s_addr) return NFCT_CB_CONTINUE; if (nfct_get_attr_u16(ct, ATTR_PORT_SRC) != tcp->th_sport) return NFCT_CB_CONTINUE; switch (nfct_get_attr_u8(ct, ATTR_TCP_STATE)) { case TCP_CONNTRACK_SYN_RECV: *flags = DF_IN; break; case TCP_CONNTRACK_SYN_SENT: *flags = 0; break; default: return NFCT_CB_CONTINUE; } to->sin_addr.s_addr = nfct_get_attr_u32(ct, ATTR_ORIG_IPV4_DST); to->sin_port = nfct_get_attr_u16(ct, ATTR_ORIG_PORT_DST); arg->ct_rc = 0; return NFCT_CB_CONTINUE; } static void conntrack_open(void) { if (!(_ct = nfct_open(CONNTRACK, 0))) err(1, "nfct_open()"); nfct_callback_register(_ct, NFCT_T_ALL, conntrack_find, &_ct_arg); } static int linux_open(int port, divert_cb cb) { unsigned int bufsize = 1024 * 1024 * 1; unsigned int rc; char *m; int fd, flags; _h = nfq_open(); if (!_h) err(1, "nfq_open()"); rc = nfnl_rcvbufsiz(nfq_nfnlh(_h), bufsize); if (rc != bufsize) xprintf(XP_DEBUG, "Buffer size %u wanted %u\n", rc, bufsize); /* reset in case of previous crash */ if (nfq_unbind_pf(_h, AF_INET) < 0) err(1, "nfq_unbind_pf()"); if (nfq_bind_pf(_h, AF_INET) < 0) err(1, "nfq_bind_pf()"); _q = nfq_create_queue(_h, port, packet_input, cb); if (!_q) err(1, "nfq_create_queue()"); if (nfq_set_mode(_q, NFQNL_COPY_PACKET, 0xffff) < 0) err(1, "nfq_set_mode()"); if (nfq_set_queue_maxlen(_q, 10000) < 0) err(1, "nfq_set_queue_maxlen()"); xprintf(XP_DEFAULT, "Divert packets using iptables -j NFQUEUE --queue-num %d\n", port); m = driver_param(0); if (m) { _mark = strtoul(m, NULL, 16); xprintf(XP_DEFAULT, "Also, add -m mark --mark 0x0/0x%x\n", _mark); } fd = nfq_fd(_h); flags = fcntl(fd, F_GETFL); if (flags == -1) err(1, "fcntl()"); if (fcntl(fd, F_SETFL, flags | O_NONBLOCK) == -1) err(1, "fcntl()"); raw_open(); conntrack_open(); return fd; } static void linux_close(void) { if (_q) nfq_destroy_queue(_q); if (_h) nfq_close(_h); if (_ct) nfct_close(_ct); } static void linux_next_packet(int s) { char buf[2048]; int rc; rc = read(s, buf, sizeof(buf)); if (rc == -1) { if (errno == ENOBUFS) { printf("FUCK - we're dropping packets\n"); return; } err(1, "read(divert) %d", errno); } if (rc == 0) errx(1, "EOF"); nfq_handle_packet(_h, buf, rc); } static int linux_orig_dest(struct sockaddr_in *to, struct ip *ip, int *flags) { int family = AF_INET; struct ct_arg *arg = &_ct_arg; memset(arg, 0, sizeof(*arg)); arg->ct_to = to; arg->ct_ip = ip; arg->ct_flags = flags; arg->ct_rc = -1; /* XXX have specific filter */ if (nfct_query(_ct, NFCT_Q_DUMP, &family) < 0) err(1, "nfct_query()"); return arg->ct_rc; } struct divert *divert_get(void) { static struct divert _divert_linux = { .open = linux_open, .next_packet = linux_next_packet, .close = linux_close, .inject = raw_inject, .orig_dest = linux_orig_dest, }; if (_conf.cf_rdr) { struct divert *pcap = divert_get_pcap(); _divert_linux.inject = pcap->inject; } return &_divert_linux; } tcpcrypt-0.5/src/inc.h0000644000175200017520000000070612742073006014001 0ustar sorbosorbo#ifndef __WIN32__ #include #include #include #include #include #include #include #include #include #define __FAVOR_BSD #include #include #include #else /* __WIN32__ */ #include #include #include #include "contrib/win_port.h" #endif /* ! __WIN32__ */ tcpcrypt-0.5/src/profile.h0000644000175200017520000000126312742073006014667 0ustar sorbosorbo#ifndef __TCPCRYPT_PROFILE_H__ #define __TCPCRYPT_PROFILE_H__ typedef unsigned int (*speed_cb)(float sample, unsigned int curavg); enum { PROFILE_DISCARD = 1, PROFILE_ENABLE, PROFILE_TIME_SOURCE, }; enum { TIME_SOURCE_TSC = 0, TIME_SOURCE_GETTIMEOFDAY, }; extern void speed_start(speed_cb cb); extern void speed_add(unsigned int sample); extern void profile_print(void); extern void profile_add(int verb, char *desc); extern void sample_add(unsigned int sample); extern void profile_end(void); extern void profile_setopt(int opt, int val); extern int time_diff(struct timeval *past, struct timeval *now); extern uint64_t get_tsc(void); #endif /* __TCPCRYPT_PROFILE_H__ */ tcpcrypt-0.5/src/crypto_dummy.c0000644000175200017520000000714212742073006015757 0ustar sorbosorbo#include #include #include #include #include #include #include "inc.h" #include "tcpcrypt_ctl.h" #include "tcpcrypt.h" #include "tcpcryptd.h" #include "crypto.h" #if 0 #define MAC_SIZE 20 static struct tc_cipher_spec _dummy_pkey_spec = { 0, TC_DUMMY }; static struct crypt_prop _dummy_pkey_prop = { 0, IVMODE_NONE, MAC_SIZE, 256 }; static struct tc_scipher _dummy_mac_spec = { TC_DUMMY }; static struct tc_scipher _dummy_sym_spec = { TC_DUMMY }; static void dummy_init(struct tc *tc) { } static void dummy_finish(struct tc *tc) { } static void dummy_mac(struct tc *tc, struct iovec *iov, int num, void *iv, void *out, int *outlen) { if (*outlen >= MAC_SIZE) memset(out, 0, MAC_SIZE); *outlen = MAC_SIZE; } static uint32_t *get_len(void *data) { uint32_t* x = (uint32_t*) ((unsigned long) data + _dummy_pkey_prop.cp_cipherlen); return --x; } static void dummy_pkey_encrypt(struct tc *tc, void *iv, void *data, int len) { uint32_t *l = get_len(data); assert(len + 4 <= _dummy_pkey_prop.cp_cipherlen); *l = htonl(len); } static int dummy_pkey_decrypt(struct tc *tc, void *iv, void *data, int len) { uint32_t *l = get_len(data); assert(len == _dummy_pkey_prop.cp_cipherlen); return htonl(*l); } static void dummy_encrypt(struct tc *tc, void *iv, void *data, int len) { } static int dummy_decrypt(struct tc *tc, void *iv, void *data, int len) { return len; } static int dummy_get_key(struct tc *tc, void **out) { static int len = 128; static void *key; if (!key) key = xmalloc(len); *out = key; return len; } static void *dummy_pkey_spec(void) { return &_dummy_pkey_spec; } static int dummy_pkey_type(void) { return TYPE_PKEY; } static int dummy_set_key(struct tc *tc, void *key, int len) { return 4; } static void dummy_mac_set_key(struct tc *tc, void *key, int len) { } struct crypt_prop *dummy_pkey_prop(struct tc *tc) { return &_dummy_pkey_prop; } static int dummy_mac_type(void) { return TYPE_MAC; } static int dummy_sym_type(void) { return TYPE_SYM; } static void *dummy_mac_spec(void) { return &_dummy_mac_spec; } static void *dummy_sym_spec(void) { return &_dummy_sym_spec; } static void dummy_next_iv(struct tc *tc, void *out, int *outlen) { assert(*outlen == 0); *outlen = 0; } static struct crypt_ops _dummy_pkey = { .co_init = dummy_init, .co_finish = dummy_finish, .co_encrypt = dummy_pkey_encrypt, .co_decrypt = dummy_pkey_decrypt, .co_get_key = dummy_get_key, .co_spec = dummy_pkey_spec, .co_type = dummy_pkey_type, .co_set_key = dummy_set_key, .co_mac_set_key = dummy_mac_set_key, .co_mac = dummy_mac, .co_crypt_prop = dummy_pkey_prop, }; static struct crypt_ops _dummy_sym = { .co_init = dummy_init, .co_finish = dummy_finish, .co_encrypt = dummy_encrypt, .co_decrypt = dummy_decrypt, .co_spec = dummy_sym_spec, .co_type = dummy_sym_type, .co_set_key = dummy_set_key, .co_next_iv = dummy_next_iv, }; static struct crypt_ops _dummy_mac = { .co_init = dummy_init, .co_finish = dummy_finish, .co_mac = dummy_mac, .co_spec = dummy_mac_spec, .co_type = dummy_mac_type, .co_set_key = dummy_set_key, }; static void __dummy_init(void) __attribute__ ((constructor)); static void __dummy_init(void) { crypto_register(&_dummy_pkey); crypto_register(&_dummy_sym); if (0) crypto_register(&_dummy_mac); } #endif tcpcrypt-0.5/src/crypto_rsa.c0000644000175200017520000000637212742073006015415 0ustar sorbosorbo#include #include #include #include #include #include #include #include #include #include "inc.h" #include "util.h" #include "tcpcrypt_ctl.h" #include "tcpcrypt.h" #include "tcpcryptd.h" #include "crypto.h" #include "profile.h" #define KEYLEN 4096 #define LENM (KEYLEN / 8) #define RSA_EXPONENT 3 struct key { RSA *k_rsa; int k_len; int k_blen; void *k_bin; }; static struct state { struct key s_key; } _state; struct rsa_priv { struct key *r_key; RSA *r_rsa; }; static RSA* generate_key(int bits) { RSA* r; xprintf(XP_DEFAULT, "Generating RSA key: %d bits\n", bits); r = RSA_generate_key(bits, RSA_EXPONENT, NULL, NULL); if (!r) errssl(1, "RSA_generate_key()"); return r; } static void generate_keys(void) { struct key *k = &_state.s_key; xprintf(XP_DEFAULT, "Generating RSA key\n"); if (k->k_rsa) { RSA_free(k->k_rsa); free(k->k_bin); } k->k_len = KEYLEN; k->k_rsa = generate_key(k->k_len); k->k_blen = BN_num_bytes(k->k_rsa->n); k->k_bin = xmalloc(k->k_blen); BN_bn2bin(k->k_rsa->n, k->k_bin); xprintf(XP_DEFAULT, "Done generating RSA key\n"); } static struct key *get_key(void) { return &_state.s_key; } static void rsa_destroy(struct crypt *c) { struct rsa_priv *tp = crypt_priv(c); if (!tp) return; if (tp->r_rsa) { tp->r_rsa->e = NULL; RSA_free(tp->r_rsa); } free(tp); free(c); } static int rsa_encrypt(struct crypt *c, void *iv, void *data, int len) { struct rsa_priv *tp = crypt_priv(c); int sz = RSA_size(tp->r_rsa); void *out = alloca(sz); profile_add(1, "pre pkey encrypt"); if (RSA_public_encrypt(len, data, out, tp->r_rsa, RSA_PKCS1_OAEP_PADDING) == -1) errssl(1, "RSA_public_encrypt()"); profile_add(1, "post pkey encrypt"); memcpy(data, out, sz); return sz; } static int rsa_decrypt(struct crypt *c, void *iv, void *data, int len) { struct rsa_priv *tp = crypt_priv(c); void *out = alloca(len); int rc; if (_conf.cf_rsa_client_hack) assert(!"not implemented"); profile_add(1, "pre pkey decrypt"); rc = RSA_private_decrypt(len, data, out, tp->r_key->k_rsa, RSA_PKCS1_OAEP_PADDING); if (rc == -1) errssl(1, "RSA_private_decrypt()"); profile_add(1, "post pkey decrypt"); memcpy(data, out, rc); return rc; } static int rsa_get_key(struct crypt *c, void **out) { struct rsa_priv *tp = crypt_priv(c); struct key *k; k = tp->r_key = get_key(); *out = k->k_bin; return k->k_blen; } static int rsa_set_key(struct crypt *c, void *key, int len) { struct rsa_priv *tp = crypt_priv(c); BIGNUM *pub; int plen; RSA* r; tp->r_rsa = r = RSA_new(); if (!r) return -1; r->n = pub = BN_bin2bn(key, len, NULL); if (!pub) return -1; plen = BN_num_bits(pub); if (plen % LENM) return -1; r->e = get_key()->k_rsa->e; return 0; } struct crypt *crypt_RSA_new(void) { struct rsa_priv *r; struct crypt *c; static int init = 0; c = crypt_init(sizeof(*r)); c->c_destroy = rsa_destroy; c->c_set_key = rsa_set_key; c->c_get_key = rsa_get_key; c->c_encrypt = rsa_encrypt; c->c_decrypt = rsa_decrypt; r = crypt_priv(c); /* XXX have tcpcrypt call this and renew keys */ if (!init) { generate_keys(); init = 1; } return c; } tcpcrypt-0.5/src/priv.h0000644000175200017520000000024512742073006014206 0ustar sorbosorbo#ifndef __TCPCRYPT_PRIV_H__ #define __TCPCRYPT_PRIV_H__ extern void drop_privs(const char *dir, const char *name); extern void linux_drop_privs(uid_t uid); #endif tcpcrypt-0.5/src/crypto_ecdhe.c0000644000175200017520000000657312742073006015703 0ustar sorbosorbo#include #include #include #include #include #include #include #include #include #include #include #include #include "inc.h" #include "util.h" #include "tcpcrypt_ctl.h" #include "tcpcrypt.h" #include "tcpcryptd.h" #include "crypto.h" #include "profile.h" struct ecdhe_priv { EC_KEY *ec_key; EC_KEY *ec_peer; void *ec_bin; int ec_bin_len; int ec_nid; }; static int set_peer_key(struct crypt *c, void *key, int len) { struct ecdhe_priv *p = crypt_priv(c); EC_KEY *k; uint16_t *klen = key; const unsigned char *kk = (unsigned char*) (klen + 1); if (len < sizeof(*klen)) return -1; if (ntohs(*klen) != len) return -1; len -= sizeof(*klen); k = EC_KEY_new_by_curve_name(p->ec_nid); assert(k); k = o2i_ECPublicKey(&k, &kk, len); if (!k) return -1; p->ec_peer = k; return 0; } static void ecdhe_destroy(struct crypt *c) { struct ecdhe_priv *tp = crypt_priv(c); if (!tp) return; if (tp->ec_key) EC_KEY_free(tp->ec_key); if (tp->ec_peer) EC_KEY_free(tp->ec_peer); if (tp->ec_bin) free(tp->ec_bin); free(tp); free(c); } static int ecdhe_compute_key(struct crypt *c, void *out) { struct ecdhe_priv *ec = crypt_priv(c); return ECDH_compute_key(out, 1024, EC_KEY_get0_public_key(ec->ec_peer), ec->ec_key, NULL); } /* XXX - factor out in tcpcrypt.c? call this kxs? */ static int ecdhe_encrypt(struct crypt *c, void *iv, void *data, int len) { struct ecdhe_priv *tp = crypt_priv(c); unsigned char *p = data; p += len; memcpy(p, tp->ec_bin, tp->ec_bin_len); p += tp->ec_bin_len; return (unsigned long) p - (unsigned long) data; } /* XXX same as above */ static int ecdhe_decrypt(struct crypt *c, void *iv, void *data, int len) { unsigned char *p = data; int nonce_len = 32; p += nonce_len; len -= (unsigned long) p - (unsigned long) data; if (len <= 0) return -1; if (set_peer_key(c, p, len) == -1) return -1; return ecdhe_compute_key(c, data); } static int ecdhe_get_key(struct crypt *c, void **out) { struct ecdhe_priv *p = crypt_priv(c); *out = p->ec_bin; return p->ec_bin_len; } static int ecdhe_set_key(struct crypt *c, void *key, int len) { return set_peer_key(c, key, len); } static struct crypt *crypt_ECDHE_new(int nid) { struct ecdhe_priv *r; struct crypt *c; unsigned char *p; uint16_t *len; c = crypt_init(sizeof(*r)); c->c_destroy = ecdhe_destroy; c->c_get_key = ecdhe_get_key; c->c_set_key = ecdhe_set_key; c->c_encrypt = ecdhe_encrypt; c->c_decrypt = ecdhe_decrypt; c->c_compute_key = ecdhe_compute_key; r = crypt_priv(c); r->ec_nid = nid; if (!(r->ec_key = EC_KEY_new_by_curve_name(r->ec_nid))) errx(1, "unknown curve nid %d", nid); if (EC_KEY_generate_key(r->ec_key) != 1) errx(1, "EC_KEY_generate_key()"); r->ec_bin_len = i2o_ECPublicKey(r->ec_key, NULL); assert(r->ec_bin_len > 0); /* prefix it with length */ r->ec_bin_len += sizeof(*len); len = r->ec_bin = xmalloc(r->ec_bin_len); *len++ = htons(r->ec_bin_len); p = (unsigned char*) len; i2o_ECPublicKey(r->ec_key, &p); return c; } struct crypt *crypt_ECDHE256_new(void) { return crypt_ECDHE_new(NID_X9_62_prime256v1); } struct crypt *crypt_ECDHE521_new(void) { return crypt_ECDHE_new(NID_secp521r1); } tcpcrypt-0.5/src/tcpcryptd.h0000644000175200017520000000412412742073006015242 0ustar sorbosorbo#ifndef __TCPCRYPT_TCPCRYPTD_H__ #define __TCPCRYPT_TCPCRYPTD_H__ #define REDIRECT_PORT 65530 #define MAX_PARAM 12 enum { XP_ALWAYS = 0, XP_DEFAULT, XP_DEBUG, XP_NOISY, }; enum { TEST_CRYPT = 0, TEST_TCP, }; enum { TEST_STATE_START = 0, TEST_STATE_CONNECTING, TEST_STATE_REQ_SENT, TEST_SUCCESS, TEST_STATE_DONE, }; enum { TEST_ERR_TIMEOUT = 666, TEST_ERR_DISCONNECT = 667, TEST_ERR_BADINPUT = 668, TEST_ERR_UNEXPECTED_CRYPT = 669, TEST_ERR_NO_CRYPT = 670, }; struct params { char *p_params[MAX_PARAM]; int p_paramc; }; struct conf { int cf_divert; int cf_verbose; int cf_disable; const char *cf_ctl; int cf_nocache; int cf_accept; int cf_modify; int cf_dummy; int cf_profile; int cf_test; int cf_debug; struct params cf_test_params; struct params cf_divert_params; int cf_nat; int cf_cipher; int cf_mac; int cf_rsa_client_hack; int cf_disable_timers; int cf_disable_network_test; int cf_rdr; const char *cf_test_server; const char *cf_random_path; const char *cf_jail_dir; const char *cf_jail_user; }; struct fd; typedef void (*fd_cb)(struct fd *fd); enum { FDS_IDLE = 0, FDS_READ, FDS_WRITE, FDS_DEAD }; struct fd { int fd_fd; fd_cb fd_cb; int fd_state; void *fd_priv; struct fd *fd_next; }; extern struct conf _conf; typedef void (*timer_cb)(void *a); typedef int (*packet_hook)(int rc, void *packet, int len, int flags); extern void *add_timer(unsigned int usec, timer_cb cb, void *arg); extern struct fd *add_fd(int fd, fd_cb cb); extern void clear_timer(void *timer); extern void xprintf(int level, char *fmt, ...); extern void hexdump(void *p, int len); extern void errssl(int x, char *fmt, ...); extern void set_time(struct timeval *tv); extern void tcpcryptd(void); extern void set_packet_hook(int post, packet_hook hook); extern char *driver_param(int x); extern char *test_param(int x); extern void set_nonblocking(int x); extern uint64_t xbe64toh(uint64_t x); extern uint64_t xhtobe64(uint64_t x); #endif /* __TCPCRYPT_TCPCRYPTD_H__ */ tcpcrypt-0.5/src/resource.h0000644000175200017520000000014012742073006015047 0ustar sorbosorbo#define MANIFEST_RESOURCE_ID 1 tcpcrypt-0.5/src/tcpcryptd.c0000644000175200017520000006014312742073006015240 0ustar sorbosorbo#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "shared/socket_address.h" #include "inc.h" #include "tcpcrypt_ctl.h" #include "tcpcrypt_divert.h" #include "tcpcrypt.h" #include "tcpcryptd.h" #ifndef __WIN32__ #include "priv.h" #endif #include "profile.h" #include "test.h" #include "crypto.h" #include "tcpcrypt_strings.h" #include "config.h" #include "util.h" #define ARRAY_SIZE(n) (sizeof(n) / sizeof(*n)) #define MAX_TIMERS 1024 struct conf _conf; struct divert *_divert; struct backlog_ctl { struct backlog_ctl *bc_next; struct socket_address bc_sa; struct tcpcrypt_ctl bc_ctl; }; struct timer { struct timeval t_time; timer_cb t_cb; void *t_arg; struct timer *t_next; struct timer *t_prev; int t_id; }; struct network_test { int nt_port; int nt_proto; int nt_req; int nt_s; int nt_state; int nt_err; int nt_last_state; int nt_flags; int nt_crypt; time_t nt_start; struct tcpcrypt_ctl nt_ctl; struct network_test *nt_next; }; static struct state { struct backlog_ctl s_backlog_ctl; int s_ctl; struct socket_address s_ctl_addr; int s_raw; struct timer s_timers; struct timer *s_timer_map[MAX_TIMERS]; struct timer s_timer_free; struct timeval s_now; int s_divert; int s_time_set; packet_hook s_post_packet_hook; packet_hook s_pre_packet_hook; struct network_test s_network_tests; void *s_nt_timer; struct in_addr s_nt_ip; } _state; static struct fd _fds; typedef void (*test_cb)(void); struct test { test_cb t_cb; char *t_desc; }; static struct test _tests[] = { { test_sym_throughput, "Symmetric cipher throughput" }, { test_mac_throughput, "Symmetric MAC throughput" }, { test_dropper, "Packet dropper" }, }; static void ensure_socket_address_unlinked(struct socket_address *sa) { const char *path; if (socket_address_is_null(sa)) return; if ((path = socket_address_pathname(sa)) != NULL) { if (unlink(path) != 0) { if (errno != ENOENT) warn("unlink(%s)", path); } } } static void cleanup() { _divert->close(); if (_state.s_ctl > 0) close(_state.s_ctl); if (_state.s_raw > 0) close(_state.s_raw); profile_end(); } static void sig(int num) { printf("\n"); cleanup(); exit(0); } static void dump_state(void) { struct fd *fd = &_fds; xprintf(XP_ALWAYS, "==== DUMPING STATE ====\n"); while ((fd = fd->fd_next)) xprintf(XP_ALWAYS, "FD %d state %d\n", fd->fd_fd, fd->fd_state); xprintf(XP_ALWAYS, "=======================\n"); } static void sigusr1(int num) { dump_state(); } void set_time(struct timeval *tv) { _state.s_now = *tv; _state.s_time_set = 1; } static struct timeval *get_time(void) { if (!_state.s_time_set) { struct timeval tv; gettimeofday(&tv, NULL); set_time(&tv); } return &_state.s_now; } static void alloc_timers() { int i; struct timer *t; for (i = 0; i < MAX_TIMERS; i++) { t = xmalloc(sizeof(*t)); memset(t, 0, sizeof(*t)); t->t_id = i; _state.s_timer_map[i] = t; t->t_next = _state.s_timer_free.t_next; _state.s_timer_free.t_next = t; } } void *add_timer(unsigned int usec, timer_cb cb, void *arg) { struct timer *t, *prev, *cur; int sec; if (_conf.cf_disable_timers) return (void*) 0x666; if (!_state.s_timer_map[0]) alloc_timers(); t = _state.s_timer_free.t_next; assert(t); _state.s_timer_free.t_next = t->t_next; t->t_next = NULL; t->t_time = *(get_time()); t->t_time.tv_sec += usec / (1000 * 1000); t->t_time.tv_usec += usec % (1000 * 1000); sec = t->t_time.tv_usec / (1000 * 1000); if (sec) { t->t_time.tv_sec += sec; t->t_time.tv_usec = t->t_time.tv_usec % (1000 * 1000); } t->t_cb = cb; t->t_arg = arg; prev = &_state.s_timers; cur = prev->t_next; while (cur) { if (time_diff(&t->t_time, &cur->t_time) >= 0) { t->t_next = cur; cur->t_prev = t; break; } prev = cur; cur = cur->t_next; } prev->t_next = t; t->t_prev = prev; if (!t->t_next) _state.s_timers.t_prev = t; return t; } void clear_timer(void *timer) { struct timer *prev = &_state.s_timers; struct timer *t = prev->t_next; if (_conf.cf_disable_timers) return; while (t) { if (t == timer) { prev->t_next = t->t_next; t->t_next = _state.s_timer_free.t_next; _state.s_timer_free.t_next = t; return; } prev = t; t = t->t_next; } assert(!"Timer not found"); } static int packet_handler(void *packet, int len, int flags) { int rc; /* XXX implement as pre packet hook */ if (_conf.cf_accept) return DIVERT_ACCEPT; else if (_conf.cf_modify) return DIVERT_MODIFY; if (_state.s_pre_packet_hook) { rc = _state.s_pre_packet_hook(-1, packet, len, flags); if (rc != -1) return rc; } rc = tcpcrypt_packet(packet, len, flags); if (_state.s_post_packet_hook) return _state.s_post_packet_hook(rc, packet, len, flags); return rc; } void set_packet_hook(int post, packet_hook p) { if (post) _state.s_post_packet_hook = p; else _state.s_pre_packet_hook = p; } static void backlog_ctl(struct tcpcrypt_ctl *c, struct socket_address *sa) { struct backlog_ctl *b; b = xmalloc(sizeof(*b) + c->tcc_dlen); memset(b, 0, sizeof(*b)); memcpy(&b->bc_sa, sa, sizeof(*sa)); memcpy(&b->bc_ctl, c, sizeof(*c)); memcpy(b->bc_ctl.tcc_data, c->tcc_data, c->tcc_dlen); b->bc_next = _state.s_backlog_ctl.bc_next; _state.s_backlog_ctl.bc_next = b; } static int do_handle_ctl(struct tcpcrypt_ctl *c, struct socket_address *sa) { int l, rc; if (c->tcc_flags & TCC_SET) c->tcc_err = tcpcryptd_setsockopt(c, c->tcc_opt, c->tcc_data, c->tcc_dlen); else c->tcc_err = tcpcryptd_getsockopt(c, c->tcc_opt, c->tcc_data, &c->tcc_dlen); /* we can either have client retry, or we queue things up. The latter * is more efficient but more painful to implement. I'll go for the * latter anyway, i'm sure nobody will mind (I'm the one coding after * all). */ if (c->tcc_err == EBUSY) return 0; l = sizeof(*c) + c->tcc_dlen; rc = sendto(_state.s_ctl, (void*) c, l, 0, &sa->addr.sa, sa->addr_len); if (rc == -1) err(1, "sendto()"); if (rc != l) errx(1, "short write"); return 1; } static void backlog_ctl_process(void) { struct backlog_ctl *prev = &_state.s_backlog_ctl; struct backlog_ctl *b = prev->bc_next; while (b) { if (do_handle_ctl(&b->bc_ctl, &b->bc_sa)) { struct backlog_ctl *next = b->bc_next; prev->bc_next = next; free(b); b = next; } else { prev = b; b = b->bc_next; } } } static void handle_ctl(int ctl) { unsigned char buf[4096]; struct tcpcrypt_ctl *c = (struct tcpcrypt_ctl*) buf; int rc; struct socket_address sa = SOCKET_ADDRESS_ANY; rc = recvfrom(ctl, (void*) buf, sizeof(buf), 0, &sa.addr.sa, &sa.addr_len); if (rc == -1) err(1, "read(ctl)"); if (rc == 0) errx(1, "EOF"); if (rc < sizeof(*c)) { xprintf(XP_ALWAYS, "fsadlfijasldkjf\n"); return; } if (c->tcc_dlen + sizeof(*c) != rc) { xprintf(XP_ALWAYS, "bad len\n"); return; } if (!do_handle_ctl(c, &sa)) backlog_ctl(c, &sa); } static void dispatch_timers(void) { struct timer *head = &_state.s_timers; struct timer *t; struct timer tmp; while ((t = head->t_next)) { if (time_diff(&t->t_time, get_time()) < 0) break; /* timers can add timers so lets fixup linked list first */ tmp = *t; clear_timer(t); tmp.t_cb(tmp.t_arg); } } static void add_test(int port, int proto, int req) { struct network_test *t = xmalloc(sizeof(*t)); struct network_test *cur = &_state.s_network_tests; memset(t, 0, sizeof(*t)); t->nt_port = port; t->nt_proto = proto; t->nt_req = req; while (cur->nt_next) cur = cur->nt_next; cur->nt_next = t; } static void test_port(int port) { add_test(port, TEST_TCP, 0); add_test(port, TEST_TCP, 1); add_test(port, TEST_CRYPT, 2); } static void prepare_ctl(struct network_test *nt) { struct sockaddr_in s_in; struct tcpcrypt_ctl *ctl = &nt->nt_ctl; int s = nt->nt_s; socklen_t sl = sizeof(s_in); memset(&s_in, 0, sizeof(s_in)); s_in.sin_family = AF_INET; s_in.sin_addr.s_addr = INADDR_ANY; s_in.sin_port = htons(0); if (bind(s, (struct sockaddr*) &s_in, sizeof(s_in)) == -1) err(1, "bind()"); if (getsockname(s, (struct sockaddr*) &s_in, &sl) == -1) err(1, "getsockname()"); ctl->tcc_src = s_in.sin_addr; ctl->tcc_sport = s_in.sin_port; } #ifdef __WIN32__ void set_nonblocking(int s) { u_long mode = 1; ioctlsocket(s, FIONBIO, &mode); } #else void set_nonblocking(int s) { int flags; if ((flags = fcntl(s, F_GETFL, 0)) == -1) err(1, "fcntl()"); if (fcntl(s, F_SETFL, flags | O_NONBLOCK) == -1) err(1, "fcntl()"); } #endif static void test_connect(struct network_test *t) { int s; struct sockaddr_in s_in; if ((s = socket(AF_INET, SOCK_STREAM, 0)) == -1) err(1, "socket()"); t->nt_s = s; prepare_ctl(t); if (t->nt_proto == TEST_TCP) { int off = 0; if (tcpcryptd_setsockopt(&t->nt_ctl, TCP_CRYPT_ENABLE, &off, sizeof(off)) == -1) errx(1, "tcpcryptd_setsockopt()"); } else { int one = 1; assert(t->nt_proto == TEST_CRYPT); if (tcpcryptd_setsockopt(&t->nt_ctl, TCP_CRYPT_NOCACHE, &one, sizeof(one)) == -1) errx(1, "tcpcryptd_setsockopt()"); } set_nonblocking(s); memset(&s_in, 0, sizeof(s_in)); s_in.sin_family = AF_INET; s_in.sin_port = htons(t->nt_port); s_in.sin_addr = _state.s_nt_ip; if (connect(s, (struct sockaddr*) &s_in, sizeof(s_in)) == -1) { #ifdef __WIN32__ if (WSAGetLastError() != WSAEWOULDBLOCK) #else if (errno != EINPROGRESS) #endif err(1, "connect()"); } t->nt_ctl.tcc_dst = s_in.sin_addr; t->nt_ctl.tcc_dport = s_in.sin_port; t->nt_state = TEST_STATE_CONNECTING; t->nt_start = time(NULL); } static void test_finish(struct network_test *t, int rc) { t->nt_last_state = t->nt_state; t->nt_err = rc; t->nt_state = TEST_STATE_DONE; close(t->nt_s); printf("Test result: " \ "port %d crypt %d req %d state %d err %d flags %d\n", t->nt_port, t->nt_proto == TEST_CRYPT ? 1 : 0, t->nt_req, t->nt_last_state, t->nt_err, t->nt_flags); } static void test_success(struct network_test *t) { t->nt_state = TEST_SUCCESS; test_finish(t, 0); } static void test_connecting(struct network_test *t) { int s = t->nt_s; struct timeval tv; fd_set fds; int rc; socklen_t sz = sizeof(rc); char *buf = NULL; unsigned char sid[1024]; unsigned int sidlen = sizeof(sid); struct sockaddr_in s_in; socklen_t sl = sizeof(s_in); tv.tv_sec = 0; tv.tv_usec = 0; FD_ZERO(&fds); FD_SET(s, &fds); if (select(s + 1, NULL, &fds, NULL, &tv) == -1) err(1, "select()"); if (!FD_ISSET(s, &fds)) return; if (getsockopt(s, SOL_SOCKET, SO_ERROR, &rc, &sz) == -1) err(1, "getsockopt()"); if (rc != 0) { test_finish(t, rc); return; } if (getsockname(s, (struct sockaddr*) &s_in, &sl) == -1) err(1, "getsockname()"); t->nt_ctl.tcc_src = s_in.sin_addr; rc = tcpcryptd_getsockopt(&t->nt_ctl, TCP_CRYPT_SESSID, sid, &sidlen); if (rc == EBUSY) return; t->nt_crypt = rc != -1; assert(t->nt_req < (sizeof(REQS) / sizeof(*REQS))); buf = REQS[t->nt_req]; if (send(s, buf, strlen(buf), 0) != strlen(buf)) err(1, "send()"); t->nt_state = TEST_STATE_REQ_SENT; } static void test_req_sent(struct network_test *t) { int s = t->nt_s; fd_set fds; struct timeval tv; char buf[1024]; int rc; FD_ZERO(&fds); FD_SET(s, &fds); tv.tv_sec = 0; tv.tv_usec = 0; if (select(s + 1, &fds, NULL, NULL, &tv) == -1) err(1, "select()"); if (!FD_ISSET(s, &fds)) return; rc = recv(s, buf, sizeof(buf) - 1, 0); if (rc == -1) { test_finish(t, errno); return; } if (rc == 0) { test_finish(t, TEST_ERR_DISCONNECT); return; } buf[rc] = 0; if (strncmp(buf, TEST_REPLY, strlen(TEST_REPLY)) != 0) { test_finish(t, TEST_ERR_BADINPUT); return; } t->nt_flags = atoi(&buf[rc - 1]); if (t->nt_proto == TEST_TCP && t->nt_crypt == 1) { test_finish(t, TEST_ERR_UNEXPECTED_CRYPT); return; } if (t->nt_proto == TEST_CRYPT && t->nt_crypt != 1) { test_finish(t, TEST_ERR_NO_CRYPT); return; } test_success(t); } static void run_network_test(struct network_test *t) { if (t->nt_start && (time(NULL) - t->nt_start) > 5) { test_finish(t, TEST_ERR_TIMEOUT); return; } switch (t->nt_state) { case TEST_STATE_START: test_connect(t); break; case TEST_STATE_CONNECTING: test_connecting(t); break; case TEST_STATE_REQ_SENT: test_req_sent(t); break; } } static int resolve_server(void) { struct hostent *he = gethostbyname(_conf.cf_test_server); struct in_addr **addr; _state.s_nt_ip.s_addr = INADDR_ANY; if (!he) return 0; addr = (struct in_addr**) he->h_addr_list; if (!addr[0]) return 0; _state.s_nt_ip = *addr[0]; return 1; } static void test_network(void) { resolve_server(); if (_state.s_nt_ip.s_addr == INADDR_ANY) { xprintf(XP_ALWAYS, "Won't test network - can't resolve %s\n", _conf.cf_test_server); return; } xprintf(XP_ALWAYS, "Testing network via %s\n", inet_ntoa(_state.s_nt_ip)); test_port(80); test_port(7777); } static void retest_network(void* ignored) { _conf.cf_disable = 0; test_network(); } static void test_results(void) { struct network_test *t = _state.s_network_tests.nt_next; int tot = 0; int fail = 0; xprintf(XP_ALWAYS, "Tests done!"); while (t) { tot++; if (t->nt_last_state != TEST_SUCCESS) { fail++; xprintf(XP_ALWAYS, " %d", tot); } t = t->nt_next; } if (fail) { unsigned long mins = 30; unsigned long timeout = 1000 * 1000 * 60 * mins; xprintf(XP_ALWAYS, " failed [%d/%d]!\n", fail, tot); t = _state.s_network_tests.nt_next; if (t->nt_last_state == TEST_SUCCESS) { xprintf(XP_ALWAYS, "Disabling tcpcrypt for %lu minutes\n", mins); _conf.cf_disable = 1; _state.s_nt_timer = add_timer(timeout, retest_network, NULL); } } else { xprintf(XP_ALWAYS, " All passed\n"); /* XXX retest later? */ } } static int run_network_tests(void) { struct network_test *t = _state.s_network_tests.nt_next; while (t) { if (t->nt_state != TEST_STATE_DONE) { run_network_test(t); return 1; } t = t->nt_next; } t = _state.s_network_tests.nt_next; if (t) { test_results(); while (t) { struct network_test *next = t->nt_next; free(t); t = next; } _state.s_network_tests.nt_next = NULL; } return 0; } static void do_cycle(void) { fd_set rd, wr; int max = 0; struct timer *t; struct timeval tv, *tvp = NULL; int testing = 0; struct fd *fd = &_fds; testing = run_network_tests(); FD_ZERO(&rd); FD_ZERO(&wr); /* prepare select */ while (fd->fd_next) { struct fd *next = fd->fd_next; /* unlink dead sockets */ if (next->fd_state == FDS_DEAD) { fd->fd_next = next->fd_next; free(next); continue; } fd = next; switch (fd->fd_state) { case FDS_IDLE: continue; case FDS_WRITE: FD_SET(fd->fd_fd, &wr); break; case FDS_READ: FD_SET(fd->fd_fd, &rd); break; } max = fd->fd_fd > max ? fd->fd_fd : max; } t = _state.s_timers.t_next; if (t) { int diff = time_diff(get_time(), &t->t_time); assert(diff > 0); tv.tv_sec = diff / (1000 * 1000); tv.tv_usec = diff % (1000 * 1000); tvp = &tv; } else tvp = NULL; _state.s_time_set = 0; if (testing && !tvp) { tv.tv_sec = 0; tv.tv_usec = 1000; tvp = &tv; } if (select(max + 1, &rd, &wr, NULL, tvp) == -1) { if (errno == EINTR) return; err(1, "select()"); } fd = &_fds; while ((fd = fd->fd_next)) { if (fd->fd_state == FDS_READ && FD_ISSET(fd->fd_fd, &rd)) fd->fd_cb(fd); if (fd->fd_state == FDS_WRITE && FD_ISSET(fd->fd_fd, &wr)) fd->fd_cb(fd); } dispatch_timers(); if (_divert->cycle) _divert->cycle(); if (_conf.cf_rdr) backlog_ctl_process(); } static void do_test(void) { struct test *t; if (_conf.cf_test < 0 || _conf.cf_test >= sizeof(_tests) / sizeof(*_tests)) errx(1, "Test %d out of range", _conf.cf_test); t = &_tests[_conf.cf_test]; printf("Running test %d: %s\n", _conf.cf_test, t->t_desc); t->t_cb(); printf("Test done\n"); } static int bind_control_socket(struct socket_address *sa, const char *descr) { int r, s; static const int error_len = 1000; char error[error_len]; mode_t mask; const char *path; r = resolve_socket_address_local(_conf.cf_ctl, sa, error, error_len); if (r != 0) errx(1, "interpreting socket address '%s': %s", descr, error); { char name[1000]; socket_address_pretty(name, 1000, sa); xprintf(XP_DEFAULT, "Opening control socket at %s\n", name); } if ((s = socket(sa->addr.sa.sa_family, SOCK_DGRAM, 0)) <= 0) err(1, "socket()"); ensure_socket_address_unlinked(sa); mask = umask(0); if (bind(s, &sa->addr.sa, sa->addr_len) != 0) err(1, "bind()"); umask(mask); /* in case of old systems where bind() ignores the umask: */ if ((path = socket_address_pathname(sa)) != NULL) { if (chmod(path, 0777) != 0) warnx("Setting permissions on control socket"); } return s; } void _drop_privs(const char *dir, const char *name) { xprintf(XP_DEFAULT, "Attempting to drop privileges with chroot=%s and user=%s\n", dir ? dir : "(NONE)", name ? name : "(NONE)"); drop_privs(dir, name); } struct fd *add_fd(int f, fd_cb cb) { struct fd *fd = xmalloc(sizeof(*fd)); memset(fd, 0, sizeof(*fd)); fd->fd_fd = f; fd->fd_cb = cb; fd->fd_state = FDS_READ; fd->fd_next = _fds.fd_next; _fds.fd_next = fd; return fd; } static void process_divert(struct fd *fd) { _divert->next_packet(fd->fd_fd); backlog_ctl_process(); } static void process_ctl(struct fd *fd) { handle_ctl(fd->fd_fd); } void tcpcryptd(void) { _divert = divert_get(); assert(_divert); _state.s_divert = _divert->open(_conf.cf_divert, packet_handler); _state.s_ctl = bind_control_socket(&_state.s_ctl_addr, _conf.cf_ctl); _drop_privs(_conf.cf_jail_dir, _conf.cf_jail_user); printf("Running\n"); if (!_conf.cf_disable && !_conf.cf_disable_network_test) test_network(); add_fd(_state.s_divert, process_divert); add_fd(_state.s_ctl, process_ctl); while (1) do_cycle(); } static void do_set_preference(int id, int type) { if (!id) return; assert(!"implement"); } static void setup_tcpcrypt(void) { struct cipher_list *c; /* set cipher preference */ do_set_preference(_conf.cf_cipher, TYPE_SYM); /* add ciphers */ c = crypt_cipher_list(); while (c) { tcpcrypt_register_cipher(c); c = c->c_next; } /* setup */ tcpcrypt_init(); } static void pwn(void) { printf("Initializing...\n"); setup_tcpcrypt(); if (_conf.cf_test != -1) do_test(); else tcpcryptd(); } void xprintf(int level, char *fmt, ...) { va_list ap; if (_conf.cf_verbose < level) return; va_start(ap, fmt); vprintf(fmt, ap); va_end(ap); } void hexdump(void *x, int len) { uint8_t *p = x; int did = 0; int level = XP_ALWAYS; xprintf(level, "Dumping %d bytes\n", len); while (len--) { xprintf(level, "%.2X ", *p++); if (++did == 16) { if (len) xprintf(level, "\n"); did = 0; } } xprintf(level, "\n"); } void errssl(int x, char *fmt, ...) { va_list ap; va_start(ap, fmt); vprintf(fmt, ap); va_end(ap); printf(": %s\n", ERR_error_string(ERR_get_error(), NULL)); exit(1); } static void add_param(struct params *p, char *optarg) { if (p->p_paramc >= ARRAY_SIZE(p->p_params)) errx(1, "too many parameters\n"); p->p_params[p->p_paramc++] = optarg; } static char *get_param(struct params *p, int idx) { if (idx >= p->p_paramc) return NULL; return p->p_params[idx]; } uint64_t xbe64toh(uint64_t x) { return ntohl(x); /* XXX */ } uint64_t xhtobe64(uint64_t x) { return htonl(x); /* XXX */ } char *driver_param(int idx) { return get_param(&_conf.cf_divert_params, idx); } char *test_param(int idx) { return get_param(&_conf.cf_test_params, idx); } static void usage(char *prog) { int i; printf("Usage: %s \n" "-h\thelp (or --help)\n" "-p\t (default: %d)\n" "-v\tverbose\n" "-d\tdisable\n" "-c\tno cache\n" "-a\tdivert accept (NOP)\n" "-m\tdivert modify (NOP)\n" "-u\t (default: " TCPCRYPTD_CONTROL_SOCKET ")\n" "-n\tno crypto\n" "-P\tprofile\n" "-S\tprofile time source (0 TSC, 1 gettimeofday)\n" "-t\t\n" "-T\t\n" "-D\tdebug\n" "-x\t\n" "-N\trun as nat / middlebox\n" "-C\t\n" "-M\t\n" "-r\t\n" "-R\tRSA client hack\n" "-i\tdisable timers\n" "-f\tdisable network test\n" "-s\t (default: " TCPCRYPTD_TEST_SERVER ")\n" "-V\tshow version (or --version)\n" "-U\t (default: " TCPCRYPTD_JAIL_USER ")\n" "-J\t (default: " TCPCRYPTD_JAIL_DIR ")\n" "-e\tredirect\n" , prog, TCPCRYPTD_DIVERT_PORT); printf("\nTests:\n"); for (i = 0; i < sizeof(_tests) / sizeof(*_tests); i++) printf("%d) %s\n", i, _tests[i].t_desc); } int main(int argc, char *argv[]) { int ch; #ifdef __WIN32__ WSADATA wsadata; if (WSAStartup(MAKEWORD(1,1), &wsadata) == SOCKET_ERROR) errx(1, "WSAStartup()"); #endif _conf.cf_divert = TCPCRYPTD_DIVERT_PORT; _conf.cf_ctl = TCPCRYPTD_CONTROL_SOCKET; _conf.cf_test = -1; _conf.cf_test_server = TCPCRYPTD_TEST_SERVER; _conf.cf_jail_dir = TCPCRYPTD_JAIL_DIR; _conf.cf_jail_user = TCPCRYPTD_JAIL_USER; _conf.cf_disable_network_test = 1; if (argc == 2 && argv[1][0] == '-' && argv[1][1] == '-') { if (strcmp(argv[1], "--help") == 0) { usage(argv[0]); exit(0); } else if (strcmp(argv[1], "--version") == 0) { printf("tcpcrypt version %s\n", TCPCRYPT_VERSION); exit(0); } else { usage(argv[0]); exit(1); } } while ((ch = getopt(argc, argv, "hp:vdu:camnPt:T:S:Dx:NC:M:r:Rifs:VU:J:e")) != -1) { switch (ch) { case 'e': _conf.cf_rdr = 1; break; case 'i': _conf.cf_disable_timers = 1; break; case 'r': _conf.cf_random_path = optarg; break; case 'R': _conf.cf_rsa_client_hack = 1; break; case 'M': _conf.cf_mac = atoi(optarg); break; case 'C': _conf.cf_cipher = atoi(optarg); break; case 'N': _conf.cf_nat = 1; break; case 'D': _conf.cf_debug = 1; break; case 'S': profile_setopt(PROFILE_TIME_SOURCE, atoi(optarg)); break; case 'x': add_param(&_conf.cf_divert_params, optarg); break; case 'T': add_param(&_conf.cf_test_params, optarg); break; case 't': _conf.cf_test = atoi(optarg); break; case 'P': _conf.cf_profile++; break; case 'n': _conf.cf_dummy = 1; break; case 'a': _conf.cf_accept = 1; break; case 'm': _conf.cf_modify = 1; break; case 'c': _conf.cf_nocache = 1; break; case 'u': _conf.cf_ctl = optarg; break; case 'd': _conf.cf_disable = 1; break; case 'p': _conf.cf_divert = atoi(optarg); break; case 'v': _conf.cf_verbose++; break; case 'V': printf("tcpcrypt version %s\n", TCPCRYPT_VERSION); exit(0); case 'f': _conf.cf_disable_network_test = 1; break; case 's': _conf.cf_test_server = optarg; break; case 'U': _conf.cf_jail_user = optarg; break; case 'J': _conf.cf_jail_dir = optarg; break; case 'h': usage(argv[0]); exit(0); break; default: usage(argv[0]); exit(1); break; } } resolve_server(); if (signal(SIGINT, sig) == SIG_ERR) err(1, "signal(SIGINT)"); if (signal(SIGTERM, sig) == SIG_ERR) err(1, "signal(SIGTERM)"); #ifndef __WIN32__ if (signal(SIGUSR1, sigusr1) == SIG_ERR) err(1, "signal(SIGUSR1)"); if (signal(SIGPIPE, SIG_IGN) == SIG_ERR) err(1, "signal(SIGPIPE)"); #endif profile_setopt(PROFILE_DISCARD, 3); profile_setopt(PROFILE_ENABLE, _conf.cf_profile); if (atexit(dump_state)) err(1, "atexit()"); pwn(); cleanup(); exit(0); } tcpcrypt-0.5/src/tcpcrypt.h0000644000175200017520000001612412742073006015101 0ustar sorbosorbo#ifndef __SRC_TCPCRYPT_H__ #define __SRC_TCPCRYPT_H__ #include #include "tcpcrypt_ctl.h" #include "tcpcrypt_version.h" #define TC_DUMMY 0x69 #define TC_OPT_VLEN 0x80 enum { TC_CIPHER_ECDHE_P256 = 0x21, TC_CIPHER_ECDHE_P521 = 0x22, }; enum { TC_AES128_GCM = 0x01, TC_AES256_GCM = 0x02, }; enum { TC_HMAC_SHA1_128 = 0x01, TC_UMAC, }; enum { CONST_NEXTK = 0x01, CONST_SESSID = 0x02, CONST_REKEY = 0x03, CONST_KEY_C = 0x04, CONST_KEY_S = 0x05, CONST_KEY_ENC = 0x06, CONST_KEY_MAC = 0x07, CONST_KEY_ACK = 0x08, }; struct tc_cipher_spec { uint8_t tcs_algo; } #if defined(__clang__) __attribute__ ((__packed__)) #else __attribute__ ((gcc_struct, __packed__)) #endif ; struct tc_scipher { uint8_t sc_algo; }; enum { STATE_RDR_NONE = 0, STATE_RDR_LOCAL, STATE_RDR_REMOTE, }; enum { STATE_CLOSED = 0, STATE_HELLO_SENT, STATE_HELLO_RCVD, STATE_PKCONF_SENT, STATE_PKCONF_RCVD, STATE_INIT1_SENT = 5, STATE_INIT1_RCVD, STATE_INIT2_SENT, STATE_ENCRYPTING, STATE_DISABLED, STATE_NEXTK1_SENT = 10, STATE_NEXTK1_RCVD, STATE_NEXTK2_SENT, STATE_REKEY_SENT, STATE_REKEY_RCVD, STATE_RDR_PLAIN = 15, }; enum { CMODE_DEFAULT = 0, CMODE_ALWAYS, CMODE_ALWAYS_NK, CMODE_NEVER, CMODE_NEVER_NK, }; enum { ROLE_CLIENT = 1, ROLE_SERVER, }; enum { TCPSTATE_CLOSED = 0, TCPSTATE_FIN1_SENT, TCPSTATE_FIN1_RCVD, TCPSTATE_FIN2_SENT, TCPSTATE_FIN2_RCVD, TCPSTATE_LASTACK, TCPSTATE_DEAD, }; struct crypt_alg { struct crypt_ops *ca_ops; void *ca_priv; }; #define MAX_SS 32 struct stuff { uint8_t s_data[MAX_SS * 2]; int s_len; }; struct tc_sess { struct crypt_pub *ts_pub; struct crypt_sym *ts_sym; struct crypt_alg ts_mac; struct stuff ts_sid; struct stuff ts_nk; struct stuff ts_mk; uint8_t ts_pub_spec; int ts_role; struct in_addr ts_ip; int ts_port; int ts_dir; struct tc_sess *ts_next; int ts_used; }; struct tc_sid { uint8_t ts_sid[10]; } __attribute__ ((__packed__)); #define TCF_FIN 0x1 #define TCF_URG 0x2 struct tc_flags { uint8_t tf_flags; uint16_t tf_urp[0]; } __attribute__ ((__packed__)); #define TC_MTU 1500 #define MAX_CIPHERS 8 #define MAX_NONCE 48 enum { IVMODE_NONE = 0, IVMODE_SEQ, IVMODE_CRYPT, }; enum { DIR_IN = 1, DIR_OUT, }; struct tc_keys { struct stuff tk_prk; }; struct tc_keyset { struct tc_keys tc_client; struct tc_keys tc_server; struct crypt_sym *tc_alg_tx; struct crypt_sym *tc_alg_rx; }; /* Contains vanilla sequence numbers as received by tcpcryptd. off is the * padding (tc_record) added (or removed) by tcpcryptd to that packet. * * kernel -> tcpcryptd. [add off] * internet -> tcpcryptd. [sub off] */ struct tc_seq { uint32_t sm_start; uint32_t sm_end; uint32_t sm_off; }; /* should be proportional to window size (in packets) */ #define MAX_SEQMAP 100 struct tc_seqmap { struct tc_seq sm_seq[MAX_SEQMAP]; int sm_idx; }; struct conn; struct tc { int tc_state; struct tc_cipher_spec *tc_ciphers_pkey; int tc_ciphers_pkey_len; struct tc_scipher *tc_ciphers_sym; int tc_ciphers_sym_len; struct tc_cipher_spec tc_cipher_pkey; struct tc_scipher tc_cipher_sym; struct crypt_pub *tc_crypt_pub; struct crypt_sym *tc_crypt_sym; int tc_mac_size; int tc_mac_ivlen; int tc_mac_ivmode; uint64_t tc_seq; uint64_t tc_ack; void *tc_crypt; struct crypt_ops *tc_crypt_ops; int tc_mac_rst; int tc_cmode; int tc_tcp_state; int tc_mtu; struct tc_sess *tc_sess; int tc_mss_clamp; int tc_seq_off; int tc_rseq_off; struct tc_seqmap tc_seqm; struct tc_seqmap tc_rseqm; int tc_sack_disable; int tc_rto; void *tc_timer; struct retransmit *tc_retransmit; struct in_addr tc_dst_ip; int tc_dst_port; uint8_t tc_nonce[MAX_NONCE]; int tc_nonce_len; struct tc_cipher_spec tc_pub_cipher_list[MAX_CIPHERS]; int tc_pub_cipher_list_len; struct tc_scipher tc_sym_cipher_list[MAX_CIPHERS]; int tc_sym_cipher_list_len; struct stuff tc_ss; struct stuff tc_sid; struct stuff tc_mk; struct stuff tc_nk; struct tc_keyset tc_key_current; struct tc_keyset tc_key_next; struct tc_keyset *tc_key_active; int tc_role; int tc_sym_ivlen; int tc_sym_ivmode; int tc_dir; int tc_nocache; int tc_dir_packet; int tc_mac_opt_cache[DIR_OUT + 1]; int tc_csum; int tc_verdict; void *tc_last_ack_timer; unsigned int tc_sent_bytes; unsigned char tc_keygen; unsigned char tc_keygentx; unsigned char tc_keygenrx; unsigned int tc_rekey_seq; unsigned char tc_opt[40]; int tc_optlen; struct conn *tc_conn; int tc_app_support; uint64_t tc_isn; uint64_t tc_isn_peer; unsigned char tc_init1[1500]; int tc_init1_len; unsigned char tc_init2[1500]; int tc_init2_len; unsigned char tc_pms[128]; int tc_pms_len; unsigned char tc_eno[1500]; int tc_eno_len; int tc_rdr_state; int tc_rdr_connected; struct fd *tc_rdr_fd; unsigned char tc_rdr_buf[4096]; int tc_rdr_len; struct tc *tc_rdr_peer; struct sockaddr_in tc_rdr_addr; uint64_t tc_rdr_tx; uint64_t tc_rdr_rx; int tc_rdr_inbound; int tc_rdr_drop_sa; }; enum { TCOP_NONE = 0x00, TCOP_HELLO = 0x01, TCOP_HELLO_SUPPORT = 0x02, TCOP_NEXTK2 = 0x05, TCOP_NEXTK2_SUPPORT = 0x06, TCOP_INIT1 = 0x07, TCOP_INIT2 = 0x08, TCOP_PKCONF = 0x41, TCOP_PKCONF_SUPPORT = 0x42, TCOP_REKEY = 0x83, TCOP_NEXTK1 = 0x84, TCOP_NEXTK1_SUPPORT, }; struct tc_subopt { }; struct tco_rekeystream { uint8_t tr_op; uint8_t tr_key; uint32_t tr_seq; } __attribute__ ((__packed__)); #define TCPOPT_SKEETER 16 #define TCPOPT_BUBBA 17 #define TCPOPT_MD5 19 #define TCPOPT_EXP 253 #define EXID_ENO 0x454E struct tcpopt_eno { uint8_t toe_kind; uint8_t toe_len; uint16_t toe_exid; uint8_t toe_opts[0]; } __attribute__ ((__packed__)); struct tcpopt_mac { uint8_t tom_kind; uint8_t tom_len; uint8_t tom_data[0]; }; #define MACM_MAGIC 0x8000 struct mac_m { uint16_t mm_magic; uint16_t mm_len; uint8_t mm_off; uint8_t mm_flags; uint16_t mm_urg; uint32_t mm_seqhi; uint32_t mm_seq; }; struct mac_a { uint32_t ma_ackhi; uint32_t ma_ack; }; enum { TC_INIT1 = 0x15101a0e, TC_INIT2 = 0x097105e0, }; struct tc_init1 { uint32_t i1_magic; uint32_t i1_len; uint8_t i1_nciphers; uint8_t i1_data[0]; } __attribute__ ((__packed__)); struct tc_init2 { uint32_t i2_magic; uint32_t i2_len; uint8_t i2_cipher; uint8_t i2_data[0]; } __attribute__ ((__packed__)); struct tc_record { uint8_t tr_control; uint16_t tr_len; uint8_t tr_data[0]; } __attribute__ ((__packed__)); struct cipher_list; extern int tcpcrypt_packet(void *packet, int len, int flags); extern int tcpcryptd_setsockopt(struct tcpcrypt_ctl *s, int opt, void *val, unsigned int len); extern int tcpcryptd_getsockopt(struct tcpcrypt_ctl *s, int opt, void *val, unsigned int *len); extern void tcpcrypt_register_cipher(struct cipher_list *c); extern void tcpcrypt_init(void); extern struct tcphdr *get_tcp(struct ip *ip); #endif /* __SRC_TCPCRYPT_H__ */ tcpcrypt-0.5/src/cygwin.c0000644000175200017520000002134712742073006014527 0ustar sorbosorbo#include #include #include #include #include #include #include #include #include #include #include "inc.h" #include "tcpcrypt_divert.h" #include "tcpcryptd.h" #include "tcpcrypt.h" #include "checksum.h" #include "util.h" #include #define MAC_SIZE 14 static int _s; static divert_cb _cb; struct packet { unsigned char p_buf[2048]; int p_len; struct packet *p_next; } _outbound; enum { STATE_NONE = 0, STATE_REDIRECT, STATE_HANDSHAKE, STATE_CONNECTED }; #define CONN_TIMEOUT 15 static struct conmap { struct sockaddr_in src; struct sockaddr_in dst; int state; time_t dead; struct conmap *next; } _cons; static struct in_addr _local_ip; extern int do_divert_open(void); extern int do_divert_read(int s, void *buf, int len); extern int do_divert_write(int s, void *buf, int len); extern void do_divert_close(int s); static int divert_open(int port, divert_cb cb) { int s; struct sockaddr_in s_in; socklen_t len = sizeof(s_in); _s = do_divert_open(); _cb = cb; /* figure out local IP */ if ((s = socket(PF_INET, SOCK_DGRAM, 0)) == -1) err(1, "socket()"); memset(&s_in, 0, sizeof(&s_in)); s_in.sin_family = PF_INET; s_in.sin_addr.s_addr = inet_addr("8.8.8.8"); s_in.sin_port = htons(666); if (connect(s, (struct sockaddr*) &s_in, sizeof(s_in)) == -1) err(1, "connect()"); if (getsockname(s, (struct sockaddr*) &s_in, &len) == -1) err(1, "getsockname()"); _local_ip.s_addr = s_in.sin_addr.s_addr; xprintf(XP_ALWAYS, "Local IP is %s\n", inet_ntoa(_local_ip)); close(s); return _s; } static void divert_close(void) { do_divert_close(_s); } static void do_redirect(struct conmap *c, struct ip *ip, struct tcphdr *tcp, struct in_addr *fromip, uint32_t toip, uint16_t *fromport, uint16_t toport) { #if 0 xprintf(XP_NOISY, "rdr %s:%d->", inet_ntoa(*fromip), ntohs(*fromport)); #endif fromip->s_addr = toip; *fromport = htons(toport); checksum_packet(NULL, ip, tcp); #if 0 xprintf(XP_NOISY,"%s:%d\n", inet_ntoa(*fromip), ntohs(*fromport)); #endif if (tcp->th_flags & (TH_RST | TH_FIN)) { c->dead = time(NULL); } } static struct conmap *find_conmap_prev(int sport) { struct conmap *c = &_cons; while (c->next) { if (c->next->src.sin_port == sport) return c; c = c->next; } return NULL; } static struct conmap *find_conmap(int sport) { struct conmap *c = find_conmap_prev(sport); if (!c) return NULL; return c->next; } static struct conmap *redirect(struct ip *ip, int len, int flags) { struct tcphdr *tcp = get_tcp(ip); if (ntohs(tcp->th_dport) == 80) { struct conmap *c = find_conmap(tcp->th_sport); if (!c && (tcp->th_flags == TH_SYN)) { c = xmalloc(sizeof(*c)); memset(c, 0, sizeof(*c)); c->src.sin_port = tcp->th_sport; c->state = STATE_REDIRECT; c->next = _cons.next; _cons.next = c; } /* not redirecting */ if (!c) return NULL; /* don't redirect outbound handshake but divert it */ if (c->state == STATE_HANDSHAKE) return c; if (c->state != STATE_REDIRECT) return NULL; if (tcp->th_flags == TH_SYN) c->dead = 0; c->dst.sin_addr.s_addr = ip->ip_dst.s_addr; do_redirect(c, ip, tcp, &ip->ip_dst, _local_ip.s_addr, &tcp->th_dport, REDIRECT_PORT); } else if (ntohs(tcp->th_sport) == REDIRECT_PORT) { struct conmap *c = find_conmap(tcp->th_dport); if (!c || c->state != STATE_REDIRECT) return NULL; do_redirect(c, ip, tcp, &ip->ip_src, c->dst.sin_addr.s_addr, &tcp->th_sport, 80); } return NULL; } static void print_con(void) { struct conmap *c = &_cons; printf("Dumping con\n"); while ((c = c->next)) { printf("con %s:%d ", inet_ntoa(c->src.sin_addr), ntohs(c->src.sin_port)); printf("->%s:%d %d [dead %u]\n", inet_ntoa(c->dst.sin_addr), ntohs(c->dst.sin_port), c->state, c->dead); } } static void kill_dead(void) { time_t now = time(NULL); struct conmap *prev = &_cons, *cur; while ((cur = prev->next)) { if (cur->dead && (now - cur->dead) >= CONN_TIMEOUT) { prev->next = cur->next; free(cur); continue; } prev = cur; } } static int firewall_divert(struct ip *ip, int len, int flags) { struct tcphdr *tcp = get_tcp(ip); struct conmap *c; kill_dead(); // print_con(); c = redirect(ip, len, flags); /* don't firewall our injections */ if (ip->ip_tos == INJECT_TOS) { ip->ip_tos = 0; checksum_ip(ip); return 0; } /* stuff we didn't redirect, so it's going to the outside world */ if (c) { /* divert syns */ if (tcp->th_flags == TH_SYN) c->state = STATE_HANDSHAKE; /* XXX assume it's ACK of 3 way handshake. Won't work with * retransmits */ if (!(tcp->th_flags & TH_SYN)) { if (c->state == STATE_HANDSHAKE) { // c->state = STATE_CONNECTED; return 1; } } } /* divert handshake */ if (tcp->th_flags & TH_SYN) return 1; return 0; } static void do_divert_next_packet(unsigned char *buf, int rc) { int verdict = DIVERT_MODIFY; int flags = 0; struct ip *iph = (struct ip*) &buf[MAC_SIZE]; int len; PDIVERT_ADDRESS addr = (PDIVERT_ADDRESS)buf; if (rc < MAC_SIZE) errx(1, "short read %d", rc); if (addr->Direction == WINDIVERT_DIRECTION_INBOUND) flags |= DF_IN; // XXX ethernet padding on short packets? (46 byte minimum) len = rc - MAC_SIZE; if (len > ntohs(iph->ip_len)) { xprintf(XP_ALWAYS, "Trimming from %d to %d\n", len, ntohs(iph->ip_len)); len = ntohs(iph->ip_len); } if (firewall_divert(iph, len, flags)) verdict = _cb(iph, len, flags); switch (verdict) { case DIVERT_MODIFY: rc = ntohs(iph->ip_len) + MAC_SIZE; /* fallthrough */ case DIVERT_ACCEPT: flags = do_divert_write(_s, buf, rc); if (flags == -1) err(1, "write()"); if (flags != rc) errx(1, "wrote %d/%d", flags, rc); break; case DIVERT_DROP: break; default: abort(); break; } } static void divert_next_packet(int s) { unsigned char buf[2048]; int rc; rc = do_divert_read(_s, buf, sizeof(buf)); if (rc == -1) err(1, "read()"); if (rc == 0) errx(1, "EOF"); do_divert_next_packet(buf, rc); } static void divert_inject(void *data, int len) { struct packet *p, *p2; struct ip *ip; p = malloc(sizeof(*p)); if (!p) err(1, "malloc()"); memset(p, 0, sizeof(*p)); // XXX: for divert, we can just zero the ethhdr, which contains the // DIVERT_ADDRESS. A zeroed address usually gives the desired // result. /* payload */ p->p_len = len + MAC_SIZE; if (p->p_len > sizeof(p->p_buf)) errx(1, "too big (divert_inject)"); memcpy(&p->p_buf[MAC_SIZE], data, len); /* Keep TOS signaling consistent */ ip = (struct ip*) &p->p_buf[MAC_SIZE]; ip->ip_tos = INJECT_TOS; checksum_ip(ip); /* add to list */ p2 = &_outbound; if (p2->p_next) p2 = p2->p_next; p2->p_next = p; } static void divert_cycle(void) { struct packet *p = _outbound.p_next; while (p) { struct packet *next = p->p_next; do_divert_next_packet(p->p_buf, p->p_len); free(p); p = next; } _outbound.p_next = NULL; } static int divert_orig_dest(struct sockaddr_in *out, struct ip *ip, int *flags) { struct tcphdr *tcp = get_tcp(ip); struct conmap *c = find_conmap(tcp->th_sport); if (!c || c->state != STATE_REDIRECT) return -1; memset(out, 0, sizeof(*out)); out->sin_family = PF_INET; out->sin_addr.s_addr = c->dst.sin_addr.s_addr; out->sin_port = htons(80); return 0; } void win_dont_rdr(int s) { struct sockaddr_in s_in; struct conmap *c; socklen_t len = sizeof(s_in); if (getsockname(s, (struct sockaddr*) &s_in, &len) == -1) err(1, "getsockname()"); c = find_conmap(s_in.sin_port); if (c) { printf("XXX TODO\n"); return; } c = xmalloc(sizeof(*c)); memset(c, 0, sizeof(*c)); c->src.sin_port = s_in.sin_port; c->state = STATE_HANDSHAKE; c->next = _cons.next; _cons.next = c; xprintf(XP_NOISY, "No RDR on %d\n", ntohs(c->src.sin_port)); } void win_handshake_complete(int s) { struct sockaddr_in s_in; struct conmap *c, *con; socklen_t len = sizeof(s_in); if (getsockname(s, (struct sockaddr*) &s_in, &len) == -1) err(1, "getsockname()"); if (!(c = find_conmap_prev(s_in.sin_port))) { printf("XXX TODO 222\n"); return; } con = c->next; if (con->state != STATE_HANDSHAKE) { printf("DDDD TODO\n"); return; } c->next = con->next; free(con); } uint32_t win_local_ip(void) { return _local_ip.s_addr; } struct divert *divert_get(void) { static struct divert _divert_win = { .open = divert_open, .next_packet = divert_next_packet, .close = divert_close, .inject = divert_inject, .cycle = divert_cycle, .orig_dest = divert_orig_dest, }; return &_divert_win; } tcpcrypt-0.5/src/profile.c0000644000175200017520000001341412742073006014663 0ustar sorbosorbo#include #include #include #include #include #include #include #include "profile.h" #define MAX_SAMPLES 128 struct samples { char *s_desc; union { struct timeval s_tv; uint64_t s_tsc; } u; }; static struct state { struct samples s_time[MAX_SAMPLES]; int s_timec; struct timeval s_speed_a; struct timeval s_speed_b; unsigned int s_speed_num; unsigned int s_speed_avg; int s_speed_avgc; speed_cb s_speed_cb; int s_discard; unsigned int s_sum; unsigned int s_samples; int s_enable; int s_time_source; } _state; int time_diff(struct timeval *a, struct timeval *now) { int diff = 0; int neg = 1; if ((a->tv_sec > now->tv_sec) || (a->tv_sec == now->tv_sec && a->tv_usec > now->tv_usec)) { struct timeval *tmp = a; a = now; now = tmp; neg = -1; } diff = now->tv_sec - a->tv_sec; if (diff == 0) diff = now->tv_usec - a->tv_usec; else { diff--; diff *= 1000 * 1000; diff += 1000 * 1000 - a->tv_usec; diff += now->tv_usec; } assert(diff >= 0); return diff * neg; } static inline uint64_t do_get_tsc(void) { uint64_t t = 0; #if defined(__amd64__) || defined(__i386__) __asm__ volatile (".byte 0x0f, 0x31" : "=A" (t)); #else abort(); #endif return t; } uint64_t get_tsc(void) { return do_get_tsc(); } void profile_add(int verb, char *desc) { if (_state.s_enable < verb) return; assert(_state.s_timec < MAX_SAMPLES); _state.s_time[_state.s_timec].s_desc = desc; switch (_state.s_time_source) { case TIME_SOURCE_GETTIMEOFDAY: gettimeofday(&_state.s_time[_state.s_timec].u.s_tv, NULL); break; case TIME_SOURCE_TSC: _state.s_time[_state.s_timec].u.s_tsc = do_get_tsc(); break; default: assert(!"Unknown time source"); break; } _state.s_timec++; } static unsigned int sample_diff(struct samples *a, struct samples *b) { uint64_t tsc_diff; unsigned int x; switch (_state.s_time_source) { case TIME_SOURCE_GETTIMEOFDAY: return time_diff(&a->u.s_tv, &b->u.s_tv); case TIME_SOURCE_TSC: tsc_diff = b->u.s_tsc - a->u.s_tsc; assert(tsc_diff >= 0); x = (unsigned int) tsc_diff; assert(((uint64_t) x) == tsc_diff); return x; default: assert(!"Unknown time source"); break; } return -1; } static const char *sample_unit(void) { static const char *gt = "s.us"; static const char *tsc = "cycles"; switch (_state.s_time_source) { case TIME_SOURCE_GETTIMEOFDAY: return gt; case TIME_SOURCE_TSC: return tsc; default: assert(!"Unknown time source"); break; } return NULL; } static const char *sample_str(struct samples *s) { static char buf[1024]; switch (_state.s_time_source) { case TIME_SOURCE_GETTIMEOFDAY: sprintf(buf, "%u.%u", (unsigned int) s->u.s_tv.tv_sec, (unsigned int) s->u.s_tv.tv_usec); break; case TIME_SOURCE_TSC: sprintf(buf, "%" PRIu64, s->u.s_tsc); break; default: assert(!"Unknown time source"); break; } return buf; } static void print_time(void) { unsigned int total; struct samples *s = _state.s_time; unsigned int diff; float pc; total = sample_diff(&_state.s_time[0], &_state.s_time[_state.s_timec - 1]); printf("Time (%s)\t\t diff\t %%\tdesc\n", sample_unit()); while (_state.s_timec--) { if (s != _state.s_time) diff = sample_diff((s - 1), s); else diff = 0; pc = (float) diff / (float) total * 100.0; printf("%-20s\t%10u\t%4.1f\t%s\n", sample_str(s), diff, pc, s->s_desc); s++; } printf("Total time %u\n", total); _state.s_timec = 0; } void profile_print(void) { if (!_state.s_enable) return; if (_state.s_timec) print_time(); } void speed_start(speed_cb cb) { _state.s_speed_cb = cb; gettimeofday(&_state.s_speed_a, NULL); } void sample_add(unsigned int sample) { unsigned int old = _state.s_sum; if (_state.s_discard != 0) { _state.s_discard--; return; } _state.s_sum += sample; _state.s_samples++; assert(_state.s_sum >= old); assert(_state.s_samples); } void speed_add(unsigned int sample) { unsigned int old = _state.s_speed_num; unsigned int diff; unsigned int rate; float speed; unsigned int avg = 0; gettimeofday(&_state.s_speed_b, NULL); _state.s_speed_num += sample; assert(_state.s_speed_num >= old); diff = time_diff(&_state.s_speed_a, &_state.s_speed_b); if (diff < 1000 * 1000) return; speed = (float) _state.s_speed_num / (float) diff; if (_state.s_speed_avgc >= 5) { avg = (double) _state.s_speed_avg / (double) _state.s_speed_avgc; _state.s_speed_avg = 0; _state.s_speed_avgc = 0; } rate = _state.s_speed_cb(speed, avg); sample_add(rate); old = _state.s_speed_avg; _state.s_speed_avg += rate; assert(_state.s_speed_avg >= old); _state.s_speed_avgc++; _state.s_speed_a = _state.s_speed_b; _state.s_speed_num = 0; } static void print_average(void) { printf("%u samples, average %u\n", _state.s_samples, _state.s_sum / _state.s_samples); } void profile_end(void) { if (_state.s_samples) print_average(); } void profile_setopt(int opt, int val) { switch (opt) { case PROFILE_DISCARD: _state.s_discard = val; break; case PROFILE_ENABLE: _state.s_enable = val; break; case PROFILE_TIME_SOURCE: _state.s_time_source = val; break; default: abort(); } } tcpcrypt-0.5/src/util.c0000644000175200017520000000021012742073006014166 0ustar sorbosorbo#include #include "inc.h" void *xmalloc(size_t sz) { void *r = malloc(sz); if (!r) err(1, "malloc()"); return r; } tcpcrypt-0.5/src/iptables.sh0000755000175200017520000000646512742073006015231 0ustar sorbosorbo#!/bin/sh # determine which operation is requested (Append or Delete) if [ "$1" = "start" -o -z "$1" ]; then # during startup, bail early if any of these commands fails set -e OP="-A" elif [ "$1" = "stop" -o "$1" = "-f" ] ; then OP="-D" else echo "Expected \"start\" or \"stop\" as first argument" >&2 exit 1 fi # determine which ports should be tcpcrypt-enabled if [ -z "$ONLY_PORTS" -a -z "$OMIT_PORTS" ] ; then echo "Expected either OMIT_PORTS or ONLY_PORTS environment variables to be set" >&2 exit 1 fi if [ -n "$ONLY_PORTS" -a -n "$OMIT_PORTS" ] ; then echo "Expected only one of OMIT_PORTS or ONLY_PORTS environment variables to be set" >&2 exit 1 fi if [ -n "$OMIT_PORTS" ] ; then PORT_TEST=! PORTS="$OMIT_PORTS" fi if [ -n "$ONLY_PORTS" ] ; then PORT_TEST= PORTS="$ONLY_PORTS" fi # more necessary configuration if [ -z "$DAEMON_USER" ] ; then echo "Expected DAEMON_USER environment variable to be set" >&2 exit 1 fi if [ -z "$DIVERT_PORT" ] ; then echo "Expected DIVERT_PORT environment variable to be set" >&2 exit 1 fi # some shorthand to make rules more concise from_enabled_port="-m multiport $PORT_TEST --source-ports $PORTS" to_enabled_port="-m multiport $PORT_TEST --destination-ports $PORTS" NFQUEUE="NFQUEUE --queue-num $DIVERT_PORT" REDIRECT_PORT="65530" REDIRECT="REDIRECT --to-port $REDIRECT_PORT" INJECT_TOS="0x22" HANDSHAKE_TOS="0x04" filter="$ECHO iptables -t filter $OP" # Injection from daemon: Accept $filter INPUT -i lo -p tcp --dport $REDIRECT_PORT \ -m tos --tos $INJECT_TOS \ -j ACCEPT # SYN redirected to daemon: # Queue for daemon to initiate proxy connection with original destination $filter INPUT -p tcp \! -s 127.0.0.1 --dport $REDIRECT_PORT --tcp-flags ALL SYN \ -j $NFQUEUE # SYN+ACK on proxy connection: # Queue for daemon to complete original handshake $filter INPUT -p tcp $from_enabled_port --tcp-flags ALL SYN,ACK \ -j $NFQUEUE # Handshake packet of proxy connection from daemon: # Queue for daemon to set tcp options via DIVERT_MODIFY $filter OUTPUT -p tcp $to_enabled_port \ -m tos --tos $HANDSHAKE_TOS \ -m owner --uid-owner $DAEMON_USER \ -j $NFQUEUE # SYN+ACK on redirected connection: # Queue for daemon to delay handshake until proxy connection succeeds $filter OUTPUT -p tcp --sport $REDIRECT_PORT --tcp-flags ALL SYN,ACK \ -j $NFQUEUE nat="$ECHO iptables -t nat $OP" # Inbound connection for enabled ports: # Redirect to daemon (at localhost:$REDIRECT_PORT) for encryption # # (The nat module will now translate addresses in both directions, # for the lifetime of this connection.) $nat PREROUTING -p tcp $to_enabled_port \ -j $REDIRECT # Proxy connection from daemon to enabled port: Accept $nat OUTPUT -p tcp $to_enabled_port \ -m owner --uid-owner $DAEMON_USER \ -j ACCEPT # Outbound connections to enabled ports on remote hosts: # Redirect to daemon (at localhost port $REDIRECT_PORT) for encryption # # (The nat module will now translate addresses in both directions, # for the lifetime of this connection.) $nat OUTPUT \! -o lo -p tcp $to_enabled_port \ -j $REDIRECT mangle="$ECHO iptables -t mangle $OP" # Packets leaving the machine with bookkeeping mark: Remove mark $mangle POSTROUTING -m tos --tos $HANDSHAKE_TOS \ -j TOS --set-tos 0x00 tcpcrypt-0.5/src/crypto_hkdf.c0000644000175200017520000000335712742073006015544 0ustar sorbosorbo#include #include #include #include #include #include #include #include #include "inc.h" #include "tcpcrypt_ctl.h" #include "tcpcrypt.h" #include "tcpcryptd.h" #include "crypto.h" #include "profile.h" #define MAC_LEN 32 struct hkdf_priv { struct crypt *hk_hmac; }; static void hkdf_destroy(struct crypt *c) { struct hkdf_priv *hk = crypt_priv(c); if (!hk) return; crypt_destroy(hk->hk_hmac); free(hk); free(c); } static int hkdf_set_key(struct crypt *c, void *data, int len) { struct hkdf_priv *hk = crypt_priv(c); crypt_set_key(hk->hk_hmac, data, len); return 0; } static void hkdf_extract(struct crypt *c, struct iovec *iov, int num, void *out, int *outlen) { struct hkdf_priv *hk = crypt_priv(c); crypt_mac(hk->hk_hmac, iov, num, out, outlen); } static void hkdf_expand(struct crypt *c, void *tag, int taglen, void *out, int len) { struct hkdf_priv *hk = crypt_priv(c); unsigned char *p = out; uint8_t ctr = 1; struct iovec iov[2]; int outlen = MAC_LEN; iov[0].iov_base = tag; iov[0].iov_len = taglen; iov[1].iov_base = &ctr; iov[1].iov_len = sizeof(ctr); while (len >= MAC_LEN) { crypt_mac(hk->hk_hmac, iov, sizeof(iov) / sizeof(*iov), p, &outlen); ctr++; assert(outlen == MAC_LEN); assert(ctr != 0); p += MAC_LEN; len -= MAC_LEN; } if (len) { assert(!"implement remainder"); abort(); } } struct crypt *crypt_HKDF_SHA256_new(void) { struct hkdf_priv *hk; struct crypt *c; c = crypt_init(sizeof(*hk)); c->c_destroy = hkdf_destroy; c->c_set_key = hkdf_set_key; c->c_extract = hkdf_extract; c->c_expand = hkdf_expand; hk = crypt_priv(c); hk->hk_hmac = crypt_HMAC_SHA256_new(); return c; } tcpcrypt-0.5/src/checksum_32.S0000644000175200017520000003015012742073006015305 0ustar sorbosorbo/* * INET An implementation of the TCP/IP protocol suite for the LINUX * operating system. INET is implemented using the BSD Socket * interface as the means of communication with the user level. * * IP/TCP/UDP checksumming routines * * Authors: Jorge Cwik, * Arnt Gulbrandsen, * Tom May, * Pentium Pro/II routines: * Alexander Kjeldaas * Finn Arne Gangstad * Lots of code moved from tcp.c and ip.c; see those files * for more names. * * Changes: Ingo Molnar, converted csum_partial_copy() to 2.1 exception * handling. * Andi Kleen, add zeroing on error * converted to pure assembler * * 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. */ #define CONFIG_X86_USE_PPRO_CHECKSUM #define EFAULT 14 #ifndef __ALIGN #define __ALIGN .align 4,0x90 #define __ALIGN_STR ".align 4,0x90" #endif #define ALIGN __ALIGN #ifndef ENTRY #define ENTRY(name) \ .globl name; \ ALIGN; \ name: #endif #ifndef END #define END(name) \ .size name, .-name #endif #ifndef ENDPROC #define ENDPROC(name) \ .type name, @function; \ END(name) #endif /* Due to the structure of pre-exisiting code, don't use assembler line comment character # to ignore the arguments. Instead, use a dummy macro. */ .macro ignore a=0, b=0, c=0, d=0 .endm #define CFI_STARTPROC ignore #define CFI_ENDPROC ignore #define CFI_DEF_CFA ignore #define CFI_DEF_CFA_REGISTER ignore #define CFI_DEF_CFA_OFFSET ignore #define CFI_ADJUST_CFA_OFFSET ignore #define CFI_OFFSET ignore #define CFI_REL_OFFSET ignore #define CFI_REGISTER ignore #define CFI_RESTORE ignore #define CFI_REMEMBER_STATE ignore #define CFI_RESTORE_STATE ignore #define CFI_UNDEFINED ignore #define CFI_SIGNAL_FRAME ignore /* * computes a partial checksum, e.g. for TCP/UDP fragments */ /* unsigned int csum_partial(const unsigned char * buff, int len, unsigned int sum) */ .text #ifndef CONFIG_X86_USE_PPRO_CHECKSUM /* * Experiments with Ethernet and SLIP connections show that buff * is aligned on either a 2-byte or 4-byte boundary. We get at * least a twofold speedup on 486 and Pentium if it is 4-byte aligned. * Fortunately, it is easy to convert 2-byte alignment to 4-byte * alignment for the unrolled loop. */ ENTRY(csum_partial) CFI_STARTPROC pushl %esi CFI_ADJUST_CFA_OFFSET 4 CFI_REL_OFFSET esi, 0 pushl %ebx CFI_ADJUST_CFA_OFFSET 4 CFI_REL_OFFSET ebx, 0 movl 20(%esp),%eax # Function arg: unsigned int sum movl 16(%esp),%ecx # Function arg: int len movl 12(%esp),%esi # Function arg: unsigned char *buff testl $3, %esi # Check alignment. jz 2f # Jump if alignment is ok. testl $1, %esi # Check alignment. jz 10f # Jump if alignment is boundary of 2bytes. # buf is odd dec %ecx jl 8f movzbl (%esi), %ebx adcl %ebx, %eax roll $8, %eax inc %esi testl $2, %esi jz 2f 10: subl $2, %ecx # Alignment uses up two bytes. jae 1f # Jump if we had at least two bytes. addl $2, %ecx # ecx was < 2. Deal with it. jmp 4f 1: movw (%esi), %bx addl $2, %esi addw %bx, %ax adcl $0, %eax 2: movl %ecx, %edx shrl $5, %ecx jz 2f testl %esi, %esi 1: movl (%esi), %ebx adcl %ebx, %eax movl 4(%esi), %ebx adcl %ebx, %eax movl 8(%esi), %ebx adcl %ebx, %eax movl 12(%esi), %ebx adcl %ebx, %eax movl 16(%esi), %ebx adcl %ebx, %eax movl 20(%esi), %ebx adcl %ebx, %eax movl 24(%esi), %ebx adcl %ebx, %eax movl 28(%esi), %ebx adcl %ebx, %eax lea 32(%esi), %esi dec %ecx jne 1b adcl $0, %eax 2: movl %edx, %ecx andl $0x1c, %edx je 4f shrl $2, %edx # This clears CF 3: adcl (%esi), %eax lea 4(%esi), %esi dec %edx jne 3b adcl $0, %eax 4: andl $3, %ecx jz 7f cmpl $2, %ecx jb 5f movw (%esi),%cx leal 2(%esi),%esi je 6f shll $16,%ecx 5: movb (%esi),%cl 6: addl %ecx,%eax adcl $0, %eax 7: testl $1, 12(%esp) jz 8f roll $8, %eax 8: popl %ebx CFI_ADJUST_CFA_OFFSET -4 CFI_RESTORE ebx popl %esi CFI_ADJUST_CFA_OFFSET -4 CFI_RESTORE esi ret CFI_ENDPROC ENDPROC(csum_partial) #else /* Version for PentiumII/PPro */ ENTRY(csum_partial) CFI_STARTPROC pushl %esi CFI_ADJUST_CFA_OFFSET 4 CFI_REL_OFFSET esi, 0 pushl %ebx CFI_ADJUST_CFA_OFFSET 4 CFI_REL_OFFSET ebx, 0 movl 20(%esp),%eax # Function arg: unsigned int sum movl 16(%esp),%ecx # Function arg: int len movl 12(%esp),%esi # Function arg: const unsigned char *buf testl $3, %esi jnz 25f 10: movl %ecx, %edx movl %ecx, %ebx andl $0x7c, %ebx shrl $7, %ecx addl %ebx,%esi shrl $2, %ebx negl %ebx lea 45f(%ebx,%ebx,2), %ebx testl %esi, %esi jmp *%ebx # Handle 2-byte-aligned regions 20: addw (%esi), %ax lea 2(%esi), %esi adcl $0, %eax jmp 10b 25: testl $1, %esi jz 30f # buf is odd dec %ecx jl 90f movzbl (%esi), %ebx addl %ebx, %eax adcl $0, %eax roll $8, %eax inc %esi testl $2, %esi jz 10b 30: subl $2, %ecx ja 20b je 32f addl $2, %ecx jz 80f movzbl (%esi),%ebx # csumming 1 byte, 2-aligned addl %ebx, %eax adcl $0, %eax jmp 80f 32: addw (%esi), %ax # csumming 2 bytes, 2-aligned adcl $0, %eax jmp 80f 40: addl -128(%esi), %eax adcl -124(%esi), %eax adcl -120(%esi), %eax adcl -116(%esi), %eax adcl -112(%esi), %eax adcl -108(%esi), %eax adcl -104(%esi), %eax adcl -100(%esi), %eax adcl -96(%esi), %eax adcl -92(%esi), %eax adcl -88(%esi), %eax adcl -84(%esi), %eax adcl -80(%esi), %eax adcl -76(%esi), %eax adcl -72(%esi), %eax adcl -68(%esi), %eax adcl -64(%esi), %eax adcl -60(%esi), %eax adcl -56(%esi), %eax adcl -52(%esi), %eax adcl -48(%esi), %eax adcl -44(%esi), %eax adcl -40(%esi), %eax adcl -36(%esi), %eax adcl -32(%esi), %eax adcl -28(%esi), %eax adcl -24(%esi), %eax adcl -20(%esi), %eax adcl -16(%esi), %eax adcl -12(%esi), %eax adcl -8(%esi), %eax adcl -4(%esi), %eax 45: lea 128(%esi), %esi adcl $0, %eax dec %ecx jge 40b movl %edx, %ecx 50: andl $3, %ecx jz 80f # Handle the last 1-3 bytes without jumping notl %ecx # 1->2, 2->1, 3->0, higher bits are masked movl $0xffffff,%ebx # by the shll and shrl instructions shll $3,%ecx shrl %cl,%ebx andl -128(%esi),%ebx # esi is 4-aligned so should be ok addl %ebx,%eax adcl $0,%eax 80: testl $1, 12(%esp) jz 90f roll $8, %eax 90: popl %ebx CFI_ADJUST_CFA_OFFSET -4 CFI_RESTORE ebx popl %esi CFI_ADJUST_CFA_OFFSET -4 CFI_RESTORE esi ret CFI_ENDPROC ENDPROC(csum_partial) #endif /* unsigned int csum_partial_copy_generic (const char *src, char *dst, int len, int sum, int *src_err_ptr, int *dst_err_ptr) */ /* * Copy from ds while checksumming, otherwise like csum_partial * * The macros SRC and DST specify the type of access for the instruction. * thus we can call a custom exception handler for all access types. * * FIXME: could someone double-check whether I haven't mixed up some SRC and * DST definitions? It's damn hard to trigger all cases. I hope I got * them all but there's no guarantee. */ #define SRC(y...) \ 9999: y; \ .section __ex_table, "a"; \ .long 9999b, 6001f ; \ .previous #define DST(y...) \ 9999: y; \ .section __ex_table, "a"; \ .long 9999b, 6002f ; \ .previous #ifndef CONFIG_X86_USE_PPRO_CHECKSUM #define ARGBASE 16 #define FP 12 ENTRY(csum_partial_copy_generic) CFI_STARTPROC subl $4,%esp CFI_ADJUST_CFA_OFFSET 4 pushl %edi CFI_ADJUST_CFA_OFFSET 4 CFI_REL_OFFSET edi, 0 pushl %esi CFI_ADJUST_CFA_OFFSET 4 CFI_REL_OFFSET esi, 0 pushl %ebx CFI_ADJUST_CFA_OFFSET 4 CFI_REL_OFFSET ebx, 0 movl ARGBASE+16(%esp),%eax # sum movl ARGBASE+12(%esp),%ecx # len movl ARGBASE+4(%esp),%esi # src movl ARGBASE+8(%esp),%edi # dst testl $2, %edi # Check alignment. jz 2f # Jump if alignment is ok. subl $2, %ecx # Alignment uses up two bytes. jae 1f # Jump if we had at least two bytes. addl $2, %ecx # ecx was < 2. Deal with it. jmp 4f SRC(1: movw (%esi), %bx ) addl $2, %esi DST( movw %bx, (%edi) ) addl $2, %edi addw %bx, %ax adcl $0, %eax 2: movl %ecx, FP(%esp) shrl $5, %ecx jz 2f testl %esi, %esi SRC(1: movl (%esi), %ebx ) SRC( movl 4(%esi), %edx ) adcl %ebx, %eax DST( movl %ebx, (%edi) ) adcl %edx, %eax DST( movl %edx, 4(%edi) ) SRC( movl 8(%esi), %ebx ) SRC( movl 12(%esi), %edx ) adcl %ebx, %eax DST( movl %ebx, 8(%edi) ) adcl %edx, %eax DST( movl %edx, 12(%edi) ) SRC( movl 16(%esi), %ebx ) SRC( movl 20(%esi), %edx ) adcl %ebx, %eax DST( movl %ebx, 16(%edi) ) adcl %edx, %eax DST( movl %edx, 20(%edi) ) SRC( movl 24(%esi), %ebx ) SRC( movl 28(%esi), %edx ) adcl %ebx, %eax DST( movl %ebx, 24(%edi) ) adcl %edx, %eax DST( movl %edx, 28(%edi) ) lea 32(%esi), %esi lea 32(%edi), %edi dec %ecx jne 1b adcl $0, %eax 2: movl FP(%esp), %edx movl %edx, %ecx andl $0x1c, %edx je 4f shrl $2, %edx # This clears CF SRC(3: movl (%esi), %ebx ) adcl %ebx, %eax DST( movl %ebx, (%edi) ) lea 4(%esi), %esi lea 4(%edi), %edi dec %edx jne 3b adcl $0, %eax 4: andl $3, %ecx jz 7f cmpl $2, %ecx jb 5f SRC( movw (%esi), %cx ) leal 2(%esi), %esi DST( movw %cx, (%edi) ) leal 2(%edi), %edi je 6f shll $16,%ecx SRC(5: movb (%esi), %cl ) DST( movb %cl, (%edi) ) 6: addl %ecx, %eax adcl $0, %eax 7: 5000: # Exception handler: .section .fixup, "ax" 6001: movl ARGBASE+20(%esp), %ebx # src_err_ptr movl $-EFAULT, (%ebx) # zero the complete destination - computing the rest # is too much work movl ARGBASE+8(%esp), %edi # dst movl ARGBASE+12(%esp), %ecx # len xorl %eax,%eax rep ; stosb jmp 5000b 6002: movl ARGBASE+24(%esp), %ebx # dst_err_ptr movl $-EFAULT,(%ebx) jmp 5000b .previous popl %ebx CFI_ADJUST_CFA_OFFSET -4 CFI_RESTORE ebx popl %esi CFI_ADJUST_CFA_OFFSET -4 CFI_RESTORE esi popl %edi CFI_ADJUST_CFA_OFFSET -4 CFI_RESTORE edi popl %ecx # equivalent to addl $4,%esp CFI_ADJUST_CFA_OFFSET -4 ret CFI_ENDPROC ENDPROC(csum_partial_copy_generic) #else /* Version for PentiumII/PPro */ #define ROUND1(x) \ SRC(movl x(%esi), %ebx ) ; \ addl %ebx, %eax ; \ DST(movl %ebx, x(%edi) ) ; #define ROUND(x) \ SRC(movl x(%esi), %ebx ) ; \ adcl %ebx, %eax ; \ DST(movl %ebx, x(%edi) ) ; #define ARGBASE 12 ENTRY(csum_partial_copy_generic) CFI_STARTPROC pushl %ebx CFI_ADJUST_CFA_OFFSET 4 CFI_REL_OFFSET ebx, 0 pushl %edi CFI_ADJUST_CFA_OFFSET 4 CFI_REL_OFFSET edi, 0 pushl %esi CFI_ADJUST_CFA_OFFSET 4 CFI_REL_OFFSET esi, 0 movl ARGBASE+4(%esp),%esi #src movl ARGBASE+8(%esp),%edi #dst movl ARGBASE+12(%esp),%ecx #len movl ARGBASE+16(%esp),%eax #sum # movl %ecx, %edx movl %ecx, %ebx movl %esi, %edx shrl $6, %ecx andl $0x3c, %ebx negl %ebx subl %ebx, %esi subl %ebx, %edi lea -1(%esi),%edx andl $-32,%edx lea 3f(%ebx,%ebx), %ebx testl %esi, %esi jmp *%ebx 1: addl $64,%esi addl $64,%edi SRC(movb -32(%edx),%bl) ; SRC(movb (%edx),%bl) ROUND1(-64) ROUND(-60) ROUND(-56) ROUND(-52) ROUND (-48) ROUND(-44) ROUND(-40) ROUND(-36) ROUND (-32) ROUND(-28) ROUND(-24) ROUND(-20) ROUND (-16) ROUND(-12) ROUND(-8) ROUND(-4) 3: adcl $0,%eax addl $64, %edx dec %ecx jge 1b 4: movl ARGBASE+12(%esp),%edx #len andl $3, %edx jz 7f cmpl $2, %edx jb 5f SRC( movw (%esi), %dx ) leal 2(%esi), %esi DST( movw %dx, (%edi) ) leal 2(%edi), %edi je 6f shll $16,%edx 5: SRC( movb (%esi), %dl ) DST( movb %dl, (%edi) ) 6: addl %edx, %eax adcl $0, %eax 7: .section .fixup, "ax" 6001: movl ARGBASE+20(%esp), %ebx # src_err_ptr movl $-EFAULT, (%ebx) # zero the complete destination (computing the rest is too much work) movl ARGBASE+8(%esp),%edi # dst movl ARGBASE+12(%esp),%ecx # len xorl %eax,%eax rep; stosb jmp 7b 6002: movl ARGBASE+24(%esp), %ebx # dst_err_ptr movl $-EFAULT, (%ebx) jmp 7b .previous popl %esi CFI_ADJUST_CFA_OFFSET -4 CFI_RESTORE esi popl %edi CFI_ADJUST_CFA_OFFSET -4 CFI_RESTORE edi popl %ebx CFI_ADJUST_CFA_OFFSET -4 CFI_RESTORE ebx ret CFI_ENDPROC ENDPROC(csum_partial_copy_generic) #undef ROUND #undef ROUND1 #endif tcpcrypt-0.5/src/checksum.h0000644000175200017520000000055112742073006015030 0ustar sorbosorbo#ifndef __TCPCRYPT_CHECKSUM_H__ #define __TCPCRYPT_CHECKSUM_H__ extern void checksum_packet(struct tc *tc, struct ip *ip, struct tcphdr *tcp); extern void checksum_ip(struct ip *ip); extern void checksum_tcp(struct tc *tc, struct ip *ip, struct tcphdr *tcp); extern uint16_t checksum(void *data, int len); #endif /* __TCPCRYPT_CHECKSUM_H__ */ tcpcrypt-0.5/src/test.h0000644000175200017520000000044412742073006014206 0ustar sorbosorbo#ifndef __TCPCRYPT_TEST_H__ #define __TCPCRYPT_TEST_H__ extern void test_sym_throughput(void); extern void test_mac_throughput(void); extern void test_dropper(void); extern void print_packet(struct ip *ip, struct tcphdr *tcp, int flags, struct tc *tc); #endif /* __TCPCRYPT_TEST_H__ */ tcpcrypt-0.5/src/.gitignore0000644000175200017520000000006112742073006015041 0ustar sorbosorbo*.d *.o .*.swp core tcpcryptd tcpcrypt_version.h tcpcrypt-0.5/src/freebsd.c0000644000175200017520000000362312742073006014636 0ustar sorbosorbo#include #include #include #include #include #include #include #include #include #include #include "tcpcrypt_divert.h" #include "tcpcryptd.h" static int _s; static divert_cb _cb; static int bsd_open(int port, divert_cb cb) { struct sockaddr_in s_in; memset(&s_in, 0, sizeof(s_in)); s_in.sin_family = PF_INET; s_in.sin_port = htons(port); if ((_s = socket(PF_INET, SOCK_RAW, IPPROTO_DIVERT)) == -1) err(1, "socket()"); if (bind(_s, (struct sockaddr*) &s_in, sizeof(s_in)) == -1) err(1, "bind()"); _cb = cb; xprintf(XP_DEFAULT, "Divert packets using ipfw add divert %d\n", port); raw_open(); return _s; } static void bsd_close(void) { close(_s); } static void bsd_next_packet(int s) { unsigned char buf[2048]; struct sockaddr_in s_in; socklen_t len = sizeof(s_in); int rc; int verdict; int flags = 0; rc = recvfrom(_s, buf, sizeof(buf), 0, (struct sockaddr*) &s_in, &len); if (rc == -1) err(1, "recvfrom()"); if (rc == 0) errx(1, "EOF"); if (s_in.sin_addr.s_addr != INADDR_ANY) flags |= DF_IN; verdict = _cb(buf, rc, flags); switch (verdict) { case DIVERT_MODIFY: rc = ntohs(((struct ip*) buf)->ip_len); /* fallthrough */ case DIVERT_ACCEPT: flags = sendto(_s, buf, rc, 0, (struct sockaddr*) &s_in, len); if (flags == -1) err(1, "sendto()"); if (flags != rc) errx(1, "sent %d/%d", flags, rc); break; case DIVERT_DROP: break; default: abort(); break; } } struct divert *divert_get(void) { static struct divert _divert_bsd = { .open = bsd_open, .next_packet = bsd_next_packet, .close = bsd_close, .inject = raw_inject, }; if (_conf.cf_rdr) return divert_get_pcap(); return &_divert_bsd; } tcpcrypt-0.5/src/tcpcryptd.man0000644000175200017520000000725612742073006015577 0ustar sorbosorbo.TH "tcpcryptd" "8" "" "" "" .SH NAME .PP \f[B]tcpcryptd\f[] \- Implement the tcpcrypt protocol by transparently modifying network I/O .SH SYNOPSIS .PP \f[B]tcpcryptd\f[] [\f[I]options\f[]] .SH OPTIONS .PP A list of all options is produced by: .RS .PP \f[B]tcpcryptd \-h\f[] .RE .PP Configuration of packet\-diversion rules allows the system administrator to control which TCP connections are protected by \f[B]tcpcryptd\f[]. The daemon receives packets for transformation via a "divert port", configurable with \f[B]\-p\f[] \f[I]port\f[]. .PP The daemon communicates with user programs via a "control socket", configurable with \f[B]\-u\f[] \f[I]socket_address\f[]. If \f[I]socket_address\f[] begins with "/", it is interpreted as a filesystem path pointing to a unix\-domain socket; if it is of the form ":\f[I]port\f[]", it is interpreted as the internet address localhost:\f[I]port\f[]. .PP Verbosity may be increased with multiple \f[B]\-v\f[] options. .PP A "phone\-home" test will be performed at daemon startup to confirm end\-to\-end functionality of the implementation (by default, with the authors\[aq] server), but may be redirected to another test\-server with \f[B]\-s\f[] \f[I]hostname\f[] or disabled completely with \f[B]\-f\f[]. .SH DESCRIPTION .PP The \f[B]tcpcryptd\f[] daemon transforms TCP segments via a kernel "divert" port in order to implement "opportunistic encryption" according to the \f[I]tcpcrypt\f[] protocol. .PP For a peer that signals in the connection handshake that it has support for the \f[I]tcpcrypt\f[] protocol, ephemeral keys are exchanged and used to protect the confidentiality and integrity of the connection\[aq]s application data. (The protocol protects the integrity of parts of the TCP header as well.) When a peer does not indicate support for the protocol, the daemon will pass the remainder of the connection unperturbed (and thus unprotected). .PP Application software need not be modified to take advantage of this facility, which provides confidentiality in the face of passive network attackers (those who cannot modify network data in transit). But in order to protect communication from active attackers, the application must intentionally authenticate the connection as described below. .SS Authentication .PP The \f[I]tcpcrypt\f[] protocol does not itself protect communications against "active attackers", that is, those who are able to modify network packets in transit. Such an attacker may perform a "man in the middle" attack that allows her to behave as the endpoint of the encrypted connection and thus compromise its security. .PP However, applications aware of \f[I]tcpcrypt\f[] may authenticate the connection in whatever manner they choose, aided by an identifier for the connection that is derived from the protocol and made available by \f[B]tcpcryptd\f[]: .PP A \f[I]session id\f[] is derived from the ephemeral keys used to encrypt each connection protected by \f[I]tcpcrypt\f[]. This identifier is (probabalistically) unique over all connections, is not secret, and may be extracted by applications via the user library \f[B]libtcpcrypt\f[]. Session ids for all active connections may also be listed with the netstat\-like utility \f[B]tcnetstat\f[](8). .PP Connection peers may ensure they are communicating securely with each other (enjoying confidentiality and integrity in the face of active network attackers) by confirming that the \f[I]tcpcrypt\f[] session ids derived at each end are identical. For example, they may bind the session id together with a shared secret such as a password, sign it with public keys, use a voice connection to speak a fingerprint of it, or simply record it for later confirmation. .SH SEE ALSO .PP \f[B]tcnetstat\f[](8), tcpcrypt-0.5/src/unix.c0000644000175200017520000001542312742073006014210 0ustar sorbosorbo#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define __FAVOR_BSD #include #include #include #include #include #include #include #include "tcpcrypt_divert.h" #include "tcpcrypt.h" #include "tcpcryptd.h" #include "profile.h" #include "test.h" #include "crypto.h" #include "checksum.h" extern int pcap_set_want_pktap(pcap_t *, int); extern int pcap_set_filter_info(pcap_t *, const char *, int, bpf_u_int32); /* from tcpdump */ typedef struct pktap_header { uint32_t pkt_len; /* length of pktap header */ uint32_t pkt_rectype; /* type of record */ uint32_t pkt_dlt; /* DLT type of this packet */ char pkt_ifname[24]; /* interface name */ uint32_t pkt_flags; uint32_t pkt_pfamily; /* "protocol family" */ uint32_t pkt_llhdrlen; /* link-layer header length? */ uint32_t pkt_lltrlrlen; /* link-layer trailer length? */ uint32_t pkt_pid; /* process ID */ char pkt_cmdname[20]; /* command name */ uint32_t pkt_svc_class; /* "service class" */ uint16_t pkt_iftype; /* "interface type" */ uint16_t pkt_ifunit; /* unit number of interface? */ uint32_t pkt_epid; /* "effective process ID" */ char pkt_ecmdname[20]; /* "effective command name" */ } pktap_header_t; static divert_cb _cb; static int _s; static pcap_t *_pcap; void raw_open(void) { int one = 1; _s = socket(AF_INET, SOCK_RAW, IPPROTO_TCP); if (_s == -1) err(1, "socket()"); if (setsockopt(_s, IPPROTO_IP, IP_HDRINCL, &one, sizeof(one)) == -1) err(1, "IP_HDRINCL"); } void raw_inject(void *data, int len) { int rc; struct ip *ip = data; struct tcphdr *tcp = (struct tcphdr*) ((char*) ip + (ip->ip_hl << 2)); struct sockaddr_in s_in; memset(&s_in, 0, sizeof(s_in)); s_in.sin_family = PF_INET; s_in.sin_addr = ip->ip_dst; s_in.sin_port = tcp->th_dport; #if defined(__FreeBSD__) #include #if __FreeBSD_version < 1000022 #define HO_LEN #endif #endif #ifdef __DARWIN_UNIX03 #define HO_LEN #endif #ifdef HO_LEN ip->ip_len = ntohs(ip->ip_len); ip->ip_off = ntohs(ip->ip_off); #endif rc = sendto(_s, data, len, 0, (struct sockaddr*) &s_in, sizeof(s_in)); if (rc == -1) err(1, "sendto(raw)"); if (rc != len) errx(1, "wrote %d/%d", rc, len); #ifdef HO_LEN ip->ip_len = htons(ip->ip_len); ip->ip_off = htons(ip->ip_off); #endif } static void divert_next_packet_pcap(int s) { struct pcap_pkthdr h; struct pktap_header *pktap; unsigned char *data; int len, rc; struct ip *ip; struct tcphdr *tcp; unsigned char copy[4096]; struct ether_header *eh; if ((data = (void*) pcap_next(_pcap, &h)) == NULL) errx(1, "pcap_next()"); if (h.caplen != h.len) { xprintf(XP_ALWAYS, "Short pcap %d %d\n", h.caplen, h.len); return; } len = h.caplen; pktap = (struct pktap_header *) data; if (len < sizeof(*pktap)) goto __bad_packet; if (len < pktap->pkt_len) goto __bad_packet; len -= pktap->pkt_len; /* This seems to be the redirected packet to the loopback - an extra * copy */ if (strcmp(pktap->pkt_ifname, "lo0") == 0 && pktap->pkt_pid == -1) return; /* deal with link layer */ eh = (struct ether_header*) (data + pktap->pkt_len); if (pktap->pkt_dlt == DLT_EN10MB) { if (len < pktap->pkt_llhdrlen || len < sizeof(*eh)) goto __bad_packet; if (ntohs(eh->ether_type) != ETHERTYPE_IP) return; } else if (pktap->pkt_dlt == DLT_NULL) { uint32_t *af = (uint32_t*) eh; if (len < pktap->pkt_llhdrlen || len < sizeof(*af)) goto __bad_packet; if (*af != PF_INET) return; } data = ((unsigned char*) eh) + pktap->pkt_llhdrlen; len -= pktap->pkt_llhdrlen; if (len < sizeof(*ip)) goto __bad_packet; ip = (struct ip*) data; /* Don't listen to our own injections */ if (ip->ip_tos == INJECT_TOS) return; if (ip->ip_p != IPPROTO_TCP) return; tcp = (struct tcphdr*) (((char*) ip) + (ip->ip_hl << 2)); if ((unsigned long) (tcp + 1) - (unsigned long) ip > len) goto __bad_packet; /* XXX grab from conf */ if (ntohs(tcp->th_sport) != 80 && ntohs(tcp->th_dport) != 80) return; assert(len < sizeof(copy)); memcpy(copy, data, len); data = copy; rc = _cb(data, len, pktap->pkt_flags & 1); switch (rc) { case DIVERT_DROP: case DIVERT_ACCEPT: break; case DIVERT_MODIFY: ip = (struct ip*) data; _divert->inject(data, ntohs(ip->ip_len)); break; } return; __bad_packet: xprintf(XP_ALWAYS, "Bad packet 1\n"); return; } static void divert_inject_pcap(void *data, int len) { struct ip *ip = data; uint8_t tos = ip->ip_tos; uint16_t sum = ip->ip_sum; /* annotate packets so firewall lets them through */ ip->ip_tos = INJECT_TOS; checksum_ip(ip); raw_inject(data, len); ip->ip_tos = tos; ip->ip_sum = sum; } static int divert_open_pcap(int port, divert_cb cb) { char buf[PCAP_ERRBUF_SIZE]; pcap_t *p; int fd; static const char *filter = "proto TCP and port 80"; #ifndef __DARWIN_UNIX03 struct bpf_program fp; #endif p = pcap_create("any", buf); if (!p) errx(1, "pcap_create(): %s", buf); #ifdef __DARWIN_UNIX03 pcap_set_want_pktap(p, 1); #endif pcap_set_snaplen(p, 2048); pcap_set_timeout(p, 1); pcap_activate(p); #ifdef __DARWIN_UNIX03 if (pcap_set_datalink(p, DLT_PKTAP) == -1) { pcap_perror(p, "pcap_set_datalink()"); exit(1); } /* XXX need pktap_filter_packet for this to work */ if (pcap_set_filter_info(p, filter, 0, PCAP_NETMASK_UNKNOWN) == -1) errx(1, "pcap_set_filter_info()"); #else if (pcap_compile(p, &fp, filter, 0, PCAP_NETMASK_UNKNOWN) == -1) errx(1, "pcap_compile()"); if (pcap_setfilter(p, &fp) == -1) errx(1, "pcap_setfilter()"); #endif if ((fd = pcap_get_selectable_fd(p)) == -1) errx(1, "pcap_get_selectable_fd()"); _pcap = p; _cb = cb; raw_open(); xprintf(XP_ALWAYS, "Blackhole handshake and rdr using pf\n"); return fd; } static void divert_close_pcap(void) { pcap_close(_pcap); } struct divert *divert_get_pcap(void) { static struct divert _divert_pf = { .open = divert_open_pcap, .next_packet = divert_next_packet_pcap, .close = divert_close_pcap, .inject = divert_inject_pcap, }; return &_divert_pf; } tcpcrypt-0.5/src/crypto_hmac.c0000644000175200017520000000434412742073006015535 0ustar sorbosorbo#include #include #include #include #include #include #include #include "inc.h" #include "tcpcrypt_ctl.h" #include "tcpcrypt.h" #include "tcpcryptd.h" #include "crypto.h" #include "profile.h" #define MAC_SIZE 32 struct hmac_priv { HMAC_CTX *hp_ctx; int hp_fresh; }; #if OPENSSL_VERSION_NUMBER < 0x10100000L static HMAC_CTX *HMAC_CTX_new(void) { HMAC_CTX *ctx = OPENSSL_malloc(sizeof(HMAC_CTX)); if (ctx != NULL) HMAC_CTX_init(ctx); return ctx; } static void HMAC_CTX_free(HMAC_CTX *ctx) { if (ctx != NULL) { HMAC_CTX_cleanup(ctx); OPENSSL_free(ctx); } } #endif static void hmac_destroy(struct crypt *c) { struct hmac_priv *hp = crypt_priv(c); if (!hp) errx(1, "hmac_destroy: null priv"); HMAC_CTX_free(hp->hp_ctx); free(hp); free(c); } static void hmac_mac(struct crypt *c, const struct iovec *iov, int num, void *out, int *outlen) { struct hmac_priv *hp = crypt_priv(c); void *o = out; unsigned int olen = MAC_SIZE; profile_add(3, "hmac_mac in"); if (!hp->hp_fresh) { if (HMAC_Init_ex(hp->hp_ctx, NULL, 0, NULL, NULL) != 1) errx(1, "HMAC_Init_ex"); } else hp->hp_fresh = 0; while (num--) { if (HMAC_Update(hp->hp_ctx, iov->iov_base, iov->iov_len) != 1) errx(1, "HMAC_Update"); profile_add(3, "hmac_mac update"); iov++; } if (*outlen < MAC_SIZE) o = alloca(MAC_SIZE); if (HMAC_Final(hp->hp_ctx, o, &olen) != 1) errx(1, "HMAC_Final"); profile_add(3, "hmac_mac final"); if (*outlen < MAC_SIZE) memcpy(out, o, *outlen); else *outlen = olen; } static int hmac_set_key(struct crypt *c, void *key, int len) { struct hmac_priv *hp = crypt_priv(c); if (HMAC_Init_ex(hp->hp_ctx, key, len, NULL, NULL) != 1) errx(1, "HMAC_Init_ex"); hp->hp_fresh = 1; return 0; } struct crypt *crypt_HMAC_SHA256_new(void) { struct hmac_priv *hp; struct crypt *c; c = crypt_init(sizeof(*hp)); c->c_destroy = hmac_destroy; c->c_set_key = hmac_set_key; c->c_mac = hmac_mac; hp = crypt_priv(c); hp->hp_ctx = HMAC_CTX_new(); if (!hp->hp_ctx) errx(1, "HMAC_CTX_new"); if (HMAC_Init_ex(hp->hp_ctx, "a", 1, EVP_sha256(), NULL) != 1) errx(1, "HMAC_Init_ex"); return c; } tcpcrypt-0.5/src/crypto_aes.c0000644000175200017520000001326212742073006015374 0ustar sorbosorbo#include #include #include #include #include #include #include #include #include "inc.h" #include "tcpcrypt_ctl.h" #include "tcpcrypt.h" #include "tcpcryptd.h" #include "crypto.h" #include "profile.h" #define BLEN 16 struct aes_priv { EVP_CIPHER_CTX *ap_ctx; uint8_t ap_key[1024]; int ap_key_len; }; /* XXX move CTR / ASM mode outside of AES-specific implementation */ static void do_aes(struct crypt *c, void *iv, void *data, int len, int enc) { struct aes_priv *ap = crypt_priv(c); int blen; uint8_t *blocks; uint64_t ctr; uint64_t inc = xhtobe64(1); int rem, drem; uint64_t *ctrp; int i; uint32_t *pb, *pd; uint8_t *pb2, *pd2; uint16_t* csum = data; profile_add(3, "do_aes in"); assert(len); /* figure out counter value and remainder (use of previous block) */ ctr = xbe64toh(*((uint64_t*) iv)); rem = ctr & 0xf; ctr &= ~0xf; xhtobe64(ctr); /* figure out how many blocks we need */ blen = (len & ~0xf); if (rem) blen += BLEN; drem = len & 0xf; if (drem && ((drem > (16 - rem)) || !rem)) blen += BLEN; blocks = alloca(blen); assert(blocks); profile_add(3, "do_aes setup"); /* fill blocks with counter values */ ctrp = (uint64_t*) blocks; for (i = 0; i < (blen >> 4); i++) { *ctrp++ = 0; *ctrp++ = ctr; ctr += inc; } profile_add(3, "do_aes fill blocks"); /* do AES */ i = blen; if (!EVP_EncryptUpdate(ap->ap_ctx, blocks, &i, blocks, blen)) errssl(1, "EVP_EncryptUpdate()"); assert(i == blen); profile_add(3, "do_aes AES"); /* XOR data (and checksum) */ pb = (uint32_t*) &blocks[rem]; pd = (uint32_t*) data; while (len >= 4) { *pd++ ^= *pb++; len -= 4; // tc->tc_csum += *csum++; // tc->tc_csum += *csum++; } profile_add(3, "do_aes XOR words"); /* XOR any remainder (< 4 bytes) */ i = 0; /* unsummed */ pb2 = (uint8_t*) pb; pd2 = (uint8_t*) pd; while (len > 0) { *pd2++ ^= *pb2++; len--; if (i == 1) { // tc->tc_csum += *csum++; i = 0; } else i++; } profile_add(3, "do_aes XOR remainder"); assert(pb2 - blocks <= blen); assert(blen - (pb2 - blocks) < 16); /* efficiency */ /* sum odd byte */ if (i) { i = 0; *((uint8_t*) &i) = *((uint8_t*) csum); // tc->tc_csum += i; } } static int aes_encrypt(struct crypt *c, void *iv, void *data, int len) { do_aes(c, iv, data, len, 1); return len; } static int aes_decrypt(struct crypt *c, void *iv, void *data, int len) { do_aes(c, iv, data, len, 0); return len; } static int aes_set_key(struct crypt *c, void *key, int len) { struct aes_priv *ap = crypt_priv(c); assert(len <= sizeof(ap->ap_key)); memcpy(ap->ap_key, key, len); ap->ap_key_len = len; return 0; } static void aes_ack_mac(struct crypt *c, const struct iovec *iov, int num, void *out, int *outlen) { struct aes_priv *ap = crypt_priv(c); unsigned char block[BLEN]; assert(num == 1); assert(iov->iov_len <= sizeof(block)); memset(block, 0, sizeof(block)); memcpy(block, iov->iov_base, iov->iov_len); if (!EVP_EncryptUpdate(ap->ap_ctx, out, outlen, block, sizeof(block))) errssl(1, "EVP_EncryptUpdate()"); } static void aes_destroy(struct crypt *c) { struct aes_priv *p = crypt_priv(c); EVP_CIPHER_CTX_free(p->ap_ctx); free(p); free(c); } static int aes_aead_encrypt(struct crypt *c, void *iv, void *aad, int aadlen, void *data, int dlen, void *tag) { struct aes_priv *p = crypt_priv(c); int len = aadlen; if (EVP_EncryptInit_ex(p->ap_ctx, NULL, NULL, p->ap_key, iv) != 1) errx(1, "EVP_EncryptInit_ex()"); if (EVP_EncryptUpdate(p->ap_ctx, NULL, &len, aad, aadlen) != 1) errx(1, "EVP_EncryptUpdate()"); assert(len == aadlen); len = dlen; if (EVP_EncryptUpdate(p->ap_ctx, data, &len, data, dlen) != 1) errx(1, "EVP_EncryptUpdate()"); assert(len == dlen); len = 0; if (EVP_EncryptFinal_ex(p->ap_ctx, data + dlen, &len) != 1) errx(1, "EVP_EncryptFinal_ex()"); assert(len == 0); if (EVP_CIPHER_CTX_ctrl(p->ap_ctx, EVP_CTRL_GCM_GET_TAG, 16, tag) != 1) errx(1, "EVP_CTRL_GCM_GET_TAG"); return dlen; } static int aes_aead_decrypt(struct crypt *c, void *iv, void *aad, int aadlen, void *data, int dlen, void *tag) { struct aes_priv *p = crypt_priv(c); int len = aadlen; if (EVP_DecryptInit_ex(p->ap_ctx, NULL, NULL, p->ap_key, iv) != 1) errx(1, "EVP_EncryptInit_ex()"); if (EVP_DecryptUpdate(p->ap_ctx, NULL, &len, aad, aadlen) != 1) errx(1, "EVP_EncryptUpdate()"); assert(len == aadlen); len = dlen; if (EVP_DecryptUpdate(p->ap_ctx, data, &len, data, dlen) != 1) errx(1, "EVP_EncryptUpdate()"); assert(len == dlen); if (EVP_CIPHER_CTX_ctrl(p->ap_ctx, EVP_CTRL_GCM_SET_TAG, 16, tag) != 1) errx(1, "EVP_CTRL_GCM_GET_TAG"); len = 0; if (EVP_DecryptFinal_ex(p->ap_ctx, data + dlen, &len) <= 0) return -1; return dlen; } static struct crypt *crypt_AES_new(const EVP_CIPHER *evp) { struct aes_priv *p; struct crypt *c; c = crypt_init(sizeof(*p)); c->c_destroy = aes_destroy; c->c_set_key = aes_set_key; c->c_mac = aes_ack_mac; c->c_encrypt = aes_encrypt; c->c_decrypt = aes_decrypt; c->c_aead_encrypt = aes_aead_encrypt; c->c_aead_decrypt = aes_aead_decrypt; p = crypt_priv(c); p->ap_ctx = EVP_CIPHER_CTX_new(); if (!p->ap_ctx) errx(1, "EVP_CIPHER_CTX_new()"); if (EVP_EncryptInit_ex(p->ap_ctx, evp, NULL, NULL, NULL) != 1) errx(1, "EVP_EncryptInit_ex()"); if (EVP_CIPHER_CTX_ctrl(p->ap_ctx, EVP_CTRL_GCM_SET_IVLEN, 8, NULL) != 1) { errx(1, "EVP_CTRL_GCM_SET_IVLEN"); } return c; } struct crypt *crypt_AES128_new(void) { return crypt_AES_new(EVP_aes_128_gcm()); } struct crypt *crypt_AES256_new(void) { return crypt_AES_new(EVP_aes_256_gcm()); } tcpcrypt-0.5/src/mingw.c0000644000175200017520000000430412742073006014342 0ustar sorbosorbo#include #include #include #include #include #include #include "inc.h" #include "tcpcrypt_divert.h" #include "tcpcryptd.h" #include #define MAC_SIZE 14 static HANDLE _h; static WINAPI DWORD reader(void *arg) { int s; struct sockaddr_in s_in; UINT r; unsigned char buf[2048]; // XXX: the DIVERT_ADDRESS is stored in the ethhdr. PDIVERT_ADDRESS addr = (PDIVERT_ADDRESS)buf; if ((s = socket(PF_INET, SOCK_DGRAM, 0)) == -1) err(1, "socket()"); memset(&s_in, 0, sizeof(s_in)); s_in.sin_family = PF_INET; s_in.sin_addr.s_addr = inet_addr("127.0.0.1"); s_in.sin_port = htons(619); while (1) { memset(buf, 0, MAC_SIZE); if (!DivertRecv(_h, buf + MAC_SIZE, sizeof(buf) - MAC_SIZE, addr, &r)) err(1, "DivertRead()"); if (sendto(s, (void*) buf, r + MAC_SIZE, 0, (struct sockaddr*) &s_in, sizeof(s_in)) != r + MAC_SIZE) err(1, "sendto()"); } return 0; } int do_divert_open(void) { // XXX i know this is lame struct sockaddr_in s_in; int s; s = socket(PF_INET, SOCK_DGRAM, 0); if (s == -1) err(1, "socket()"); memset(&s_in, 0, sizeof(s_in)); s_in.sin_family = PF_INET; s_in.sin_addr.s_addr = inet_addr("127.0.0.1"); s_in.sin_port = htons(619); if (bind(s, (struct sockaddr*) &s_in, sizeof(s_in)) == -1) err(1, "bind(divert)"); // XXX: Currently TCP port 80 only... _h = DivertOpen( "ip and " "((outbound and tcp.DstPort == 80) or " " (inbound and tcp.SrcPort == 80) or " " (outbound and tcp.SrcPort == 65530)" ") and " "ip.DstAddr != 127.0.0.1 and " "ip.SrcAddr != 127.0.0.1", WINDIVERT_LAYER_NETWORK, 0, 0); if (_h == INVALID_HANDLE_VALUE) err(1, "DivertOpen()"); if (!CreateThread(NULL, 0, reader, NULL, 0, NULL)) err(1, "CreateThread()"); return s; } void do_divert_close(int s) { DivertClose(_h); } int do_divert_read(int s, void *buf, int len) { return recv(s, buf, len, 0); } int do_divert_write(int s, void *buf, int len) { UINT r; PDIVERT_ADDRESS addr = (PDIVERT_ADDRESS)buf; if (len <= MAC_SIZE) return -1; buf += MAC_SIZE; len -= MAC_SIZE; if (!DivertSend(_h, buf, len, addr, &r)) return -1; return r + MAC_SIZE; } tcpcrypt-0.5/src/tcpcrypt_divert.h0000644000175200017520000000144612742073006016457 0ustar sorbosorbo#ifndef __TCPCRYPT_DIVERT_H__ #define __TCPCRYPT_DIVERT_H__ #define INJECT_TOS 0x22 enum { DIVERT_ACCEPT = 0, DIVERT_DROP, DIVERT_MODIFY, }; #define DF_IN 0x1 typedef int (*divert_cb)(void *data, int len, int flags); struct divert { int (*open)(int port, divert_cb cb); void (*next_packet)(int s); void (*close)(void); void (*inject)(void *data, int len); void (*cycle)(void); int (*orig_dest)(struct sockaddr_in *out, struct ip *ip, int *flags); }; extern struct divert *divert_get(void); extern struct divert *_divert; extern void raw_inject(void *data, int len); extern void raw_open(void); extern struct divert *divert_get_pcap(void); extern void win_dont_rdr(int s); extern uint32_t win_local_ip(void); extern void win_handshake_complete(int s); #endif /* __TCPCRYPT_DIVERT_H__ */ tcpcrypt-0.5/src/pf.conf0000644000175200017520000000251512742073006014333 0ustar sorbosorbopr=80 rdr log proto tcp from any to any port $pr tagged "tcpcrypt" -> 127.0.0.1 port 65530 rdr log proto tcp from any to any port $pr tagged "tcpcryptin" -> 127.0.0.1 port 65530 # Blackhole all SYNs so we can control them. block in log on en0 proto tcp from any to any port $pr flags S/SA no state pass out log on en0 route-to lo0 proto tcp from any port 65530 to any flags SA/SA no state # Redirect incoming traffic pass in log on en0 route-to en0 proto tcp from any to any port $pr flags A/SA tag "tcpcryptin" no state block in log on en1 proto tcp from any to any port $pr flags S/SA no state pass out log on en1 route-to lo0 proto tcp from any port 65530 to any flags SA/SA no state pass in log on en1 route-to en1 proto tcp from any to any port $pr flags A/SA tag "tcpcryptin" no state # Redirect outgoing traffic pass out log route-to lo0 proto tcp to any port $pr user != tcpcryptd tag "tcpcrypt" # Delay redirect SYN so we can accept connection only if peer is listening pass in quick log on lo0 proto tcp to any port 65530 tos 0x22 no state block in log on lo0 proto tcp to any port 65530 ! tagged "tcpcryptin" # blackhole SYN and ACK in 3-way handshake, but let the ones we generate through pass out quick log proto tcp to any port $pr tos 0x22 no state pass out log route-to lo0 proto tcp to any port $pr tos 0x4 user = tcpcryptd no state tcpcrypt-0.5/src/test.c0000644000175200017520000001060012742073006014174 0ustar sorbosorbo#include #include #include #include #include #include "inc.h" #include "tcpcrypt_ctl.h" #include "tcpcrypt.h" #include "tcpcryptd.h" #include "crypto.h" #include "profile.h" #include "tcpcrypt_divert.h" #include "test.h" static struct state { int s_dlen; int s_drop_packet_num; int s_drop_times; int s_drop_hook; } _state; static struct crypt *setup_cipher(int type, int id, int mac) { struct cipher_list *c; int klen = 20; void *key; struct crypt_sym *cs; struct crypt *ci; c = crypt_find_cipher(type, id); if (!c) errx(1, "Can't find cipher %d (type %d)", id, type); cs = crypt_new(c->c_ctr); if (mac) ci = cs->cs_mac; else ci = cs->cs_cipher; key = alloca(klen); assert(key); memset(key, 0, klen); crypt_set_key(ci, key, klen); /* XXX cs is leaked */ return ci; } static unsigned int cipher_throughput(float sample, unsigned int avg) { unsigned int ops; unsigned int bits; ops = (unsigned int) (sample * 1000.0 * 1000.0); bits = (unsigned int) (sample * (float) _state.s_dlen * 8.0); printf("%u ops / sec (%u Mbit/s) [avg %u]\n", ops, bits, avg); return ops; } void test_sym_throughput(void) { struct crypt *c; int id = TC_AES128_GCM; uint64_t iv = 0; int dlen = 1420; void *data; c = setup_cipher(TYPE_SYM, id, 0); data = alloca(dlen); _state.s_dlen = dlen; memset(data, 0, dlen); printf("Encrypting %d bytes of data\n", dlen); speed_start(cipher_throughput); while (1) { crypt_encrypt(c, &iv, data, dlen); speed_add(1); } crypt_destroy(c); } static int get_test_param(int idx, int def) { char *p = test_param(idx); if (!p) return def; return atoi(p); } void test_mac_throughput(void) { struct crypt *c; int id = TC_HMAC_SHA1_128; int len = get_test_param(0, 8); int num = get_test_param(1, 1); struct iovec *iov; int i; unsigned char out[1024]; int outlen = sizeof(out); c = setup_cipher(TYPE_SYM, id, 1); iov = alloca(sizeof(*iov) * num); for (i = 0; i < num; i++) { iov[i].iov_len = len; iov[i].iov_base = alloca(iov[i].iov_len); memset(iov[i].iov_base, 0, iov[i].iov_len); } printf("MACing %d iovecs of %d bytes each\n", num, len); speed_start(cipher_throughput); while (1) { crypt_mac(c, iov, num, out, &outlen); speed_add(1); } crypt_destroy(c); } void print_packet(struct ip *ip, struct tcphdr *tcp, int flags, struct tc *tc) { char src[16]; char flagz[16]; int i = 0; int level = XP_NOISY; if (_conf.cf_verbose < level) return; if (tcp->th_flags & TH_SYN) flagz[i++] = 'S'; if (tcp->th_flags & TH_ACK) flagz[i++] = 'A'; if (tcp->th_flags & TH_RST) flagz[i++] = 'R'; if (tcp->th_flags & TH_FIN) flagz[i++] = 'F'; flagz[i] = 0; strcpy(src, inet_ntoa(ip->ip_src)); xprintf(level, "%s:%d->%s:%d %d %s [%s] tc %p\n", src, ntohs(tcp->th_sport), inet_ntoa(ip->ip_dst), ntohs(tcp->th_dport), ntohs(ip->ip_len), flagz, flags & DF_IN ? "in" : "out", tc); } static int dropper(int rc, void *packet, int len, int flags) { if (_state.s_drop_packet_num != 1) { _state.s_drop_packet_num--; return rc; } if (_state.s_drop_times != 0) { struct ip *ip = packet; struct tcphdr *tcp; tcp = (struct tcphdr *) ((unsigned long) ip + (ip->ip_hl << 2)); xprintf(XP_NOISY, "Dropping: "); print_packet(ip, tcp, flags, NULL); _state.s_drop_packet_num--; return DIVERT_DROP; } return rc; } static int dropper_pre(int rc, void *packet, int len, int flags) { if (flags & DF_IN) return dropper(rc, packet, len, flags); return rc; } static int dropper_post(int rc, void *packet, int len, int flags) { if (flags & DF_IN) return rc; return dropper(rc, packet, len, flags); } void test_dropper(void) { _state.s_drop_packet_num = get_test_param(0, 0); _state.s_drop_times = get_test_param(1, 1); _state.s_drop_hook = get_test_param(2, -1); if (_state.s_drop_packet_num <= 0) errx(1, "Need a packet number parameter. 1 is first."); switch (_state.s_drop_hook) { case -1: set_packet_hook(0, dropper_pre); set_packet_hook(1, dropper_post); break; default: set_packet_hook(_state.s_drop_hook, dropper); break; } tcpcryptd(); } tcpcrypt-0.5/src/crypto.h0000644000175200017520000000730212742073006014547 0ustar sorbosorbo#ifndef __TCPCRYPT_CRYPTO_H__ #define __TCPCRYPT_CRYPTO_H__ typedef void *(*crypt_ctr)(void); enum { TYPE_PKEY = 0, TYPE_SYM, }; struct cipher_list { uint8_t c_id; int c_type; crypt_ctr c_ctr; struct cipher_list *c_next; }; extern struct cipher_list *crypt_cipher_list(void); /* low-level interface */ struct crypt { void *c_priv; void (*c_destroy)(struct crypt *c); int (*c_set_key)(struct crypt *c, void *key, int len); int (*c_get_key)(struct crypt *c, void **out); void (*c_mac)(struct crypt *, const struct iovec *iov, int num, void *out, int *outlen); void (*c_extract)(struct crypt *c, struct iovec *iov, int num, void *out, int *outlen); void (*c_expand)(struct crypt *c, void *tag, int taglen, void *out, int outlen); int (*c_encrypt)(struct crypt *c, void *iv, void *data, int len); int (*c_decrypt)(struct crypt *c, void *iv, void *data, int len); int (*c_aead_encrypt)(struct crypt *c, void *iv, void *aad, int aadlen, void *data, int dlen, void *tag); int (*c_aead_decrypt)(struct crypt *c, void *iv, void *aad, int aadlen, void *data, int dlen, void *tag); int (*c_compute_key)(struct crypt *c, void *out); }; extern struct crypt *crypt_HMAC_SHA256_new(void); extern struct crypt *crypt_HKDF_SHA256_new(void); extern struct crypt *crypt_AES128_new(void); extern struct crypt *crypt_AES256_new(void); extern struct crypt *crypt_RSA_new(void); extern struct crypt *crypt_ECDHE256_new(void); extern struct crypt *crypt_ECDHE521_new(void); extern struct crypt *crypt_init(int sz); extern void crypt_register(int type, uint8_t id, crypt_ctr ctr); extern struct cipher_list *crypt_find_cipher(int type, unsigned int id); static inline void crypt_destroy(struct crypt *c) { c->c_destroy(c); } static inline int crypt_set_key(struct crypt *c, void *key, int len) { return c->c_set_key(c, key, len); } static inline int crypt_get_key(struct crypt *c, void **out) { return c->c_get_key(c, out); } static inline void crypt_mac(struct crypt *c, struct iovec *iov, int num, void *out, int *outlen) { c->c_mac(c, iov, num, out, outlen); } static inline void *crypt_priv(struct crypt *c) { return c->c_priv; } static inline void crypt_extract(struct crypt *c, struct iovec *iov, int num, void *out, int *outlen) { c->c_extract(c, iov, num, out, outlen); } static inline void crypt_expand(struct crypt *c, void *tag, int taglen, void *out, int outlen) { c->c_expand(c, tag, taglen, out, outlen); } static inline int crypt_encrypt(struct crypt *c, void *iv, void *data, int len) { return c->c_encrypt(c, iv, data, len); } static inline int crypt_decrypt(struct crypt *c, void *iv, void *data, int len) { return c->c_decrypt(c, iv, data, len); } static inline int crypt_compute_key(struct crypt *c, void *out) { return c->c_compute_key(c, out); } static inline void *crypt_new(crypt_ctr ctr) { crypt_ctr *r = ctr(); *r = ctr; return r; } /* pub crypto */ struct crypt_pub { crypt_ctr cp_ctr; /* must be first */ struct crypt *cp_hkdf; struct crypt *cp_pub; int cp_n_c; int cp_n_s; int cp_k_len; int cp_min_key; int cp_max_key; int cp_cipher_len; int cp_key_agreement; }; static inline void crypt_pub_destroy(struct crypt_pub *cp) { crypt_destroy(cp->cp_hkdf); crypt_destroy(cp->cp_pub); free(cp); } /* sym crypto */ struct crypt_sym { crypt_ctr cs_ctr; /* must be first */ struct crypt *cs_cipher; struct crypt *cs_mac; struct crypt *cs_ack_mac; int cs_mac_len; int cs_key_len; int cs_iv_len; }; static inline void crypt_sym_destroy(struct crypt_sym *cs) { crypt_destroy(cs->cs_cipher); crypt_destroy(cs->cs_mac); crypt_destroy(cs->cs_ack_mac); free(cs); } #endif /* __TCPCRYPT_CRYPTO_H__ */ tcpcrypt-0.5/src/tcpcrypt_ctl.h0000644000175200017520000000110012742073006015727 0ustar sorbosorbo#ifndef __TCPCRYPT_TCPCRYPT_CTL_H__ #define __TCPCRYPT_TCPCRYPT_CTL_H__ #include "inc.h" #define TCC_IN 0x00000001 #define TCC_SET 0x00000002 struct tc_netstat { struct in_addr tn_sip; uint16_t tn_sport; struct in_addr tn_dip; uint16_t tn_dport; uint16_t tn_len; uint8_t tn_sid[0]; }; struct tcpcrypt_ctl { uint32_t tcc_seq; struct in_addr tcc_src; uint16_t tcc_sport; struct in_addr tcc_dst; uint16_t tcc_dport; uint32_t tcc_flags; uint32_t tcc_err; uint32_t tcc_opt; uint32_t tcc_dlen; uint8_t tcc_data[0]; }; #endif /* __TCPCRYPT_TCPCRYPT_CTL_H__ */ tcpcrypt-0.5/src/rdr.c0000644000175200017520000004417412742073006014021 0ustar sorbosorbo/* * General strategy: * * a) Use firewall redirect to change TCP payload - like a transparent proxy. * * b) Use firewall to edit SYN packets. Redirect them to a blackhole, snoop * them, and reinject a modified version * * c) Delay SYN/SYN-ACKs of firewall redirect so that connection doesn't succeed * if other end sends us RST. (Instead of us accepting and closing the * connection.) * */ #include #include #include #include #include #include #include #include #include #include #include #include #include #define REDIRECT_PORT 65530 extern int pcap_set_want_pktap(pcap_t *, int); struct sock; typedef void (*sock_handler)(struct sock *s); struct tcp_ph { struct in_addr ph_src; struct in_addr ph_dst; uint8_t ph_zero; uint8_t ph_proto; uint16_t ph_len; }; /* from tcpdump */ typedef struct pktap_header { uint32_t pkt_len; /* length of pktap header */ uint32_t pkt_rectype; /* type of record */ uint32_t pkt_dlt; /* DLT type of this packet */ char pkt_ifname[24]; /* interface name */ uint32_t pkt_flags; uint32_t pkt_pfamily; /* "protocol family" */ uint32_t pkt_llhdrlen; /* link-layer header length? */ uint32_t pkt_lltrlrlen; /* link-layer trailer length? */ uint32_t pkt_pid; /* process ID */ char pkt_cmdname[20]; /* command name */ uint32_t pkt_svc_class; /* "service class" */ uint16_t pkt_iftype; /* "interface type" */ uint16_t pkt_ifunit; /* unit number of interface? */ uint32_t pkt_epid; /* "effective process ID" */ char pkt_ecmdname[20]; /* "effective command name" */ } pktap_header_t; enum { STATE_IDLE = 0, STATE_CONNECT, STATE_READY, STATE_DEAD }; static struct sock { int s; sock_handler handler; struct sockaddr_in from; struct sockaddr_in to; int state; struct sock *peer; pcap_t *pcap; unsigned char buf[2048]; int len; int local; int need_eno_ack; struct sock *next; } socks_; static int outs_; static pcap_t *outp_; static void *xmalloc(size_t len) { void *x = malloc(len); if (!x) err(1, "malloc()"); memset(x, 0, len); return x; } static struct sock *add_sock(int s, sock_handler handler) { struct sock *sock = xmalloc(sizeof(*sock)); sock->s = s; sock->handler = handler; sock->next = socks_.next; sock->state = STATE_READY; socks_.next = sock; return sock; } static void kill_sock(struct sock *sock) { if (sock->peer) { assert(sock->peer->peer == sock); sock->peer->peer = NULL; kill_sock(sock->peer); } close(sock->s); sock->state = STATE_DEAD; } static void proxy_connection(struct sock *sock) { unsigned char buf[4096]; int rc; if ((rc = read(sock->s, buf, sizeof(buf))) <= 0) { kill_sock(sock); return; } printf("PROXY read %d\n", rc); /* XXX assuming non-blocking write */ if (write(sock->peer->s, buf, rc) != rc) { kill_sock(sock); return; } } static void local_handler(struct sock *sock) { proxy_connection(sock); } #if 0 static int get_dest_pf(struct sock *sock) { char buf[1024]; FILE *f; int rc; char *p; snprintf(buf, sizeof(buf), "sudo pfctl -ss 2> /dev/null" "| grep ESTABLISHED:ESTABLISHED" "| grep '<- %s:%d'" "| awk -F '<- ' '{print $2}'", inet_ntoa(sock->from.sin_addr), ntohs(sock->from.sin_port)); if (!(f = popen(buf, "r"))) err(1, "popen()"); rc = fread(buf, 1, sizeof(buf) - 1, f); pclose(f); if (rc <= 1) return -1; buf[rc - 1] = 0; if (!(p = strchr(buf, ':'))) return -1; *p++ = 0; if (!inet_aton(buf, &sock->to.sin_addr)) return -1; if ((sock->to.sin_port = htons(atoi(p))) == 0) return -1; sock->to.sin_family = PF_INET; return 0; } #endif struct tcphdr *get_tcp(struct ip *ip) { return (struct tcphdr*) ((unsigned long) ip + ip->ip_hl * 4); } static char *ip_tuple(struct ip *ip) { static char crap[1024]; char ipaddr[17]; struct tcphdr *tcp = get_tcp(ip); snprintf(ipaddr, sizeof(ipaddr), "%s", inet_ntoa(ip->ip_src)); snprintf(crap, sizeof(crap), "%s:%d -> %s:%d", ipaddr, ntohs(tcp->th_sport), inet_ntoa(ip->ip_dst), ntohs(tcp->th_dport)); return crap; } static void inject(struct ip *ip, struct tcphdr *tcp) { int rc; int len = ntohs(ip->ip_len); struct sockaddr_in s_in; ip->ip_len = ntohs(ip->ip_len); ip->ip_off = ntohs(ip->ip_off); ip->ip_tos = 0x22; ip->ip_id = htons(666); memset(&s_in, 0, sizeof(s_in)); s_in.sin_family = PF_INET; s_in.sin_port = ntohs(tcp->th_dport); s_in.sin_addr.s_addr = ip->ip_dst.s_addr; printf("INJECTING %s\n", ip_tuple(ip)); rc = sendto(outs_, ip, len, 0, (struct sockaddr*) &s_in, sizeof(s_in)); if (rc != len) err(1, "sendto()"); } static void inject_ip(struct ip *ip) { return inject(ip, get_tcp(ip)); } static unsigned short in_cksum(struct tcp_ph *ph, unsigned short *ptr, int nbytes, int s) { register long sum; u_short oddbyte; register u_short answer; sum = s; if (ph) { unsigned short *p = (unsigned short*) ph; int i; for (i = 0; i < sizeof(*ph) >> 1; i++) sum += *p++; } while (nbytes > 1) { sum += *ptr++; nbytes -= 2; } if (nbytes == 1) { oddbyte = 0; *((u_char *) & oddbyte) = *(u_char *) ptr; sum += oddbyte; } sum = (sum >> 16) + (sum & 0xffff); sum += (sum >> 16); answer = ~sum; return (answer); } static void checksum_ip(struct ip *ip) { ip->ip_sum = 0; ip->ip_sum = in_cksum(NULL, (unsigned short*) ip, sizeof(*ip), 0); } static void checksum_tcp(struct ip *ip, struct tcphdr *tcp, int sum) { struct tcp_ph ph; int len; len = ntohs(ip->ip_len) - (ip->ip_hl << 2); ph.ph_src = ip->ip_src; ph.ph_dst = ip->ip_dst; ph.ph_zero = 0; ph.ph_proto = ip->ip_p; ph.ph_len = htons(len); if (sum != 0) len = tcp->th_off << 2; tcp->th_sum = 0; tcp->th_sum = in_cksum(&ph, (unsigned short*) tcp, len, sum); } static void checksum_packet(struct ip *ip) { checksum_ip(ip); checksum_tcp(ip, get_tcp(ip), 0); } static void send_rst(struct sock *sock) { struct ip *ip = (struct ip*) sock->buf; struct tcphdr *tcp = (struct tcphdr*) get_tcp(ip); struct in_addr addr; int port; addr.s_addr = ip->ip_src.s_addr; ip->ip_src.s_addr = ip->ip_dst.s_addr; ip->ip_dst.s_addr = addr.s_addr; port = tcp->th_sport; tcp->th_sport = tcp->th_dport; tcp->th_dport = port; tcp->th_flags = TH_RST | TH_ACK; tcp->th_ack = htonl(ntohl(tcp->th_seq) + 1); tcp->th_seq = htonl(0); checksum_ip(ip); checksum_tcp(ip, tcp, 0); printf("SENDING RST\n"); inject(ip, tcp); } static void check_connect(struct sock *sock) { int e; socklen_t len = sizeof(e); int tos = 0; if (getsockopt(sock->s, SOL_SOCKET, SO_ERROR, &e, &len) == -1) { perror("getsockopt()"); kill_sock(sock); return; } if (e != 0) { if (e == ECONNREFUSED) send_rst(sock); kill_sock(sock); return; } /* XXX we should set this only when we receive traffic from other end. * Else our pakcet might have been lost and retransmitted without ENO */ if (setsockopt(sock->s, IPPROTO_IP, IP_TOS, &tos, sizeof(tos)) == -1) { perror("getsockopt(IP_TOS)"); kill_sock(sock); return; } printf("I CONNECTED BRO\n"); sock->state = STATE_IDLE; /* inject the local SYN so that user connects to proxy */ if (sock->local) { /* we need to manually redirect... */ struct ip *ip = (struct ip*) sock->buf; struct tcphdr *tcp = get_tcp(ip); ip->ip_dst.s_addr = inet_addr("127.0.0.1"); tcp->th_dport = htons(REDIRECT_PORT); checksum_packet(ip); } inject_ip((struct ip*) sock->buf); } static void remote_handler(struct sock *sock) { if (sock->state == STATE_CONNECT) { check_connect(sock); return; } proxy_connection(sock); } static void print_sock(struct sock *s) { printf("SOCK %s:%d", inet_ntoa(s->from.sin_addr), ntohs(s->from.sin_port)); printf(" -> %s:%d sock %d state %d local %d\n", inet_ntoa(s->to.sin_addr), ntohs(s->to.sin_port), s->s, s->state, s->local); } static void dump_socks(void) { struct sock *s = &socks_; printf("Starting dump socks\n"); while ((s = s->next)) print_sock(s); printf("====================\n"); } static void redirect_listen_handler(struct sock *sock) { struct sock *s = &socks_; struct sockaddr_in s_in; socklen_t len = sizeof(s_in); /* Accept redirected connection */ int dude = accept(sock->s, (struct sockaddr*) &s_in, &len); printf("REDIRECT connection from %s:%d\n", inet_ntoa(s_in.sin_addr), ntohs(s_in.sin_port)); dump_socks(); if (dude == -1) { printf("accept() failed\n"); return; } /* try to find him */ while ((s = s->next)) { if (s->peer && s->peer->from.sin_port == s_in.sin_port && s->peer->from.sin_addr.s_addr == s_in.sin_addr.s_addr) break; } if (!s) { printf("Couldn't find dude\n"); close(dude); return; } s = s->peer; /* setup socket */ s->s = dude; s->handler = local_handler; s->state = STATE_READY; if (s->peer->state == STATE_IDLE) s->peer->state = STATE_READY; printf("Connection %s:%d", inet_ntoa(s->from.sin_addr), ntohs(s->from.sin_port)); printf(" -> %s:%d\n", inet_ntoa(s->to.sin_addr), ntohs(s->to.sin_port)); } #if 0 static void hexdump(void *x, int len) { unsigned char *a = x; while (len--) printf("%.2x ", *a++); printf("\n"); } #endif static void add_connection(struct ip *ip, struct tcphdr *tcp, int local) { struct sockaddr_in from, to; int s, flags, rc; struct sock *sock, *peer; socklen_t len; int tos = IPTOS_RELIABILITY; /* figure out where connection is going to */ memset(&to, 0, sizeof(to)); memset(&from, 0, sizeof(from)); from.sin_family = to.sin_family = PF_INET; from.sin_port = tcp->th_sport; from.sin_addr.s_addr = ip->ip_src.s_addr; to.sin_port = tcp->th_dport; to.sin_addr.s_addr = ip->ip_dst.s_addr; /* connect to destination */ if ((s = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP)) == -1) err(1, "socket()"); sock = add_sock(s, remote_handler); sock->state = STATE_CONNECT; memcpy(&sock->to, &to, sizeof(to)); /* XXX bypass firewall */ if (local) { sock->to.sin_addr.s_addr = inet_addr("127.0.0.1"); sock->local = 1; } if ((flags = fcntl(s, F_GETFL)) == -1) err(1, "fcntl()"); flags |= O_NONBLOCK; if (fcntl(s, F_SETFL, flags) == -1) err(1, "fcntl()"); if (setsockopt(s, IPPROTO_IP, IP_TOS, &tos, sizeof(tos)) == -1) err(1, "setsockopt()"); sock->need_eno_ack = 1; rc = connect(s, (struct sockaddr*) &sock->to, sizeof(sock->to)); if (rc == -1 && errno != EINPROGRESS) kill_sock(sock); len = sizeof(sock->from); if (getsockname(s, (struct sockaddr*) &sock->from, &len) == -1) err(1, "getsockname()"); printf("Adding a connection %s:%d", inet_ntoa(sock->from.sin_addr), ntohs(sock->from.sin_port)); printf("-> %s:%d\n", inet_ntoa(sock->to.sin_addr), ntohs(sock->to.sin_port)); /* save SYN to replay once connection is successful */ len = ntohs(ip->ip_len); assert(len < sizeof(sock->buf)); memcpy(sock->buf, ip, len); sock->len = len; /* create placeholder peer */ peer = xmalloc(sizeof(*peer)); memcpy(&peer->to, &to, sizeof(peer->to)); memcpy(&peer->from, &from, sizeof(peer->from)); peer->s = -1; peer->state = STATE_IDLE; peer->local = sock->local; peer->peer = sock; sock->peer = peer; peer->next = socks_.next; socks_.next = peer; } static void modify_syn(struct sock *s, struct ip *ip, struct tcphdr *tcp) { /* Already done */ if (ip->ip_tos == 0x22) return; printf("MODIFY SYN\n"); inject(ip, tcp); } static void send_syn_ack(struct sock *s, struct ip *ip, struct tcphdr *tcp) { unsigned char buf[2049]; int len = ntohs(ip->ip_len); printf("Sending SYN ACK\n"); assert(len < sizeof(buf)); memcpy(buf, ip, len); ip = (struct ip *) buf; tcp = get_tcp(ip); ip->ip_src.s_addr = s->to.sin_addr.s_addr; tcp->th_sport = s->to.sin_port; checksum_packet(ip); inject_ip(ip); } static void handle_syn_ack(struct ip *ip, struct tcphdr *tcp) { struct sock *s = &socks_; /* need to add eno option to outgoing syn ack */ while ((s = s->next)) { if (ntohs(tcp->th_sport) == REDIRECT_PORT && ip->ip_src.s_addr == inet_addr("127.0.0.1") && ip->ip_dst.s_addr == s->from.sin_addr.s_addr && tcp->th_dport == s->from.sin_port) { send_syn_ack(s, ip, tcp); return; } } } static struct sock *get_sock(struct ip *ip, struct tcphdr *tcp) { struct sock *s = &socks_; while ((s = s->next)) { if (s->to.sin_addr.s_addr == ip->ip_dst.s_addr && s->to.sin_port == tcp->th_dport && s->from.sin_addr.s_addr == ip->ip_src.s_addr && s->from.sin_port == tcp->th_sport) return s; } return NULL; } static void handle_syn(struct ip *ip, struct tcphdr *tcp) { struct sock *s; /* our injection */ if (ip->ip_tos == 0x22) return; /* our own connections */ if (ip->ip_dst.s_addr == inet_addr("127.0.0.1") && ip->ip_dst.s_addr == ip->ip_src.s_addr) return; /* Inbound - check if: * * 1. We're getting a retransmitted SYN and we're already connecting. * * 2. We sent out the SYN (proxy connection). * */ if ((s = get_sock(ip, tcp))) { /* SYN we generated that we gotta modify */ if (s->state == STATE_CONNECT) modify_syn(s, ip, tcp); /* Kernel sending more SYNs on ongoing connection */ return; } /* must be new connection */ int local = 0; /* XXX */ if (ip->ip_dst.s_addr == inet_addr("172.16.9.1")) local = 1; else local = 0; add_connection(ip, tcp, local); dump_socks(); } static void handle_ack(struct ip *ip, struct tcphdr *tcp) { struct sock *s = get_sock(ip, tcp); if (!s || !s->need_eno_ack) return; printf("HANDLE ACK\n"); /* XXX delay this until we know that ACK made it */ s->need_eno_ack = 0; inject_ip(ip); } static void pcap_in_handler(struct sock *pcap) { struct pcap_pkthdr h; struct pktap_header *pktap; unsigned char *data; int len; int ll; struct ip *ip; struct tcphdr *tcp; if ((data = (void*) pcap_next(pcap->pcap, &h)) == NULL) errx(1, "pcap_next()"); if (h.caplen != h.len) { printf("Short pcap %d %d\n", h.caplen, h.len); return; } len = h.caplen; pktap = (struct pktap_header *) data; if (len < sizeof(*pktap)) goto __bad_packet; ll = pktap->pkt_len + pktap->pkt_llhdrlen; if (len < ll) goto __bad_packet; /* This seems to be the redirected packet to the loopback - an extra * copy */ if (strcmp(pktap->pkt_ifname, "lo0") == 0 && pktap->pkt_pid == -1) return; data += ll; len -= ll; // hexdump(data, len); /* find SYN */ ip = (struct ip*) data; if (len < sizeof(*ip)) goto __bad_packet; if (ip->ip_p != IPPROTO_TCP) return; tcp = (struct tcphdr*) (((unsigned long) ip) + ip->ip_hl * 4); if (len < (unsigned long) (tcp + 1) - (unsigned long) ip) goto __bad_packet; if (tcp->th_flags & TH_SYN) { printf("PCAP packet %s:%d", inet_ntoa(ip->ip_src), ntohs(tcp->th_sport)); printf(" -> %s:%d [%s%s]\n", inet_ntoa(ip->ip_dst), ntohs(tcp->th_dport), tcp->th_flags & TH_SYN ? "S" : "", tcp->th_flags & TH_ACK ? "A" : ""); } if (tcp->th_flags == TH_SYN) handle_syn(ip, tcp); if (tcp->th_flags == (TH_SYN | TH_ACK)) handle_syn_ack(ip, tcp); if (tcp->th_flags == TH_ACK) handle_ack(ip, tcp); return; __bad_packet: printf("Bad packet\n"); return; } static void setup_pcap(void) { char buf[PCAP_ERRBUF_SIZE]; pcap_t *p; int fd; struct sock *s; p = pcap_create("any", buf); if (!p) errx(1, "pcap_open_live(): %s", buf); // pcap_set_want_pktap(p, 1); pcap_set_snaplen(p, 2048); pcap_set_timeout(p, 1); pcap_activate(p); if (pcap_set_datalink(p, DLT_PKTAP) == -1) { pcap_perror(p, "pcap_set_datalink()"); exit(1); } if ((fd = pcap_get_selectable_fd(p)) == -1) errx(1, "pcap_get_selectable_fd()"); s = add_sock(fd, pcap_in_handler); s->pcap = p; } static void setup_raw_sock(void) { int s; int one = 1; char buf[PCAP_ERRBUF_SIZE]; pcap_t *p = pcap_open_live("en0", BUFSIZ, 1, 1000, buf); if (!p) { errx(1, "pcap_open_live()"); } outp_ = p; if ((s = socket(AF_INET, SOCK_RAW, IPPROTO_TCP)) == -1) err(1, "socket()"); if (setsockopt(s, IPPROTO_IP, IP_HDRINCL, &one, sizeof(one)) == -1) err(1, "setsockopt(IP_HDRINCL)"); outs_ = s; } static void setup_redirect(void) { int s, one = 1; struct sockaddr_in s_in; if (setgid(503) == -1) err(1, "setgid()"); setup_pcap(); setup_raw_sock(); if ((s = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP)) == -1) err(1, "socket()"); if (setsockopt(s, SOL_SOCKET, SO_REUSEADDR, &one, sizeof(one)) == -1) err(1, "setsockopt()"); memset(&s_in, 0, sizeof(s_in)); s_in.sin_family = PF_INET; s_in.sin_port = htons(REDIRECT_PORT); s_in.sin_addr.s_addr = INADDR_ANY; if (bind(s, (struct sockaddr*) &s_in, sizeof(s_in)) == -1) err(1, "bind()"); if (listen(s, 5) == -1) err(1, "listen()"); add_sock(s, redirect_listen_handler); if (setuid(502) == -1) err(1, "setuid()"); } static void work(void) { int max = 0; fd_set fds; fd_set wfds; struct sock *s = &socks_; FD_ZERO(&fds); FD_ZERO(&wfds); /* prepare select */ while (s->next) { struct sock *next = s->next; /* unlink dead sockets */ if (next->state == STATE_DEAD) { s->next = next->next; free(next); continue; } s = next; switch (s->state) { case STATE_IDLE: continue; case STATE_CONNECT: FD_SET(s->s, &wfds); break; case STATE_READY: FD_SET(s->s, &fds); break; } max = s->s > max ? s->s : max; } /* select */ if (select(max + 1, &fds, &wfds, NULL, NULL) == -1) err(1, "select()"); /* process socks */ s = &socks_; while ((s = s->next)) { if (s->state != STATE_CONNECT && s->state != STATE_READY) continue; if (FD_ISSET(s->s, &fds) || FD_ISSET(s->s, &wfds)) s->handler(s); } } int main(int argc, char *argv[]) { setup_redirect(); while (1) work(); exit(0); } tcpcrypt-0.5/src/res.rc0000644000175200017520000000022212742073006014167 0ustar sorbosorbo#include #include #include #include "resource.h" MANIFEST_RESOURCE_ID RT_MANIFEST "tcpcryptd.exe.manifest" tcpcrypt-0.5/src/tcpcryptd.exe.manifest0000644000175200017520000000106312742073006017400 0ustar sorbosorbo tcpcryptd tcpcrypt-0.5/src/tcpcrypt.c0000644000175200017520000025142112742073006015075 0ustar sorbosorbo#include #include #include #include #include #include #include #include #include #include "inc.h" #include "util.h" #include "tcpcrypt.h" #include "tcpcrypt_divert.h" #include "tcpcryptd.h" #include "crypto.h" #include "profile.h" #include "checksum.h" #include "test.h" struct conn { struct sockaddr_in c_addr[2]; struct tc *c_tc; struct conn *c_next; }; /* XXX someone that knows what they're doing code a proper hash table */ static struct conn *_connection_map[65536]; struct freelist { void *f_obj; struct freelist *f_next; }; struct retransmit { void *r_timer; int r_num; uint8_t r_packet[0]; }; struct ciphers { struct cipher_list *c_cipher; unsigned char c_spec[4]; int c_speclen; struct ciphers *c_next; }; static struct tc *_sockopts[65536]; static struct tc_sess _sessions; static struct ciphers _ciphers_pkey; static struct ciphers _ciphers_sym; static struct freelist _free_free; static struct freelist _free_tc; static struct freelist _free_conn; static struct tc_cipher_spec _pkey[MAX_CIPHERS]; static int _pkey_len; static struct tc_scipher _sym[MAX_CIPHERS]; static int _sym_len; typedef int (*opt_cb)(struct tc *tc, int tcpop, int len, void *data); typedef int (*sm_cb)(struct tc_seq *s, uint32_t seq); static void *get_free(struct freelist *f, unsigned int sz) { struct freelist *x = f->f_next; void *o; if (x) { o = x->f_obj; f->f_next = x->f_next; if (f != &_free_free) { x->f_next = _free_free.f_next; _free_free.f_next = x; x->f_obj = x; } } else { xprintf(XP_DEBUG, "Gotta malloc %u\n", sz); o = xmalloc(sz); } return o; } static void put_free(struct freelist *f, void *obj) { struct freelist *x = get_free(&_free_free, sizeof(*f)); x->f_obj = obj; x->f_next = f->f_next; f->f_next = x; } static struct tc *get_tc(void) { return get_free(&_free_tc, sizeof(struct tc)); } static void put_tc(struct tc *tc) { put_free(&_free_tc, tc); } static struct conn *get_connection(void) { return get_free(&_free_conn, sizeof(struct conn)); } static void put_connection(struct conn *c) { put_free(&_free_conn, c); } static void do_add_ciphers(struct ciphers *c, void *spec, int *speclen, int sz, void *specend) { uint8_t *p = (uint8_t*) spec + *speclen; c = c->c_next; while (c) { unsigned char *sp = c->c_spec; assert(p + sz <= (uint8_t*) specend); memcpy(p, sp, sz); p += sz; *speclen += sz; c = c->c_next; } } static int bad_packet(char *msg) { xprintf(XP_ALWAYS, "%s\n", msg); return 0; } static void tc_init(struct tc *tc) { memset(tc, 0, sizeof(*tc)); tc->tc_state = _conf.cf_disable ? STATE_DISABLED : STATE_CLOSED; tc->tc_mtu = TC_MTU; tc->tc_mss_clamp = 40; /* XXX */ tc->tc_sack_disable = 1; tc->tc_rto = 100 * 1000; /* XXX */ tc->tc_nocache = _conf.cf_nocache; tc->tc_ciphers_pkey = _pkey; tc->tc_ciphers_pkey_len = _pkey_len; tc->tc_ciphers_sym = _sym; tc->tc_ciphers_sym_len = _sym_len; } /* XXX */ static void tc_reset(struct tc *tc) { struct conn *c = tc->tc_conn; assert(c); tc_init(tc); tc->tc_conn = c; } static void kill_retransmit(struct tc *tc) { if (!tc->tc_retransmit) return; clear_timer(tc->tc_retransmit->r_timer); free(tc->tc_retransmit); tc->tc_retransmit = NULL; } static void crypto_free_keyset(struct tc *tc, struct tc_keyset *ks) { if (ks->tc_alg_tx) crypt_sym_destroy(ks->tc_alg_tx); if (ks->tc_alg_rx) crypt_sym_destroy(ks->tc_alg_rx); } static void do_kill_rdr(struct tc *tc) { struct fd *fd = tc->tc_rdr_fd; tc->tc_state = STATE_DISABLED; if (fd) { fd->fd_state = FDS_DEAD; #ifdef __WIN32__ closesocket(fd->fd_fd); #else close(fd->fd_fd); #endif fd->fd_fd = -1; tc->tc_rdr_fd = NULL; } } static void kill_rdr(struct tc *tc) { struct tc *peer = tc->tc_rdr_peer; do_kill_rdr(tc); if (peer) { assert(peer->tc_rdr_peer == tc); /* XXX will still leak conn and tc (if we don't receive other * packets) */ do_kill_rdr(peer); } } static void tc_finish(struct tc *tc) { if (tc->tc_crypt_pub) crypt_pub_destroy(tc->tc_crypt_pub); if (tc->tc_crypt_sym) crypt_sym_destroy(tc->tc_crypt_sym); crypto_free_keyset(tc, &tc->tc_key_current); crypto_free_keyset(tc, &tc->tc_key_next); kill_retransmit(tc); if (tc->tc_last_ack_timer) clear_timer(tc->tc_last_ack_timer); if (tc->tc_sess) tc->tc_sess->ts_used = 0; kill_rdr(tc); } static struct tc *tc_dup(struct tc *tc) { struct tc *x = get_tc(); assert(x); *x = *tc; assert(!x->tc_crypt); assert(!x->tc_crypt_ops); return x; } static void do_expand(struct tc *tc, uint8_t tag, struct stuff *out) { int len = tc->tc_crypt_pub->cp_k_len; assert(len <= sizeof(out->s_data)); crypt_expand(tc->tc_crypt_pub->cp_hkdf, &tag, sizeof(tag), out->s_data, len); out->s_len = len; } static void compute_nextk(struct tc *tc, struct stuff *out) { do_expand(tc, CONST_NEXTK, out); } static void compute_mk(struct tc *tc, struct stuff *out) { int len = tc->tc_crypt_pub->cp_k_len; unsigned char tag = CONST_REKEY; assert(len <= sizeof(out->s_data)); crypt_expand(tc->tc_crypt_pub->cp_hkdf, &tag, sizeof(tag), out->s_data, len); out->s_len = len; } static void compute_sid(struct tc *tc, struct stuff *out, int v) { do_expand(tc, CONST_SESSID, out); assert(out->s_len + 1 <= sizeof(out->s_data)); memmove(out->s_data + 1, out->s_data, out->s_len); assert(tc->tc_cipher_pkey.tcs_algo); out->s_data[0] = tc->tc_cipher_pkey.tcs_algo | v; out->s_len++; } static void set_expand_key(struct tc *tc, struct stuff *s) { crypt_set_key(tc->tc_crypt_pub->cp_hkdf, s->s_data, s->s_len); } static void session_cache(struct tc *tc) { struct tc_sess *s = tc->tc_sess; if (tc->tc_nocache) return; if (!s) { s = xmalloc(sizeof(*s)); if (!s) err(1, "malloc()"); memset(s, 0, sizeof(*s)); s->ts_next = _sessions.ts_next; _sessions.ts_next = s; tc->tc_sess = s; s->ts_dir = tc->tc_dir; s->ts_role = tc->tc_role; s->ts_ip = tc->tc_dst_ip; s->ts_port = tc->tc_dst_port; s->ts_pub_spec = tc->tc_cipher_pkey.tcs_algo; s->ts_pub = crypt_new(tc->tc_crypt_pub->cp_ctr); s->ts_sym = crypt_new(tc->tc_crypt_sym->cs_ctr); } set_expand_key(tc, &tc->tc_nk); profile_add(1, "session_cache crypto_mac_set_key"); compute_sid(tc, &s->ts_sid, TC_OPT_VLEN); profile_add(1, "session_cache compute_sid"); compute_mk(tc, &s->ts_mk); profile_add(1, "session_cache compute_mk"); compute_nextk(tc, &s->ts_nk); profile_add(1, "session_cache compute_nk"); } static void init_algo(struct tc *tc, struct crypt_sym *cs, struct crypt_sym **algo, struct tc_keys *keys) { *algo = crypt_new(cs->cs_ctr); cs = *algo; assert(keys->tk_prk.s_len >= cs->cs_key_len); crypt_set_key(cs->cs_cipher, keys->tk_prk.s_data, cs->cs_key_len); } static void compute_keys(struct tc *tc, struct tc_keyset *out) { struct crypt_sym **tx, **rx; set_expand_key(tc, &tc->tc_mk); profile_add(1, "compute keys mac set key"); do_expand(tc, CONST_KEY_C, &out->tc_client.tk_prk); do_expand(tc, CONST_KEY_S, &out->tc_server.tk_prk); profile_add(1, "compute keys calculated keys"); switch (tc->tc_role) { case ROLE_CLIENT: tx = &out->tc_alg_tx; rx = &out->tc_alg_rx; break; case ROLE_SERVER: tx = &out->tc_alg_rx; rx = &out->tc_alg_tx; break; default: assert(!"Unknown role"); abort(); break; } init_algo(tc, tc->tc_crypt_sym, tx, &out->tc_client); init_algo(tc, tc->tc_crypt_sym, rx, &out->tc_server); profile_add(1, "initialized algos"); } static void get_algo_info(struct tc *tc) { tc->tc_mac_size = tc->tc_crypt_sym->cs_mac_len; tc->tc_sym_ivmode = IVMODE_SEQ; /* XXX */ } static void scrub_sensitive(struct tc *tc) { } static void copy_stuff(struct stuff *dst, struct stuff *src) { memcpy(dst, src, sizeof(*dst)); } static int session_resume(struct tc *tc) { struct tc_sess *s = tc->tc_sess; if (!s) return 0; copy_stuff(&tc->tc_sid, &s->ts_sid); copy_stuff(&tc->tc_mk, &s->ts_mk); copy_stuff(&tc->tc_nk, &s->ts_nk); tc->tc_role = s->ts_role; tc->tc_crypt_sym = crypt_new(s->ts_sym->cs_ctr); tc->tc_crypt_pub = crypt_new(s->ts_pub->cp_ctr); tc->tc_cipher_pkey.tcs_algo = s->ts_pub_spec; return 1; } static void enable_encryption(struct tc *tc) { profile_add(1, "enable_encryption in"); tc->tc_state = STATE_ENCRYPTING; tc->tc_rdr_len = 0; if (!session_resume(tc)) { set_expand_key(tc, &tc->tc_ss); profile_add(1, "enable_encryption mac set key"); compute_sid(tc, &tc->tc_sid, 0); profile_add(1, "enable_encryption compute SID"); compute_mk(tc, &tc->tc_mk); profile_add(1, "enable_encryption compute mk"); compute_nextk(tc, &tc->tc_nk); profile_add(1, "enable_encryption did compute_nextk"); } compute_keys(tc, &tc->tc_key_current); profile_add(1, "enable_encryption compute keys"); get_algo_info(tc); session_cache(tc); profile_add(1, "enable_encryption session cache"); scrub_sensitive(tc); } static int conn_hash(uint16_t src, uint16_t dst) { return (src + dst) % (sizeof(_connection_map) / sizeof(*_connection_map)); } static struct conn *get_head(uint16_t src, uint16_t dst) { return _connection_map[conn_hash(src, dst)]; } static struct tc *do_lookup_connection_prev(struct sockaddr_in *src, struct sockaddr_in *dst, struct conn **prev) { struct conn *head; struct conn *c; head = get_head(src->sin_port, dst->sin_port); if (!head) return NULL; c = head->c_next; *prev = head; while (c) { if ( src->sin_addr.s_addr == c->c_addr[0].sin_addr.s_addr && dst->sin_addr.s_addr == c->c_addr[1].sin_addr.s_addr && src->sin_port == c->c_addr[0].sin_port && dst->sin_port == c->c_addr[1].sin_port) return c->c_tc; *prev = c; c = c->c_next; } return NULL; } static struct tc *lookup_connection_prev(struct ip *ip, struct tcphdr *tcp, int flags, struct conn **prev) { struct sockaddr_in addr[2]; int idx = flags & DF_IN ? 1 : 0; addr[idx].sin_addr.s_addr = ip->ip_src.s_addr; addr[idx].sin_port = tcp->th_sport; addr[!idx].sin_addr.s_addr = ip->ip_dst.s_addr; addr[!idx].sin_port = tcp->th_dport; return do_lookup_connection_prev(&addr[0], &addr[1], prev); } static struct tc *lookup_connection(struct ip *ip, struct tcphdr *tcp, int flags) { struct conn *prev; return lookup_connection_prev(ip, tcp, flags, &prev); } static struct tc *sockopt_find_port(int port) { return _sockopts[port]; } static struct tc *sockopt_find(struct tcpcrypt_ctl *ctl) { struct ip ip; struct tcphdr tcp; if (!ctl->tcc_dport) return sockopt_find_port(ctl->tcc_sport); /* XXX */ ip.ip_src = ctl->tcc_src; ip.ip_dst = ctl->tcc_dst; tcp.th_sport = ctl->tcc_sport; tcp.th_dport = ctl->tcc_dport; return lookup_connection(&ip, &tcp, 0); } static void sockopt_clear(unsigned short port) { _sockopts[port] = NULL; } struct tcphdr *get_tcp(struct ip *ip) { return (struct tcphdr*) ((unsigned long) ip + ip->ip_hl * 4); } static void do_inject_ip(struct ip *ip) { xprintf(XP_NOISY, "Injecting "); print_packet(ip, get_tcp(ip), 0, NULL); _divert->inject(ip, ntohs(ip->ip_len)); } static void inject_ip(struct ip *ip) { if (_conf.cf_rdr) return; do_inject_ip(ip); } static void retransmit(void *a) { struct tc *tc = a; struct ip *ip; xprintf(XP_DEBUG, "Retransmitting %p\n", tc); assert(tc->tc_retransmit); if (tc->tc_retransmit->r_num++ >= 10) { xprintf(XP_DEFAULT, "Retransmit timeout\n"); tc->tc_tcp_state = TCPSTATE_DEAD; /* XXX remove connection */ } ip = (struct ip*) tc->tc_retransmit->r_packet; inject_ip(ip); /* XXX decay */ tc->tc_retransmit->r_timer = add_timer(tc->tc_rto, retransmit, tc); } static void add_connection(struct conn *c) { int idx = c->c_addr[0].sin_port; struct conn *head; idx = conn_hash(c->c_addr[0].sin_port, c->c_addr[1].sin_port); if (!_connection_map[idx]) { _connection_map[idx] = xmalloc(sizeof(*c)); memset(_connection_map[idx], 0, sizeof(*c)); } head = _connection_map[idx]; c->c_next = head->c_next; head->c_next = c; } static struct tc *do_new_connection(uint32_t saddr, uint16_t sport, uint32_t daddr, uint16_t dport, int in) { struct tc *tc; struct conn *c; int idx = in ? 1 : 0; c = get_connection(); assert(c); profile_add(2, "alloc connection"); memset(c, 0, sizeof(*c)); c->c_addr[idx].sin_addr.s_addr = saddr; c->c_addr[idx].sin_port = sport; c->c_addr[!idx].sin_addr.s_addr = daddr; c->c_addr[!idx].sin_port = dport; profile_add(2, "setup connection"); tc = sockopt_find_port(c->c_addr[0].sin_port); if (!tc) { tc = get_tc(); assert(tc); profile_add(2, "TC malloc"); tc_init(tc); profile_add(2, "TC init"); } else { /* For servers, we gotta duplicate options on child sockets. * For clients, we just steal it. */ if (in) tc = tc_dup(tc); else sockopt_clear(c->c_addr[0].sin_port); } tc->tc_dst_ip.s_addr = c->c_addr[1].sin_addr.s_addr; tc->tc_dst_port = c->c_addr[1].sin_port; tc->tc_conn = c; c->c_tc = tc; add_connection(c); return tc; } static struct tc *new_connection(struct ip *ip, struct tcphdr *tcp, int flags) { return do_new_connection(ip->ip_src.s_addr, tcp->th_sport, ip->ip_dst.s_addr, tcp->th_dport, flags & DF_IN); } static void do_remove_connection(struct tc *tc, struct conn *prev) { struct conn *item; assert(tc); assert(prev); item = prev->c_next; assert(item); tc_finish(tc); put_tc(tc); prev->c_next = item->c_next; put_connection(item); } static void remove_connection(struct ip *ip, struct tcphdr *tcp, int flags) { struct conn *prev = NULL; struct tc *tc; tc = lookup_connection_prev(ip, tcp, flags, &prev); do_remove_connection(tc, prev); } static void kill_connection(struct tc *tc) { struct conn *c = tc->tc_conn; struct conn *prev; struct tc *found; assert(c); found = do_lookup_connection_prev(&c->c_addr[0], &c->c_addr[1], &prev); assert(found); assert(found == tc); do_remove_connection(tc, prev); } static void last_ack(void *a) { struct tc *tc = a; tc->tc_last_ack_timer = NULL; xprintf(XP_NOISY, "Last ack for %p\n"); kill_connection(tc); } static void *tcp_data(struct tcphdr *tcp) { return (char*) tcp + (tcp->th_off << 2); } static int tcp_data_len(struct ip *ip, struct tcphdr *tcp) { int hl = (ip->ip_hl << 2) + (tcp->th_off << 2); return ntohs(ip->ip_len) - hl; } static void *find_opt(struct tcphdr *tcp, unsigned char opt) { unsigned char *p = (unsigned char*) (tcp + 1); int len = (tcp->th_off << 2) - sizeof(*tcp); int o, l; assert(len >= 0); while (len > 0) { if (*p == opt) { if (*(p + 1) > len) { xprintf(XP_ALWAYS, "fek\n"); return NULL; } return p; } o = *p++; len--; switch (o) { case TCPOPT_EOL: case TCPOPT_NOP: continue; } if (!len) { xprintf(XP_ALWAYS, "fuck\n"); return NULL; } l = *p++; len--; if (l > (len + 2) || l < 2) { xprintf(XP_ALWAYS, "fuck2 %d %d\n", l, len); return NULL; } p += l - 2; len -= l - 2; } assert(len == 0); return NULL; } void checksum_packet(struct tc *tc, struct ip *ip, struct tcphdr *tcp) { checksum_ip(ip); checksum_tcp(tc, ip, tcp); } static void set_ip_len(struct ip *ip, unsigned short len) { unsigned short old = ntohs(ip->ip_len); int diff; int sum; ip->ip_len = htons(len); diff = len - old; sum = ntohs(~ip->ip_sum); sum += diff; sum = (sum >> 16) + (sum & 0xffff); sum += (sum >> 16); ip->ip_sum = htons(~sum); } static void foreach_opt(struct tc *tc, struct tcphdr *tcp, opt_cb cb) { unsigned char *p = (unsigned char*) (tcp + 1); int len = (tcp->th_off << 2) - sizeof(*tcp); int o, l; assert(len >= 0); while (len > 0) { o = *p++; len--; switch (o) { case TCPOPT_EOL: case TCPOPT_NOP: continue; /* XXX optimize */ l = 0; break; default: if (!len) { xprintf(XP_ALWAYS, "fuck\n"); return; } l = *p++; len--; if (l < 2 || l > (len + 2)) { xprintf(XP_ALWAYS, "fuck2 %d %d\n", l, len); return; } l -= 2; break; } if (cb(tc, o, l, p)) return; p += l; len -= l; } assert(len == 0); } static int do_ops_len(struct tc *tc, int tcpop, int len, void *data) { tc->tc_optlen += len + 2; return 0; } static int tcp_ops_len(struct tc *tc, struct tcphdr *tcp) { int nops = 40; uint8_t *p = (uint8_t*) (tcp + 1); tc->tc_optlen = 0; foreach_opt(tc, tcp, do_ops_len); nops -= tc->tc_optlen; p += tc->tc_optlen; assert(nops >= 0); while (nops--) { if (*p != TCPOPT_NOP && *p != TCPOPT_EOL) return (tcp->th_off << 2) - 20; p++; } return tc->tc_optlen; } static void *tcp_opts_alloc(struct tc *tc, struct ip *ip, struct tcphdr *tcp, int len) { int opslen = (tcp->th_off << 2) + len; int pad = opslen % 4; char *p; int dlen = ntohs(ip->ip_len) - (ip->ip_hl << 2) - (tcp->th_off << 2); int ol = (tcp->th_off << 2) - sizeof(*tcp); assert(len); /* find space in tail if full of nops */ if (ol == 40) { ol = tcp_ops_len(tc, tcp); assert(ol <= 40); if (40 - ol >= len) return (uint8_t*) (tcp + 1) + ol; } if (pad) len += 4 - pad; if (ntohs(ip->ip_len) + len > tc->tc_mtu) return NULL; p = (char*) tcp + (tcp->th_off << 2); memmove(p + len, p, dlen); memset(p, 0, len); assert(((tcp->th_off << 2) + len) <= 60); set_ip_len(ip, ntohs(ip->ip_len) + len); tcp->th_off += len >> 2; return p; } static struct tc_sess *session_find_host(struct tc *tc, struct in_addr *in, int port) { struct tc_sess *s = _sessions.ts_next; while (s) { /* we're liberal - lets only check host */ if (!s->ts_used && (s->ts_dir == tc->tc_dir) && (s->ts_ip.s_addr == in->s_addr)) return s; s = s->ts_next; } return NULL; } static int is_eno(int tcpop, void *data, int len) { uint16_t *exid = data; if (tcpop != TCPOPT_EXP) return 0; if (len < sizeof(*exid)) return 0; if (ntohs(*exid) != EXID_ENO) return 0; return 1; } static int get_eno(int tcpop, void **data, int *len) { if (!is_eno(tcpop, *data, *len)) return 0; assert(*len >= 2); *len -= 2; *data = ((unsigned char*) *data) + 2; return 1; } static int do_set_eno_transcript(struct tc *tc, int tcpop, int len, void *data) { uint8_t *p = &tc->tc_eno[tc->tc_eno_len]; if (!is_eno(tcpop, data, len)) return 0; assert(len + 2 + tc->tc_eno_len < sizeof(tc->tc_eno)); *p++ = TCPOPT_EXP; *p++ = len + 2; memcpy(p, data, len); tc->tc_eno_len += 2 + len; return 0; } static void set_eno(struct tcpopt_eno *eno, int len) { eno->toe_kind = TCPOPT_EXP; eno->toe_len = len; eno->toe_exid = htons(0x454E); } static void set_eno_transcript(struct tc *tc, struct tcphdr *tcp) { struct tcpopt_eno *eno; foreach_opt(tc, tcp, do_set_eno_transcript); assert(tc->tc_eno_len + sizeof(*eno) < sizeof(tc->tc_eno)); eno = (struct tcpopt_eno*) &tc->tc_eno[tc->tc_eno_len]; set_eno(eno, sizeof(*eno)); tc->tc_eno_len += sizeof(*eno); } static void send_rst(struct tc *tc) { struct ip *ip = (struct ip*) tc->tc_rdr_buf; struct tcphdr *tcp = (struct tcphdr*) get_tcp(ip); struct in_addr addr; int port; addr.s_addr = ip->ip_src.s_addr; ip->ip_src.s_addr = ip->ip_dst.s_addr; ip->ip_dst.s_addr = addr.s_addr; port = tcp->th_sport; tcp->th_sport = tcp->th_dport; tcp->th_dport = port; tcp->th_flags = TH_RST | TH_ACK; tcp->th_ack = htonl(ntohl(tcp->th_seq) + 1); tcp->th_seq = htonl(0); checksum_packet(tc, ip, tcp); xprintf(XP_ALWAYS, "Sending RST\n"); do_inject_ip(ip); } static void rdr_check_connect(struct tc *tc) { int e; socklen_t len = sizeof(e); struct fd *fd = tc->tc_rdr_fd; struct ip *ip = (struct ip*) tc->tc_rdr_buf; if (getsockopt(fd->fd_fd, SOL_SOCKET, SO_ERROR, &e, &len) == -1) { perror("getsockopt()"); kill_rdr(tc); return; } if (e != 0) { #ifdef __WIN32__ if (e == WSAECONNREFUSED) #else if (e == ECONNREFUSED) #endif send_rst(tc); kill_rdr(tc); return; } xprintf(XP_NOISY, "Connected %p %s\n", tc, tc->tc_rdr_inbound ? "inbound" : ""); tc->tc_rdr_connected = 1; fd->fd_state = FDS_IDLE; if (tc->tc_rdr_inbound) { /* we need to manually redirect... */ struct tcphdr *tcp = get_tcp(ip); ip->ip_dst.s_addr = inet_addr("127.0.0.1"); tcp->th_dport = htons(REDIRECT_PORT); checksum_packet(tc, ip, tcp); } /* inject the local SYN so that user connects to proxy */ if (!tc->tc_rdr_peer->tc_rdr_drop_sa) do_inject_ip(ip); } static int do_output_closed(struct tc *tc, struct ip *ip, struct tcphdr *tcp) { struct tc_sess *ts = tc->tc_sess; struct tcpopt_eno *eno; struct tc_sid *sopt; int len; uint8_t *p; tc->tc_dir = DIR_OUT; if (tcp->th_flags != TH_SYN) return DIVERT_ACCEPT; if (!ts && !tc->tc_nocache) ts = session_find_host(tc, &ip->ip_dst, tcp->th_dport); len = sizeof(*eno) + tc->tc_ciphers_pkey_len; if (tc->tc_app_support) len += 1; if (ts) len += sizeof(*sopt); eno = tcp_opts_alloc(tc, ip, tcp, len); if (!eno) { xprintf(XP_ALWAYS, "No space for hello\n"); tc->tc_state = STATE_DISABLED; /* XXX try without session resumption */ return DIVERT_ACCEPT; } set_eno(eno, len); memcpy(eno->toe_opts, tc->tc_ciphers_pkey, tc->tc_ciphers_pkey_len); p = eno->toe_opts + tc->tc_ciphers_pkey_len; if (tc->tc_app_support) *p++ = tc->tc_app_support << 1; tc->tc_state = STATE_HELLO_SENT; if (!ts) { if (!_conf.cf_nocache) xprintf(XP_DEBUG, "Can't find session for host\n"); } else { /* session caching */ sopt = (struct tc_sid*) p; assert(ts->ts_sid.s_len >= sizeof(*sopt)); memcpy(sopt, &ts->ts_sid.s_data, sizeof(*sopt)); tc->tc_state = STATE_NEXTK1_SENT; assert(!ts->ts_used || ts == tc->tc_sess); tc->tc_sess = ts; ts->ts_used = 1; } tc->tc_eno_len = 0; set_eno_transcript(tc, tcp); return DIVERT_MODIFY; } static int do_output_hello_rcvd(struct tc *tc, struct ip *ip, struct tcphdr *tcp) { struct tcpopt_eno *eno; int len; int app_support = tc->tc_app_support & 1; len = sizeof(*eno) + sizeof(tc->tc_cipher_pkey); if (app_support) len++; eno = tcp_opts_alloc(tc, ip, tcp, len); if (!eno) { xprintf(XP_ALWAYS, "No space for ENO\n"); tc->tc_state = STATE_DISABLED; return DIVERT_ACCEPT; } set_eno(eno, len); memcpy(eno->toe_opts, &tc->tc_cipher_pkey, sizeof(tc->tc_cipher_pkey)); if (app_support) eno->toe_opts[sizeof(tc->tc_cipher_pkey)] = app_support << 1; /* don't set on retransmit. XXX check if same */ if (tc->tc_state != STATE_PKCONF_SENT) set_eno_transcript(tc, tcp); tc->tc_state = STATE_PKCONF_SENT; return DIVERT_MODIFY; } static int seqmap_find_start(struct tc_seq *s, uint32_t seq) { return s->sm_start == seq; } static int seqmap_find_end(struct tc_seq *s, uint32_t seq) { return s->sm_end == seq; } /* kernel -> internet */ static int seqmap_find_ack_out(struct tc_seq *s, uint32_t ack) { return (s->sm_end - s->sm_off) == ack; } /* internet -> kernel */ static int seqmap_find_ack_in(struct tc_seq *s, uint32_t ack) { return (s->sm_end + s->sm_off) == ack; } static struct tc_seq *seqmap_find(struct tc_seqmap *sm, uint32_t seq, sm_cb cb) { int i = sm->sm_idx; do { struct tc_seq *s = &sm->sm_seq[i]; if (s->sm_start == 0 && s->sm_end == 0 && s->sm_off == 0) return NULL; if (cb(s, seq)) return s; if (i == 0) i = MAX_SEQMAP - 1; else i--; } while (i != sm->sm_idx); return NULL; } static uint32_t get_seq_off(struct tc *tc, uint32_t seq, struct tc_seqmap *seqmap, sm_cb cb) { struct tc_seq *s = seqmap_find(seqmap, seq, cb); if (!s) return 0; /* XXX */ return s->sm_off; } static void add_seq(struct tc *tc, struct ip *ip, struct tcphdr *tcp, int len, struct tc_seqmap *seqmap) { uint32_t dlen = tcp_data_len(ip, tcp); uint32_t seq = ntohl(tcp->th_seq); uint32_t off = len; struct tc_seq *s, *rtr; /* find cumulative offset until now, based on last packet */ s = seqmap_find(seqmap, seq, seqmap_find_end); if (!s) { /* can't find last packet... but it's ok if we just started */ s = &seqmap->sm_seq[seqmap->sm_idx]; if (seqmap->sm_idx != 0 || s->sm_start != 0 || s->sm_end != 0 || s->sm_off != 0) { xprintf(XP_ALWAYS, "Damn - can't find seq %u\n", seq); return; } } /* Check if it's a retransmit. * XXX be more efficient */ rtr = seqmap_find(seqmap, seq, seqmap_find_start); if (rtr) { if (rtr->sm_end != (seq + dlen)) { xprintf(XP_ALWAYS, "Damn - retransmitted diff size\n"); return; } /* retransmit */ return; } off += s->sm_off; /* add an entry for this packet */ seqmap->sm_idx = (seqmap->sm_idx + 1) % MAX_SEQMAP; s = &seqmap->sm_seq[seqmap->sm_idx]; s->sm_start = seq; s->sm_end = seq + dlen; s->sm_off = off; } /* * 1. Record an entry for how much padding we're adding for this packet. * 2. Fix up the sequence number for this packet. */ static void fixup_seq_add(struct tc *tc, struct ip *ip, struct tcphdr *tcp, int len, int in) { uint32_t ack, seq; if (_conf.cf_rdr) return; if (in) { if (len) add_seq(tc, ip, tcp, len, &tc->tc_rseqm); ack = ntohl(tcp->th_ack) - tc->tc_seq_off; ack -= get_seq_off(tc, ack, &tc->tc_seqm, seqmap_find_ack_in); tcp->th_ack = htonl(ack); seq = ntohl(tcp->th_seq); seq -= get_seq_off(tc, seq, &tc->tc_rseqm, seqmap_find_end); seq -= tc->tc_rseq_off; tcp->th_seq = htonl(seq); } else { if (len) add_seq(tc, ip, tcp, len, &tc->tc_seqm); seq = ntohl(tcp->th_seq); seq += get_seq_off(tc, seq, &tc->tc_seqm, seqmap_find_end); seq += tc->tc_seq_off; tcp->th_seq = htonl(seq); ack = ntohl(tcp->th_ack) + tc->tc_rseq_off; ack += get_seq_off(tc, ack, &tc->tc_rseqm, seqmap_find_ack_out); tcp->th_ack = htonl(ack); } return; } static void *data_alloc(struct tc *tc, struct ip *ip, struct tcphdr *tcp, int len, int retx) { int totlen = ntohs(ip->ip_len); int hl = (ip->ip_hl << 2) + (tcp->th_off << 2); void *p; if (_conf.cf_rdr) { assert(len < sizeof(tc->tc_rdr_buf)); tc->tc_rdr_len = len; return tc->tc_rdr_buf; } assert(totlen == hl); p = (char*) tcp + (tcp->th_off << 2); totlen += len; assert(totlen <= 1500); set_ip_len(ip, totlen); if (!retx) tc->tc_seq_off = len; return p; } static void do_random(void *p, int len) { uint8_t *x = p; while (len--) *x++ = rand() & 0xff; } static void generate_nonce(struct tc *tc, int len) { profile_add(1, "generated nonce in"); assert(tc->tc_nonce_len == 0); tc->tc_nonce_len = len; do_random(tc->tc_nonce, tc->tc_nonce_len); profile_add(1, "generated nonce out"); } static int add_eno(struct tc *tc, struct ip *ip, struct tcphdr *tcp) { struct tcpopt_eno *eno; int len = sizeof(*eno); eno = tcp_opts_alloc(tc, ip, tcp, len); if (!eno) { xprintf(XP_ALWAYS, "No space for ENO\n"); tc->tc_state = STATE_DISABLED; return -1; } set_eno(eno, len); return 0; } static int do_output_pkconf_rcvd(struct tc *tc, struct ip *ip, struct tcphdr *tcp, int retx) { int len; uint16_t klen; struct tc_init1 *init1; void *key; uint8_t *p; /* Add the minimal ENO option to indicate support */ if (add_eno(tc, ip, tcp) == -1) return DIVERT_ACCEPT; if (!retx) generate_nonce(tc, tc->tc_crypt_pub->cp_n_c); klen = crypt_get_key(tc->tc_crypt_pub->cp_pub, &key); len = sizeof(*init1) + tc->tc_ciphers_sym_len + tc->tc_nonce_len + klen; init1 = data_alloc(tc, ip, tcp, len, retx); init1->i1_magic = htonl(TC_INIT1); init1->i1_len = htonl(len); init1->i1_nciphers = tc->tc_ciphers_sym_len; p = init1->i1_data; memcpy(p, tc->tc_ciphers_sym, tc->tc_ciphers_sym_len); p += tc->tc_ciphers_sym_len; memcpy(p, tc->tc_nonce, tc->tc_nonce_len); p += tc->tc_nonce_len; memcpy(p, key, klen); p += klen; tc->tc_state = STATE_INIT1_SENT; tc->tc_role = ROLE_CLIENT; assert(len <= sizeof(tc->tc_init1)); memcpy(tc->tc_init1, init1, len); tc->tc_init1_len = len; tc->tc_isn = ntohl(tcp->th_seq) + len; return DIVERT_MODIFY; } static int do_output_init1_rcvd(struct tc *tc, struct ip *ip, struct tcphdr *tcp) { return DIVERT_ACCEPT; } static int is_init(struct ip *ip, struct tcphdr *tcp, int init) { struct tc_init1 *i1 = tcp_data(tcp); int dlen = tcp_data_len(ip, tcp); if (dlen < sizeof(*i1)) return 0; if (ntohl(i1->i1_magic) != init) return 0; return 1; } static int do_output_init2_sent(struct tc *tc, struct ip *ip, struct tcphdr *tcp) { /* we generated this packet */ int is_init2 = is_init(ip, tcp, TC_INIT2); /* kernel is getting pissed off and is resending SYN ack (because we're * delaying his connect setup) */ if (!is_init2) { /* we could piggy back / retx init2 */ assert(tcp_data_len(ip, tcp) == 0); assert(tcp->th_flags == (TH_SYN | TH_ACK)); assert(tc->tc_retransmit); /* XXX */ ip = (struct ip*) tc->tc_retransmit->r_packet; tcp = (struct tcphdr*) (ip + 1); assert(is_init(ip, tcp, TC_INIT2)); return DIVERT_DROP; } else { /* Let the ACK of INIT2 enable encryption. Less efficient when * servers send first because we wait for that ACK to open up * window and let kernel send packets. * * Otherwise, be careful not to encrypt retransmits. */ #if 0 enable_encryption(tc); #endif } return DIVERT_ACCEPT; } static void *get_iv(struct tc *tc, struct ip *ip, struct tcphdr *tcp, int enc) { static uint64_t seq; uint64_t isn = enc ? tc->tc_isn : tc->tc_isn_peer; void *iv = NULL; /* XXX byte order */ if (_conf.cf_rdr) { seq = enc ? tc->tc_rdr_tx : tc->tc_rdr_rx; return &seq; } switch (tc->tc_sym_ivmode) { case IVMODE_CRYPT: assert(!"codeme"); break; case IVMODE_SEQ: /* XXX WRAP */ seq = htonl(tcp->th_seq) - isn; iv = &seq; break; case IVMODE_NONE: break; default: assert(!"sdfsfd"); break; } return iv; } static int add_data(struct tc *tc, struct ip *ip, struct tcphdr *tcp, int head, int tail) { int thlen = tcp->th_off * 4; int datalen = tcp_data_len(ip, tcp); int totlen = (ip->ip_hl * 4) + thlen + head + datalen + tail; uint8_t *data = tcp_data(tcp); /* extend packet * We assume we clamped the MSS */ if (totlen >= 1500) { xprintf(XP_DEBUG, "Damn... sending large packet %d\n", totlen); return -1; } set_ip_len(ip, totlen); /* move data forward */ memmove(data + head, data, datalen); return 0; } static int encrypt_and_mac(struct tc *tc, struct ip *ip, struct tcphdr *tcp) { uint8_t *data = tcp_data(tcp); int dlen = tcp_data_len(ip, tcp); void *iv = NULL; struct crypt *c = tc->tc_key_active->tc_alg_tx->cs_cipher; int head; struct tc_record *record; int maclen = tc->tc_mac_size + tc->tc_mac_ivlen; struct tc_flags *flags; uint8_t *mac; if (!dlen) { fixup_seq_add(tc, ip, tcp, 0, 0); return 0; } /* TLV + flags */ head = sizeof(*record) + 1; if (tcp->th_flags & TH_URG) head += 2; /* XXX should check if add_data fails first */ fixup_seq_add(tc, ip, tcp, head + maclen, 0); if (add_data(tc, ip, tcp, head, maclen)) return -1; iv = get_iv(tc, ip, tcp, 1); /* Prepare TLV */ record = tcp_data(tcp); record->tr_control = 0; record->tr_len = htons(tcp_data_len(ip, tcp) - sizeof(*record)); /* Prepare flags */ flags = (struct tc_flags *) record->tr_data; flags->tf_flags = 0; flags->tf_flags |= tcp->th_flags & TH_FIN ? TCF_FIN : 0; flags->tf_flags |= tcp->th_flags & TH_URG ? TCF_URG : 0; if (flags->tf_flags & TCF_URG) flags->tf_urp[0] = tcp->th_urp; mac = data + tcp_data_len(ip, tcp) - maclen; c->c_aead_encrypt(c, iv, record, sizeof(*record), data + sizeof(*record), dlen + head - sizeof(*record), mac); profile_add(1, "do_output post sym encrypt and mac"); return 0; } static int connected(struct tc *tc) { return tc->tc_state == STATE_ENCRYPTING || tc->tc_state == STATE_REKEY_SENT || tc->tc_state == STATE_REKEY_RCVD; } static void do_rekey(struct tc *tc) { assert(!tc->tc_key_next.tc_alg_rx); tc->tc_keygen++; assert(!"implement"); // crypto_mac_set_key(tc, tc->tc_mk.s_data, tc->tc_mk.s_len); compute_mk(tc, &tc->tc_mk); compute_keys(tc, &tc->tc_key_next); xprintf(XP_DEFAULT, "Rekeying, keygen %d [%p]\n", tc->tc_keygen, tc); } static int rekey_complete(struct tc *tc) { if (tc->tc_keygenrx != tc->tc_keygen) { assert((uint8_t)(tc->tc_keygenrx + 1) == tc->tc_keygen); return 0; } if (tc->tc_keygentx != tc->tc_keygen) { assert((uint8_t)(tc->tc_keygentx + 1) == tc->tc_keygen); return 0; } assert(tc->tc_key_current.tc_alg_tx); assert(tc->tc_key_next.tc_alg_tx); crypto_free_keyset(tc, &tc->tc_key_current); memcpy(&tc->tc_key_current, &tc->tc_key_next, sizeof(tc->tc_key_current)); memset(&tc->tc_key_next, 0, sizeof(tc->tc_key_next)); tc->tc_state = STATE_ENCRYPTING; xprintf(XP_DEBUG, "Rekey complete %d [%p]\n", tc->tc_keygen, tc); return 1; } static int do_output_encrypting(struct tc *tc, struct ip *ip, struct tcphdr *tcp) { if (tcp->th_flags == (TH_SYN | TH_ACK)) { /* XXX I assume we just sent ACK to dude but he didn't get it * yet */ return DIVERT_DROP; } /* We're retransmitting INIT2 */ if (tc->tc_retransmit) { /* XXX */ ip = (struct ip*) tc->tc_retransmit->r_packet; tcp = (struct tcphdr*) (ip + 1); assert(is_init(ip, tcp, TC_INIT2)); return DIVERT_ACCEPT; } assert(!(tcp->th_flags & TH_SYN)); tc->tc_key_active = &tc->tc_key_current; profile_add(1, "do_output pre sym encrypt"); if (encrypt_and_mac(tc, ip, tcp)) { /* hopefully pmtu disc works */ xprintf(XP_ALWAYS, "No space for MAC - dropping\n"); return DIVERT_DROP; } return DIVERT_MODIFY; } static int sack_disable(struct tc *tc, struct tcphdr *tcp) { struct { uint8_t kind; uint8_t len; } *sack; sack = find_opt(tcp, TCPOPT_SACK_PERMITTED); if (!sack) return DIVERT_ACCEPT; memset(sack, TCPOPT_NOP, sizeof(*sack)); return DIVERT_MODIFY; } static int do_tcp_output(struct tc *tc, struct ip *ip, struct tcphdr *tcp) { int rc = DIVERT_ACCEPT; if (tcp->th_flags & TH_SYN) tc->tc_isn = ntohl(tcp->th_seq) + 1; if (tcp->th_flags == TH_SYN) { if (tc->tc_tcp_state == TCPSTATE_LASTACK) { tc_finish(tc); tc_reset(tc); } rc = sack_disable(tc, tcp); } if (tcp->th_flags & TH_FIN) { switch (tc->tc_tcp_state) { case TCPSTATE_FIN1_RCVD: tc->tc_tcp_state = TCPSTATE_FIN2_SENT; break; case TCPSTATE_FIN2_SENT: break; default: tc->tc_tcp_state = TCPSTATE_FIN1_SENT; } return rc; } if (tcp->th_flags & TH_RST) { tc->tc_tcp_state = TCPSTATE_DEAD; return rc; } if (!(tcp->th_flags & TH_ACK)) return rc; switch (tc->tc_tcp_state) { case TCPSTATE_FIN2_RCVD: tc->tc_tcp_state = TCPSTATE_LASTACK; if (!tc->tc_last_ack_timer) tc->tc_last_ack_timer = add_timer(10 * 1000 * 1000, last_ack, tc); else xprintf(XP_DEFAULT, "uarning\n"); break; } return rc; } static int do_output_nextk1_rcvd(struct tc *tc, struct ip *ip, struct tcphdr *tcp) { struct tcpopt_eno *eno; int len; int i = 0; if (!tc->tc_sess) return do_output_hello_rcvd(tc, ip, tcp); len = sizeof(*eno) + 1; if (tc->tc_app_support) len += 1; eno = tcp_opts_alloc(tc, ip, tcp, len); if (!eno) { xprintf(XP_ALWAYS, "No space for NEXTK2\n"); tc->tc_state = STATE_DISABLED; return DIVERT_ACCEPT; } set_eno(eno, len); if (tc->tc_app_support) eno->toe_opts[i++] = tc->tc_app_support << 1; eno->toe_opts[i++] = tc->tc_sess->ts_pub_spec | TC_OPT_VLEN; tc->tc_state = STATE_NEXTK2_SENT; return DIVERT_MODIFY; } static int do_output(struct tc *tc, struct ip *ip, struct tcphdr *tcp) { int rc = DIVERT_ACCEPT; int tcp_rc; tcp_rc = do_tcp_output(tc, ip, tcp); /* an RST half way through the handshake */ if (tc->tc_tcp_state == TCPSTATE_DEAD && !connected(tc)) return tcp_rc; switch (tc->tc_state) { case STATE_HELLO_SENT: case STATE_NEXTK1_SENT: /* syn re-TX. fallthrough */ assert(tcp->th_flags & TH_SYN); case STATE_CLOSED: rc = do_output_closed(tc, ip, tcp); break; case STATE_PKCONF_SENT: /* reTX of syn ack, or ACK (role switch) */ case STATE_HELLO_RCVD: rc = do_output_hello_rcvd(tc, ip, tcp); break; case STATE_NEXTK2_SENT: /* syn ack rtx */ assert(tc->tc_sess); assert(tcp->th_flags == (TH_SYN | TH_ACK)); case STATE_NEXTK1_RCVD: rc = do_output_nextk1_rcvd(tc, ip, tcp); break; case STATE_PKCONF_RCVD: rc = do_output_pkconf_rcvd(tc, ip, tcp, 0); break; case STATE_INIT1_RCVD: rc = do_output_init1_rcvd(tc, ip, tcp); break; case STATE_INIT1_SENT: if (!is_init(ip, tcp, TC_INIT1)) rc = do_output_pkconf_rcvd(tc, ip, tcp, 1); break; case STATE_INIT2_SENT: rc = do_output_init2_sent(tc, ip, tcp); break; case STATE_ENCRYPTING: case STATE_REKEY_SENT: case STATE_REKEY_RCVD: rc = do_output_encrypting(tc, ip, tcp); break; case STATE_DISABLED: rc = DIVERT_ACCEPT; break; default: xprintf(XP_ALWAYS, "Unknown state %d\n", tc->tc_state); abort(); } if (rc == DIVERT_ACCEPT) return tcp_rc; return rc; } static struct tc_sess *session_find(struct tc *tc, struct tc_sid *sid) { struct tc_sess *s = _sessions.ts_next; while (s) { if (tc->tc_dir == s->ts_dir && memcmp(sid, s->ts_sid.s_data, sizeof(*sid)) == 0) return s; s = s->ts_next; } return NULL; } static int do_clamp_mss(struct tc *tc, uint16_t *mss) { int len; len = ntohs(*mss) - tc->tc_mss_clamp; assert(len > 0); *mss = htons(len); xprintf(XP_NOISY, "Clamping MSS to %d\n", len); return DIVERT_MODIFY; } static int negotiate_cipher(struct tc *tc, struct tc_cipher_spec *a, int an) { struct tc_cipher_spec *b = tc->tc_ciphers_pkey; int bn = tc->tc_ciphers_pkey_len / sizeof(*tc->tc_ciphers_pkey); struct tc_cipher_spec *out = &tc->tc_cipher_pkey; tc->tc_pub_cipher_list_len = an * sizeof(*a); memcpy(tc->tc_pub_cipher_list, a, tc->tc_pub_cipher_list_len); while (an--) { while (bn--) { if (a->tcs_algo == b->tcs_algo) { out->tcs_algo = a->tcs_algo; return 1; } b++; } a++; } return 0; } static void init_pkey(struct tc *tc) { struct ciphers *c = _ciphers_pkey.c_next; struct tc_cipher_spec *s; assert(tc->tc_cipher_pkey.tcs_algo); while (c) { s = (struct tc_cipher_spec*) c->c_spec; if (s->tcs_algo == tc->tc_cipher_pkey.tcs_algo) { tc->tc_crypt_pub = crypt_new(c->c_cipher->c_ctr); return; } c = c->c_next; } assert(!"Can't init cipher"); } static void check_app_support(struct tc *tc, uint8_t *data, int len) { while (len--) { /* general option */ if ((*data >> 4) == 0) { /* application aware bit */ if (*data & 2) tc->tc_app_support |= 2; } data++; } } static int can_session_resume(struct tc *tc, uint8_t *data, int len) { int i; struct tc_sid *sid = NULL; for (i = 0; i <= (len - (int) sizeof(*sid)); i++) { /* XXX should check spec / other opts of var length */ if (data[i] & TC_OPT_VLEN) { sid = (struct tc_sid*) &data[i]; if ((tc->tc_sess = session_find(tc, sid))) break; } } profile_add(2, "found session"); if (!tc->tc_sess) return 0; tc->tc_state = STATE_NEXTK1_RCVD; return 1; } static void input_closed_eno(struct tc *tc, uint8_t *data, int len) { struct tc_cipher_spec *cipher = (struct tc_cipher_spec*) data; check_app_support(tc, data, len); if (can_session_resume(tc, data, len)) return; if (!negotiate_cipher(tc, cipher, len)) { xprintf(XP_ALWAYS, "No cipher\n"); tc->tc_state = STATE_DISABLED; return; } init_pkey(tc); tc->tc_state = STATE_HELLO_RCVD; } static int opt_input_closed(struct tc *tc, int tcpop, int len, void *data) { uint8_t *p; profile_add(2, "opt_input_closed in"); if (get_eno(tcpop, &data, &len)) input_closed_eno(tc, data, len); switch (tcpop) { case TCPOPT_SACK_PERMITTED: p = data; p[-2] = TCPOPT_NOP; p[-1] = TCPOPT_NOP; tc->tc_verdict = DIVERT_MODIFY; break; case TCPOPT_MAXSEG: if (do_clamp_mss(tc, data) == DIVERT_MODIFY) tc->tc_verdict = DIVERT_MODIFY; tc->tc_mss_clamp = -1; break; } profile_add(2, "opt_input_closed out"); return 0; } static int do_input_closed(struct tc *tc, struct ip *ip, struct tcphdr *tcp) { tc->tc_dir = DIR_IN; if (tcp->th_flags != TH_SYN) return DIVERT_ACCEPT; tc->tc_verdict = DIVERT_ACCEPT; tc->tc_state = STATE_DISABLED; profile_add(1, "do_input_closed pre option parse"); foreach_opt(tc, tcp, opt_input_closed); profile_add(1, "do_input_closed options parsed"); tc->tc_eno_len = 0; set_eno_transcript(tc, tcp); return tc->tc_verdict; } static void make_reply(void *buf, struct ip *ip, struct tcphdr *tcp) { struct ip *ip2 = buf; struct tcphdr *tcp2; int dlen = ntohs(ip->ip_len) - (ip->ip_hl << 2) - (tcp->th_off << 2); ip2->ip_v = 4; ip2->ip_hl = sizeof(*ip2) >> 2; ip2->ip_tos = 0; ip2->ip_len = htons(sizeof(*ip2) + sizeof(*tcp2)); ip2->ip_id = 0; ip2->ip_off = 0; ip2->ip_ttl = 128; ip2->ip_p = IPPROTO_TCP; ip2->ip_sum = 0; ip2->ip_src = ip->ip_dst; ip2->ip_dst = ip->ip_src; tcp2 = (struct tcphdr*) (ip2 + 1); tcp2->th_sport = tcp->th_dport; tcp2->th_dport = tcp->th_sport; tcp2->th_seq = tcp->th_ack; tcp2->th_ack = htonl(ntohl(tcp->th_seq) + dlen); tcp2->th_x2 = 0; tcp2->th_off = sizeof(*tcp2) >> 2; tcp2->th_flags = TH_ACK; tcp2->th_win = tcp->th_win; tcp2->th_sum = 0; tcp2->th_urp = 0; } static void *alloc_retransmit(struct tc *tc) { struct retransmit *r; int len; if (_conf.cf_rdr) return &tc->tc_rdr_buf[512]; /* XXX */ assert(!tc->tc_retransmit); len = sizeof(*r) + tc->tc_mtu; r = xmalloc(len); memset(r, 0, len); r->r_timer = add_timer(tc->tc_rto, retransmit, tc); tc->tc_retransmit = r; return r->r_packet; } static struct tcpopt_eno *find_eno(struct tcphdr *tcp) { struct tcpopt_eno *eno = find_opt(tcp, TCPOPT_EXP); if (!eno) return NULL; assert(eno->toe_len >= 2); if (is_eno(eno->toe_kind, (unsigned char*) eno + 2, eno->toe_len - 2)) return eno; return NULL; } static int do_input_hello_sent(struct tc *tc, struct ip *ip, struct tcphdr *tcp) { struct tc_cipher_spec *cipher; struct tcpopt_eno *eno; int len; if (!(eno = find_eno(tcp))) { tc->tc_state = STATE_DISABLED; return DIVERT_ACCEPT; } len = eno->toe_len - sizeof(*eno); assert(len >= 0); check_app_support(tc, eno->toe_opts, len); cipher = (struct tc_cipher_spec*) eno->toe_opts; /* XXX truncate len as it could go to the variable options (like SID) */ if (!negotiate_cipher(tc, cipher, len)) { xprintf(XP_ALWAYS, "No cipher\n"); tc->tc_state = STATE_DISABLED; return DIVERT_ACCEPT; } set_eno_transcript(tc, tcp); init_pkey(tc); tc->tc_state = STATE_PKCONF_RCVD; return DIVERT_ACCEPT; } static void do_neg_sym(struct tc *tc, struct ciphers *c, struct tc_scipher *a) { struct tc_scipher *b; c = c->c_next; while (c) { b = (struct tc_scipher*) c->c_spec; if (b->sc_algo == a->sc_algo) { tc->tc_crypt_sym = crypt_new(c->c_cipher->c_ctr); tc->tc_cipher_sym.sc_algo = a->sc_algo; break; } c = c->c_next; } } static int negotiate_sym_cipher(struct tc *tc, struct tc_scipher *a, int alen) { int rc = 0; tc->tc_sym_cipher_list_len = alen * sizeof(*a); memcpy(tc->tc_sym_cipher_list, a, tc->tc_sym_cipher_list_len); while (alen--) { do_neg_sym(tc, &_ciphers_sym, a); if (tc->tc_crypt_sym) { rc = 1; break; } a++; } return rc; } static int select_pkey(struct tc *tc, struct tc_cipher_spec *pkey) { struct tc_cipher_spec *spec; struct ciphers *c = _ciphers_pkey.c_next; int i; /* check whether we know about the cipher */ while (c) { spec = (struct tc_cipher_spec*) c->c_spec; if (spec->tcs_algo == pkey->tcs_algo) { tc->tc_crypt_pub = crypt_new(c->c_cipher->c_ctr); break; } c = c->c_next; } if (!c) return 0; /* check whether we were willing to accept this cipher */ for (i = 0; i < tc->tc_ciphers_pkey_len / sizeof(*tc->tc_ciphers_pkey); i++) { spec = &tc->tc_ciphers_pkey[i]; if (spec->tcs_algo == pkey->tcs_algo) { tc->tc_cipher_pkey = *pkey; return 1; } } /* XXX cleanup */ return 0; } static void compute_ss(struct tc *tc) { struct iovec iov[4]; profile_add(1, "compute ss in"); iov[0].iov_base = tc->tc_eno; iov[0].iov_len = tc->tc_eno_len; iov[1].iov_base = tc->tc_init1; iov[1].iov_len = tc->tc_init1_len; iov[2].iov_base = tc->tc_init2; iov[2].iov_len = tc->tc_init2_len; iov[3].iov_base = tc->tc_pms; iov[3].iov_len = tc->tc_pms_len; crypt_set_key(tc->tc_crypt_pub->cp_hkdf, tc->tc_nonce, tc->tc_nonce_len); profile_add(1, "compute ss mac set key"); tc->tc_ss.s_len = sizeof(tc->tc_ss.s_data); crypt_extract(tc->tc_crypt_pub->cp_hkdf, iov, sizeof(iov) / sizeof(*iov), tc->tc_ss.s_data, &tc->tc_ss.s_len); assert(tc->tc_ss.s_len <= sizeof(tc->tc_ss.s_data)); profile_add(1, "compute ss did MAC"); } static int process_init1(struct tc *tc, struct ip *ip, struct tcphdr *tcp, uint8_t *kxs, int kxs_len) { struct tc_init1 *i1; int dlen; uint8_t *nonce; int nonce_len; void *key; int klen; int cl; void *pms; int pmsl; int len; uint8_t *p; if (!is_init(ip, tcp, TC_INIT1)) return bad_packet("can't find init1"); dlen = tcp_data_len(ip, tcp); i1 = tcp_data(tcp); if (!select_pkey(tc, &tc->tc_cipher_pkey)) return bad_packet("init1: bad public key"); klen = crypt_get_key(tc->tc_crypt_pub->cp_pub, &key); nonce_len = tc->tc_crypt_pub->cp_n_c; len = sizeof(*i1) + i1->i1_nciphers + nonce_len + klen; /* strict len for now */ if (len != dlen || len != ntohl(i1->i1_len)) return bad_packet("bad init1 len"); p = i1->i1_data; if (!negotiate_sym_cipher(tc, (struct tc_scipher *) p, i1->i1_nciphers)) return bad_packet("init1: can't negotiate"); nonce = p + i1->i1_nciphers; key = nonce + nonce_len; profile_add(1, "pre pkey set key"); /* figure out key len */ if (crypt_set_key(tc->tc_crypt_pub->cp_pub, key, klen) == -1) return bad_packet("init1: bad pubkey"); profile_add(1, "pkey set key"); generate_nonce(tc, tc->tc_crypt_pub->cp_n_s); /* XXX fix crypto api to have from to args */ memcpy(kxs, tc->tc_nonce, tc->tc_nonce_len); cl = crypt_encrypt(tc->tc_crypt_pub->cp_pub, NULL, kxs, tc->tc_nonce_len); assert(cl <= kxs_len); /* XXX too late to check */ pms = tc->tc_nonce; pmsl = tc->tc_nonce_len; if (tc->tc_crypt_pub->cp_key_agreement) { pms = alloca(1024); pmsl = crypt_compute_key(tc->tc_crypt_pub->cp_pub, pms); assert(pmsl < 1024); /* XXX */ } assert(dlen <= sizeof(tc->tc_init1)); memcpy(tc->tc_init1, i1, dlen); tc->tc_init1_len = dlen; assert(pmsl <= sizeof(tc->tc_pms)); memcpy(tc->tc_pms, pms, pmsl); tc->tc_pms_len = pmsl; assert(nonce_len <= sizeof(tc->tc_nonce)); memcpy(tc->tc_nonce, nonce, nonce_len); tc->tc_nonce_len = nonce_len; tc->tc_state = STATE_INIT1_RCVD; tc->tc_isn_peer = ntohl(tcp->th_seq) + dlen; return 1; } static int swallow_data(struct ip *ip, struct tcphdr *tcp) { int len, dlen; len = (ip->ip_hl << 2) + (tcp->th_off << 2); dlen = ntohs(ip->ip_len) - len; set_ip_len(ip, len); return dlen; } static int do_input_pkconf_sent(struct tc *tc, struct ip *ip, struct tcphdr *tcp) { int len, dlen; void *buf; struct ip *ip2; struct tcphdr *tcp2; struct tc_init2 *i2; uint8_t kxs[1024]; int cipherlen; struct tcpopt_eno *eno; int rdr = _conf.cf_rdr; /* Check to see if the other side added ENO per Section 3.2 of draft-ietf-tcpinc-tcpeno-00. */ if (!rdr && !(eno = find_eno(tcp))) { xprintf(XP_DEBUG, "No ENO option found in expected INIT1\n"); tc->tc_state = STATE_DISABLED; return DIVERT_ACCEPT; } /* syn retransmission */ if (tcp->th_flags == TH_SYN) return do_input_closed(tc, ip, tcp); if (!process_init1(tc, ip, tcp, kxs, sizeof(kxs))) { /* XXX. Per Section 3.2 of draft-ietf-tcpinc-tcpeno-00, you are supposed to tear down the connection. This is a bug. */ tc->tc_state = STATE_DISABLED; return DIVERT_ACCEPT; } cipherlen = tc->tc_crypt_pub->cp_cipher_len; /* send init2 */ buf = alloc_retransmit(tc); make_reply(buf, ip, tcp); ip2 = (struct ip*) buf; tcp2 = (struct tcphdr*) (ip2 + 1); len = sizeof(*i2) + cipherlen; i2 = data_alloc(tc, ip2, tcp2, len, 0); i2->i2_magic = htonl(TC_INIT2); i2->i2_len = htonl(len); i2->i2_cipher = tc->tc_cipher_sym.sc_algo; memcpy(i2->i2_data, kxs, cipherlen); if (_conf.cf_rsa_client_hack) memcpy(i2->i2_data, tc->tc_nonce, tc->tc_nonce_len); assert(len <= sizeof(tc->tc_init2)); memcpy(tc->tc_init2, i2, len); tc->tc_init2_len = len; tc->tc_isn = ntohl(tcp2->th_seq) + len; checksum_packet(tc, ip2, tcp2); inject_ip(ip2); tc->tc_state = STATE_INIT2_SENT; /* swallow data - ewwww */ dlen = swallow_data(ip, tcp); tc->tc_rseq_off = dlen; tc->tc_role = ROLE_SERVER; compute_ss(tc); #if 1 return DIVERT_MODIFY; #else /* we let the ACK of INIT2 through to complete the handshake */ return DIVERT_DROP; #endif } static int select_sym(struct tc *tc, struct tc_scipher *s) { struct tc_scipher *me = tc->tc_ciphers_sym; int len = tc->tc_ciphers_sym_len; int sym = 0; struct ciphers *c; /* check if we approve it */ while (len) { if (memcmp(me, s, sizeof(*s)) == 0) { sym = 1; break; } me++; len -= sizeof(*me); assert(len >= 0); } if (!sym) return 0; /* select ciphers */ c = _ciphers_sym.c_next; while (c) { me = (struct tc_scipher*) c->c_spec; if (me->sc_algo == s->sc_algo) { tc->tc_crypt_sym = crypt_new(c->c_cipher->c_ctr); break; } c = c->c_next; } assert(tc->tc_crypt_sym); memcpy(&tc->tc_cipher_sym, s, sizeof(*s)); return 1; } static int process_init2(struct tc *tc, struct ip *ip, struct tcphdr *tcp) { struct tc_init2 *i2; int len; int nlen; void *nonce; if (!is_init(ip, tcp, TC_INIT2)) return bad_packet("init2: can't find opt"); i2 = tcp_data(tcp); len = tcp_data_len(ip, tcp); nlen = tc->tc_crypt_pub->cp_cipher_len; if (sizeof(*i2) + nlen > len || ntohl(i2->i2_len) > len) return bad_packet("init2: bad len"); if (!select_sym(tc, (struct tc_scipher*) (&i2->i2_cipher))) return bad_packet("init2: select_sym()"); if (len > sizeof(tc->tc_init2)) return bad_packet("init2: too long"); memcpy(tc->tc_init2, i2, len); tc->tc_init2_len = len; tc->tc_isn_peer = ntohl(tcp->th_seq) + len; nonce = i2->i2_data; nlen = crypt_decrypt(tc->tc_crypt_pub->cp_pub, NULL, nonce, nlen); assert(nlen <= sizeof(tc->tc_pms)); memcpy(tc->tc_pms, nonce, nlen); tc->tc_pms_len = nlen; compute_ss(tc); return 1; } static void ack(struct tc *tc, struct ip *ip, struct tcphdr *tcp) { char buf[2048]; struct ip *ip2; struct tcphdr *tcp2; if (_conf.cf_rdr) return; ip2 = (struct ip*) buf; tcp2 = (struct tcphdr*) (ip2 + 1); make_reply(buf, ip, tcp); /* XXX */ tcp2->th_seq = htonl(ntohl(tcp2->th_seq) - tc->tc_seq_off); tcp2->th_ack = htonl(ntohl(tcp2->th_ack) - tc->tc_rseq_off); checksum_packet(tc, ip2, tcp2); do_inject_ip(ip2); } static int do_input_init1_sent(struct tc *tc, struct ip *ip, struct tcphdr *tcp) { int dlen = tcp_data_len(ip, tcp); /* XXX syn ack re-TX - check pkconf */ if (tcp->th_flags == (TH_SYN | TH_ACK)) return DIVERT_ACCEPT; /* pure ack after connect */ if (dlen == 0) return DIVERT_ACCEPT; if (!process_init2(tc, ip, tcp)) { tc->tc_state = STATE_DISABLED; return DIVERT_ACCEPT; } dlen = ntohs(ip->ip_len) - (ip->ip_hl << 2) - (tcp->th_off << 2); tc->tc_rseq_off = dlen; ack(tc, ip, tcp); enable_encryption(tc); /* we let this packet through to reopen window */ swallow_data(ip, tcp); tcp->th_ack = htonl(ntohl(tcp->th_ack) - tc->tc_seq_off); return DIVERT_MODIFY; } static struct tco_rekeystream *rekey_input(struct tc *tc, struct ip *ip, struct tcphdr *tcp) { struct tco_rekeystream *tr; /* half way through rekey - figure out current key */ if (tc->tc_keygentx != tc->tc_keygenrx && tc->tc_keygenrx == tc->tc_keygen) tc->tc_key_active = &tc->tc_key_next; /* XXX TODO */ return NULL; if (tr->tr_key == (uint8_t) ((tc->tc_keygen + 1))) { do_rekey(tc); tc->tc_state = STATE_REKEY_RCVD; tc->tc_rekey_seq = ntohl(tr->tr_seq); if (tc->tc_rekey_seq != ntohl(tcp->th_seq)) { assert(!"implement"); // unsigned char dummy[] = "a"; // void *iv = &tr->tr_seq; /* XXX assuming stream, and seq as IV */ // crypto_decrypt(tc, iv, dummy, sizeof(dummy)); } /* XXX assert that MAC checks out, else revert */ } assert(tr->tr_key == tc->tc_keygen); if (tr->tr_key == tc->tc_keygen) { /* old news - we've finished rekeying */ if (tc->tc_state == STATE_ENCRYPTING) { assert(tc->tc_keygen == tc->tc_keygenrx && tc->tc_keygen == tc->tc_keygentx); return NULL; } tc->tc_key_active = &tc->tc_key_next; } return tr; } static void rekey_input_post(struct tc *tc, struct ip *ip, struct tcphdr *tcp, struct tco_rekeystream *tr) { /* XXX seqno wrap */ if (tc->tc_state == STATE_REKEY_SENT && ntohl(tcp->th_ack) >= tc->tc_rekey_seq) { xprintf(XP_DEBUG, "TX rekey done %d %p\n", tc->tc_keygen, tc); tc->tc_keygentx++; assert(tc->tc_keygentx == tc->tc_keygen); if (rekey_complete(tc)) return; tc->tc_state = STATE_ENCRYPTING; } if (tr && (tc->tc_state = STATE_ENCRYPTING)) { tc->tc_state = STATE_REKEY_RCVD; tc->tc_rekey_seq = ntohl(tr->tr_seq); } } static int check_mac_and_decrypt(struct tc *tc, struct ip *ip, struct tcphdr *tcp) { int rc; struct tc_flags *flags; struct tc_record *record = tcp_data(tcp); int len = tcp_data_len(ip, tcp); int maclen = tc->tc_mac_size + tc->tc_mac_ivlen; uint8_t *clear; struct crypt *c = tc->tc_key_active->tc_alg_rx->cs_cipher; uint8_t *data = (uint8_t*) (record + 1); uint8_t *mac = ((uint8_t*) record) + len - maclen; void *iv = get_iv(tc, ip, tcp, 0); int dlen; if (len == 0) { fixup_seq_add(tc, ip, tcp, 0, 1); return 0; } /* basic length check */ if (len < (sizeof(*record) + maclen)) return -1; /* check MAC and decrypt */ profile_add(1, "do_input pre check_mac and decrypt"); rc = c->c_aead_decrypt(c, iv, record, sizeof(*record), data, len - sizeof(*record) - maclen, mac); profile_add(1, "do_input post check_mac and decrypt"); if (rc == -1) { xprintf(XP_ALWAYS, "MAC check failed\n"); if (_conf.cf_debug) abort(); return -1; } /* MAC passed */ if (tc->tc_sess) { /* When we receive the first MACed packet, we know the other * side is setup so we can cache this session. */ tc->tc_sess->ts_used = 0; tc->tc_sess = NULL; } /* check record */ dlen = len - sizeof(*record); if (dlen != ntohs(record->tr_len)) return -1; if (record->tr_control != 0) return -1; if (dlen < maclen) return -1; dlen -= maclen; assert(dlen > 0); /* check flags */ dlen -= sizeof(*flags); if (dlen < 0) { xprintf(XP_ALWAYS, "Short packet\n"); return -1; } flags = (struct tc_flags*) (record + 1); clear = (uint8_t*) (flags + 1); if (flags->tf_flags & TCF_URG) { dlen -= 2; clear += 2; if (dlen < 0) { xprintf(XP_ALWAYS, "Short packett\n"); return -1; } } fixup_seq_add(tc, ip, tcp, len - dlen, 1); /* remove record, flags, MAC */ memmove(record, clear, dlen); set_ip_len(ip, (ip->ip_hl * 4) + (tcp->th_off * 4) + dlen); return 0; } static int do_input_encrypting(struct tc *tc, struct ip *ip, struct tcphdr *tcp) { struct tco_rekeystream *tr; tc->tc_key_active = &tc->tc_key_current; tr = rekey_input(tc, ip, tcp); if (check_mac_and_decrypt(tc, ip, tcp)) return DIVERT_DROP; rekey_input_post(tc, ip, tcp, tr); return DIVERT_MODIFY; } static int do_input_init2_sent(struct tc *tc, struct ip *ip, struct tcphdr *tcp) { int rc; if (tc->tc_retransmit) { assert(is_init(ip, tcp, TC_INIT1)); return DIVERT_DROP; } /* XXX check ACK */ enable_encryption(tc); rc = do_input_encrypting(tc, ip, tcp); assert(rc != DIVERT_DROP); return rc; } static int clamp_mss(struct tc *tc, struct ip *ip, struct tcphdr *tcp) { struct { uint8_t kind; uint8_t len; uint16_t mss; } *mss; if (tc->tc_mss_clamp == -1) return DIVERT_ACCEPT; if (!(tcp->th_flags & TH_SYN)) return DIVERT_ACCEPT; if (tc->tc_state == STATE_DISABLED) return DIVERT_ACCEPT; mss = find_opt(tcp, TCPOPT_MAXSEG); if (!mss) { mss = tcp_opts_alloc(tc, ip, tcp, sizeof(*mss)); if (!mss) { tc->tc_state = STATE_DISABLED; xprintf(XP_ALWAYS, "Can't clamp MSS\n"); return DIVERT_ACCEPT; } mss->kind = TCPOPT_MAXSEG; mss->len = sizeof(*mss); mss->mss = htons(tc->tc_mtu - sizeof(*ip) - sizeof(*tcp)); } return do_clamp_mss(tc, &mss->mss); } static void check_retransmit(struct tc *tc, struct ip *ip, struct tcphdr *tcp) { struct ip *ip2; struct tcphdr *tcp2; int seq; if (!tc->tc_retransmit) return; if (!(tcp->th_flags & TH_ACK)) return; ip2 = (struct ip*) tc->tc_retransmit->r_packet; tcp2 = (struct tcphdr*) ((unsigned long) ip2 + (ip2->ip_hl << 2)); seq = ntohl(tcp2->th_seq) + tcp_data_len(ip2, tcp2); if (ntohl(tcp->th_ack) < seq) return; kill_retransmit(tc); } static int tcp_input_pre(struct tc *tc, struct ip *ip, struct tcphdr *tcp) { int rc = DIVERT_ACCEPT; if (tcp->th_flags & TH_SYN) tc->tc_isn_peer = ntohl(tcp->th_seq) + 1; if (tcp->th_flags == TH_SYN && tc->tc_tcp_state == TCPSTATE_LASTACK) { tc_finish(tc); tc_reset(tc); } /* XXX check seq numbers, etc. */ check_retransmit(tc, ip, tcp); if (tcp->th_flags & TH_RST) { tc->tc_tcp_state = TCPSTATE_DEAD; return rc; } return rc; } static int tcp_input_post(struct tc *tc, struct ip *ip, struct tcphdr *tcp) { int rc = DIVERT_ACCEPT; if (clamp_mss(tc, ip, tcp) == DIVERT_MODIFY) rc = DIVERT_MODIFY; profile_add(2, "did clamp MSS"); /* Make sure kernel doesn't send shit until we connect */ switch (tc->tc_state) { case STATE_ENCRYPTING: case STATE_REKEY_SENT: case STATE_REKEY_RCVD: case STATE_DISABLED: break; default: tcp->th_win = htons(0); rc = DIVERT_MODIFY; break; } if (tcp->th_flags & TH_FIN) { switch (tc->tc_tcp_state) { case TCPSTATE_FIN1_SENT: tc->tc_tcp_state = TCPSTATE_FIN2_RCVD; break; case TCPSTATE_LASTACK: case TCPSTATE_FIN2_RCVD: break; default: tc->tc_tcp_state = TCPSTATE_FIN1_RCVD; break; } return rc; } if (tcp->th_flags & TH_RST) { tc->tc_tcp_state = TCPSTATE_DEAD; return rc; } switch (tc->tc_tcp_state) { case TCPSTATE_FIN2_SENT: if (tcp->th_flags & TH_ACK) tc->tc_tcp_state = TCPSTATE_DEAD; break; } return rc; } static int do_input_nextk1_sent(struct tc *tc, struct ip *ip, struct tcphdr *tcp) { struct tcpopt_eno *eno = find_eno(tcp); int len; if (!eno) { tc->tc_state = STATE_DISABLED; return DIVERT_ACCEPT; } len = eno->toe_len - sizeof(*eno); assert(len >= 0); check_app_support(tc, eno->toe_opts, len); /* see if we can resume the session */ if (len > 0 && eno->toe_opts[len - 1] == (tc->tc_sess->ts_pub_spec | TC_OPT_VLEN)) { enable_encryption(tc); return DIVERT_ACCEPT; } /* nope */ assert(tc->tc_sess->ts_used); tc->tc_sess->ts_used = 0; tc->tc_sess = NULL; if (!_conf.cf_nocache) xprintf(XP_DEFAULT, "Session caching failed\n"); return do_input_hello_sent(tc, ip, tcp); } static int do_input_nextk2_sent(struct tc *tc, struct ip *ip, struct tcphdr *tcp) { int rc; if (tcp->th_flags & TH_SYN) return DIVERT_ACCEPT; assert(tcp->th_flags & TH_ACK); enable_encryption(tc); rc = do_input_encrypting(tc, ip, tcp); assert(rc != DIVERT_DROP); return rc; } static int do_input(struct tc *tc, struct ip *ip, struct tcphdr *tcp) { int rc = DIVERT_DROP; int tcp_rc, tcp_rc2; tcp_rc = tcp_input_pre(tc, ip, tcp); /* an RST half way through the handshake */ if (tc->tc_tcp_state == TCPSTATE_DEAD && !connected(tc)) return tcp_rc; if (tcp_rc == DIVERT_DROP) return DIVERT_ACCEPT; /* kernel will deal with it */ switch (tc->tc_state) { case STATE_NEXTK1_RCVD: /* XXX check same SID */ case STATE_HELLO_RCVD: tc_reset(tc); /* XXX */ case STATE_CLOSED: rc = do_input_closed(tc, ip, tcp); break; case STATE_HELLO_SENT: rc = do_input_hello_sent(tc, ip, tcp); break; case STATE_PKCONF_RCVD: /* XXX syn ack re-TX check that we're getting the same shit */ assert(tcp->th_flags == (TH_SYN | TH_ACK)); rc = DIVERT_ACCEPT; break; case STATE_NEXTK1_SENT: rc = do_input_nextk1_sent(tc, ip, tcp); break; case STATE_NEXTK2_SENT: rc = do_input_nextk2_sent(tc, ip, tcp); break; case STATE_PKCONF_SENT: rc = do_input_pkconf_sent(tc, ip, tcp); break; case STATE_INIT1_SENT: rc = do_input_init1_sent(tc, ip, tcp); break; case STATE_INIT2_SENT: rc = do_input_init2_sent(tc, ip, tcp); break; case STATE_ENCRYPTING: case STATE_REKEY_SENT: case STATE_REKEY_RCVD: rc = do_input_encrypting(tc, ip, tcp); break; case STATE_DISABLED: rc = DIVERT_ACCEPT; break; default: xprintf(XP_ALWAYS, "Unknown state %d\n", tc->tc_state); abort(); } tcp_rc2 = tcp_input_post(tc, ip, tcp); if (tcp_rc == DIVERT_ACCEPT) tcp_rc = tcp_rc2; if (rc == DIVERT_ACCEPT) return tcp_rc; return rc; } static void fake_ip_tcp(struct ip *ip, struct tcphdr *tcp, int len) { int hl = sizeof(*ip) + sizeof(*tcp); memset(ip, 0, hl); ip->ip_hl = sizeof(*ip) / 4; ip->ip_len = htons(len + hl); tcp->th_flags = 0; tcp->th_off = sizeof(*tcp) / 4; } static void proxy_connection(struct tc *tc) { struct ip *ip = (struct ip *) tc->tc_rdr_buf; struct tcphdr *tcp = (struct tcphdr*) (ip + 1); unsigned char *p = (unsigned char*) (tcp + 1); unsigned char *rp = p; int rc; struct tc *peer = tc->tc_rdr_peer; struct tc *enc = NULL; int out = tc->tc_rdr_state == STATE_RDR_LOCAL; int rdlen = 1500 - 256; struct tc_record *rec = (struct tc_record*) p; if (tc->tc_state == STATE_ENCRYPTING) enc = tc; else if (peer->tc_state == STATE_ENCRYPTING) enc = peer; /* XXX fix variables / state */ if (peer->tc_rdr_inbound || tc->tc_rdr_inbound) out = !out; /* For incoming traffic, first read the header (record), then read the * rest */ if (enc && !out) { /* we're reading new data - read header */ if (tc->tc_rdr_len == 0) rdlen = sizeof(*rec); else { /* we already read the header - read the rest */ rdlen = ntohs(rec->tr_len) - (tc->tc_rdr_len - sizeof(*rec)); assert(rdlen > 0); rp += tc->tc_rdr_len; } } if ((rc = recv(tc->tc_rdr_fd->fd_fd, rp, rdlen, 0)) <= 0) { kill_rdr(tc); return; } /* incoming traffic, read the rest */ if (enc && !out) { /* we just started */ if (tc->tc_rdr_len == 0) { if (rc != rdlen) { kill_rdr(tc); return; } rdlen = ntohs(rec->tr_len); /* XXX */ if (rdlen > sizeof(tc->tc_rdr_buf) - 256) { xprintf(XP_ALWAYS, "Record too big %d\n", rdlen); kill_rdr(tc); return; } } tc->tc_rdr_len += rc; assert(tc->tc_rdr_len >= sizeof(*rec)); /* need to read more */ if ((tc->tc_rdr_len - sizeof(*rec)) < ntohs(rec->tr_len)) return; /* good to go! */ rc = tc->tc_rdr_len; tc->tc_rdr_len = 0; } /* XXX */ fake_ip_tcp(ip, tcp, rc); if (enc) { if (out) { rc = do_output_encrypting(enc, ip, tcp); rc = tcp_data_len(ip, tcp); enc->tc_rdr_tx += rc; } else { if (do_input_encrypting(enc, ip, tcp) == DIVERT_DROP) return; enc->tc_rdr_rx += rc; rc = tcp_data_len(ip, tcp); } } /* XXX assuming non-blocking write */ if (send(peer->tc_rdr_fd->fd_fd, p, rc, 0) != rc) { kill_rdr(tc); return; } } static void rdr_handshake_complete(struct tc *tc) { int tos = 0; if (!tc->tc_rdr_fd) return; #ifndef __WIN32__ /* stop intercepting handshake - all ENO opts have been set */ if (setsockopt(tc->tc_rdr_fd->fd_fd, IPPROTO_IP, IP_TOS, &tos, sizeof(tos)) == -1) { perror("setsockopt(IP_TOS)"); kill_rdr(tc); return; } #else win_handshake_complete(tc->tc_rdr_fd->fd_fd); #endif } static void rdr_process_init(struct tc *tc) { int headroom = 40; unsigned char buf[2048]; int len; struct ip *ip = (struct ip *) buf; struct tcphdr *tcp = (struct tcphdr*) (ip + 1); struct fd *fd = tc->tc_rdr_fd; struct tc_init1 *i1 = (struct tc_init1*) &buf[headroom]; int rem = sizeof(buf) - headroom; fd_set fds; struct timeval tv; /* make sure we read only init1 and not past it. * First, figure out how big init is. Then read that. */ if ((len = recv(fd->fd_fd, i1, sizeof(*i1), 0)) != sizeof(*i1)) goto __kill_rdr; rem -= sizeof(*i1); /* Read init */ len = ntohl(i1->i1_len); if (len > rem || len < sizeof(*i1) || len < 0) goto __kill_rdr; rem = len - sizeof(*i1); FD_ZERO(&fds); FD_SET(fd->fd_fd, &fds); tv.tv_sec = tv.tv_usec = 0; if (select(fd->fd_fd + 1, &fds, NULL, NULL, &tv) == -1) err(1, "select(2)"); if (!FD_ISSET(fd->fd_fd, &fds)) goto __kill_rdr; if (recv(fd->fd_fd, i1 + 1, rem, 0) != rem) goto __kill_rdr; /* XXX */ fake_ip_tcp(ip, tcp, len); switch (tc->tc_state) { /* outbound connections */ case STATE_INIT1_SENT: do_input_init1_sent(tc, ip, tcp); rdr_handshake_complete(tc); break; /* inbound connections */ case STATE_PKCONF_SENT: /* XXX sniff ENO */ if (is_init(ip, tcp, TC_INIT1)) { add_eno(tc, ip, tcp); } else { tc->tc_state = STATE_DISABLED; return; } do_input_pkconf_sent(tc, ip, tcp); if (tc->tc_state != STATE_INIT2_SENT) goto __kill_rdr; if (send(fd->fd_fd, tc->tc_rdr_buf, tc->tc_rdr_len, 0) != tc->tc_rdr_len) goto __kill_rdr; enable_encryption(tc); break; } return; __kill_rdr: xprintf(XP_ALWAYS, "Error reading INIT %p\n", tc); kill_rdr(tc); return; } static void rdr_local_handler(struct fd *fd) { struct tc *tc = fd->fd_priv; struct tc *peer = tc->tc_rdr_peer; if (tc->tc_state == STATE_NEXTK2_SENT) enable_encryption(tc); if (peer->tc_state == STATE_NEXTK2_SENT) enable_encryption(peer); switch (tc->tc_state) { case STATE_INIT1_SENT: case STATE_PKCONF_SENT: rdr_process_init(tc); return; } if (tc->tc_state == STATE_ENCRYPTING || peer->tc_state == STATE_ENCRYPTING || tc->tc_state == STATE_RDR_PLAIN || peer->tc_state == STATE_RDR_PLAIN) { proxy_connection(tc); return; } /* XXX we should really fix this - shouldn't get here randomly. * We should: 1. check if socket is dead / alive * 2. not put this thing in select until we're ready. * 3. def not spin the CPU */ #if 0 xprintf(XP_ALWAYS, "unhandled RDR %d:%d\n", tc->tc_state, peer->tc_state); kill_rdr(tc); #endif } static void rdr_remote_handler(struct fd *fd) { struct tc *tc = fd->fd_priv; if (!tc->tc_rdr_connected) { rdr_check_connect(tc); return; } rdr_local_handler(fd); } static void rdr_new_connection(struct tc *tc, struct ip *ip, struct tcphdr *tcp, int flags) { struct sockaddr_in from, to; int s, rc; struct fd *sock; socklen_t len; int tos = IPTOS_RELIABILITY; struct tc *peer; int in = flags & DF_IN; /* figure out where connection is going to */ memset(&to, 0, sizeof(to)); memset(&from, 0, sizeof(from)); from.sin_family = to.sin_family = PF_INET; from.sin_port = tcp->th_sport; from.sin_addr.s_addr = ip->ip_src.s_addr; to.sin_port = tcp->th_dport; to.sin_addr.s_addr = ip->ip_dst.s_addr; if (_divert->orig_dest && _divert->orig_dest(&to, ip, &flags) == -1) { /* XXX this is retarded - we rely on the SYN retransmit to kick * things off again */ tc->tc_rdr_drop_sa = 1; xprintf(XP_ALWAYS, "Can't find RDR\n"); return; } in = flags & DF_IN; xprintf(XP_NOISY, "RDR orig dest %s:%d\n", inet_ntoa(to.sin_addr), ntohs(to.sin_port)); /* connect to destination */ if ((s = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP)) == -1) err(1, "socket()"); set_nonblocking(s); #ifndef __WIN32__ /* signal handshake to firewall */ if (setsockopt(s, IPPROTO_IP, IP_TOS, &tos, sizeof(tos)) == -1) err(1, "setsockopt(IP_TOS)"); #endif /* XXX bypass firewall */ if (in) { memcpy(&tc->tc_rdr_addr, &to, sizeof(tc->tc_rdr_addr)); to.sin_addr.s_addr = inet_addr("127.0.0.1"); } if ((rc = connect(s, (struct sockaddr*) &to, sizeof(to))) == -1) { #ifdef __WIN32__ if (WSAGetLastError() != WSAEWOULDBLOCK) { #else if (errno != EINPROGRESS) { #endif close(s); tc->tc_state = STATE_DISABLED; return; } } #ifdef __WIN32__ win_dont_rdr(s); #endif /* XXX */ if (in && !tc->tc_rdr_drop_sa) { to.sin_port = htons(REDIRECT_PORT); } else { len = sizeof(from); if (getsockname(s, (struct sockaddr*) &from, &len) == -1) err(1, "getsockname()"); #ifdef __WIN32__ from.sin_addr.s_addr = win_local_ip(); #endif } /* create peer */ peer = do_new_connection(from.sin_addr.s_addr, from.sin_port, to.sin_addr.s_addr, to.sin_port, in); xprintf(XP_NOISY, "Adding a connection %s:%d", inet_ntoa(from.sin_addr), ntohs(from.sin_port)); xprintf(XP_NOISY, "->%s:%d [%p]%s\n", inet_ntoa(to.sin_addr), ntohs(to.sin_port), peer, in ? " inbound" : ""); sock = add_fd(s, rdr_remote_handler); sock->fd_priv = peer; sock->fd_state = FDS_WRITE; peer->tc_rdr_fd = sock; peer->tc_rdr_state = STATE_RDR_REMOTE; peer->tc_rdr_peer = tc; peer->tc_rdr_inbound = in; memcpy(&peer->tc_rdr_addr, &to, sizeof(peer->tc_rdr_addr)); /* save SYN to replay once connection is successful */ len = ntohs(ip->ip_len); assert(len < sizeof(peer->tc_rdr_buf)); memcpy(peer->tc_rdr_buf, ip, len); peer->tc_rdr_len = len; if (!in) { ip = (struct ip *) peer->tc_rdr_buf; tcp = get_tcp(ip); ip->ip_dst.s_addr = to.sin_addr.s_addr; tcp->th_dport = to.sin_port; checksum_packet(tc, ip, tcp); } tc->tc_rdr_peer = peer; tc->tc_rdr_state = STATE_RDR_LOCAL; return; } static int handle_syn_ack(struct tc *tc, struct ip *ip, struct tcphdr *tcp) { switch (tc->tc_state) { case STATE_HELLO_RCVD: return do_output_hello_rcvd(tc, ip, tcp); case STATE_NEXTK2_SENT: /* syn ack rtx */ case STATE_NEXTK1_RCVD: return do_output_nextk1_rcvd(tc, ip, tcp); case STATE_CLOSED: case STATE_RDR_PLAIN: break; default: return DIVERT_DROP; } return DIVERT_ACCEPT; } static int rdr_syn_ack(struct tc *tc, struct ip *ip, struct tcphdr *tcp) { struct tc *peer = tc->tc_rdr_peer; /* Linux: we let the SYN through but not the SYN ACK. We need to let * the SYN through so we can get orig dest. */ if (tc->tc_rdr_state == STATE_RDR_NONE) { tc->tc_rdr_drop_sa = 1; return DIVERT_DROP; } if (tc->tc_rdr_drop_sa) return handle_syn_ack(tc, ip, tcp); if (tc->tc_rdr_inbound) { int rc; assert(peer); rc = handle_syn_ack(peer, ip, tcp); if (rc == DIVERT_DROP) return DIVERT_DROP; /* we're still redirecting manually */ ip->ip_src.s_addr = peer->tc_rdr_addr.sin_addr.s_addr; tcp->th_sport = peer->tc_rdr_addr.sin_port; checksum_packet(tc, ip, tcp); return DIVERT_MODIFY; } switch (tc->tc_state) { case STATE_HELLO_SENT: do_input_hello_sent(tc, ip, tcp); break; case STATE_NEXTK1_SENT: do_input_nextk1_sent(tc, ip, tcp); /* XXX wait to send an ACK */ if (tc->tc_state == STATE_ENCRYPTING) rdr_handshake_complete(tc); break; } if (tc->tc_state == STATE_DISABLED) { tc->tc_state = STATE_RDR_PLAIN; tc->tc_rdr_len = 0; rdr_handshake_complete(tc); } return DIVERT_ACCEPT; } static int rdr_ack(struct tc *tc, struct ip *ip, struct tcphdr *tcp) { /* send init1 */ if (tc->tc_state == STATE_PKCONF_RCVD) { do_output_pkconf_rcvd(tc, ip, tcp, 0); if (send(tc->tc_rdr_fd->fd_fd, tc->tc_rdr_buf, tc->tc_rdr_len, 0) != tc->tc_rdr_len) { kill_rdr(tc); return DIVERT_DROP; } /* drop packet - let's add ENO to it */ return DIVERT_DROP; } /* add eno to init1 */ if (tc->tc_state == STATE_INIT1_SENT) { if (is_init(ip, tcp, TC_INIT1)) return do_output_pkconf_rcvd(tc, ip, tcp, 1); } return DIVERT_DROP; } static int rdr_syn(struct tc *tc, struct ip *ip, struct tcphdr *tcp, int flags) { int in = flags & DIR_IN; /* new connection */ if (tc->tc_rdr_state == STATE_RDR_NONE) rdr_new_connection(tc, ip, tcp, flags); if (tc->tc_rdr_state == STATE_RDR_NONE) return DIVERT_ACCEPT; /* incoming */ if (in) { /* drop the locally generated SYN */ if (tc->tc_rdr_state == STATE_RDR_LOCAL && !tc->tc_rdr_drop_sa && !tc->tc_rdr_peer->tc_rdr_inbound) { return DIVERT_DROP; } switch (tc->tc_state) { case STATE_NEXTK1_RCVD: /* XXX check same SID */ case STATE_HELLO_RCVD: case STATE_CLOSED: do_input_closed(tc, ip, tcp); if (tc->tc_state == STATE_DISABLED) { tc->tc_state = STATE_RDR_PLAIN; tc->tc_rdr_len = 0; } /* XXX clamp MSS */ return DIVERT_ACCEPT; } return DIVERT_DROP; } /* outbound */ /* Add ENO to SYN */ if (tc->tc_rdr_state == STATE_RDR_REMOTE) { switch (tc->tc_state) { case STATE_HELLO_SENT: case STATE_NEXTK1_SENT: case STATE_CLOSED: return do_output_closed(tc, ip, tcp); } } /* drop original non-ENO syn */ return DIVERT_DROP; } static int rdr_packet(struct tc *tc, struct ip *ip, struct tcphdr *tcp, int flags) { /* our own connections */ if (ip->ip_dst.s_addr == inet_addr("127.0.0.1") && ip->ip_dst.s_addr == ip->ip_src.s_addr) return DIVERT_ACCEPT; if (tcp->th_flags == TH_SYN) return rdr_syn(tc, ip, tcp, flags); if (tcp->th_flags == (TH_SYN | TH_ACK)) return rdr_syn_ack(tc, ip, tcp); if (tcp->th_flags & TH_ACK) return rdr_ack(tc, ip, tcp); return DIVERT_DROP; } int tcpcrypt_packet(void *packet, int len, int flags) { struct ip *ip = packet; struct tc *tc; struct tcphdr *tcp; int rc; profile_add(1, "tcpcrypt_packet in"); if (ntohs(ip->ip_len) > len) goto __bad_packet; /* len can be larger - Ethernet padding (e.g., RSTs) */ len = ntohs(ip->ip_len); if (ip->ip_p != IPPROTO_TCP) return DIVERT_ACCEPT; tcp = (struct tcphdr*) ((unsigned long) ip + (ip->ip_hl << 2)); if ((unsigned long) tcp - (unsigned long) ip + (tcp->th_off << 2) > len) goto __bad_packet; tc = lookup_connection(ip, tcp, flags); /* new connection */ if (!tc) { profile_add(1, "tcpcrypt_packet found no connection"); if (_conf.cf_disable) return DIVERT_ACCEPT; if (tcp->th_flags != TH_SYN) { xprintf(XP_NOISY, "Ignoring established connection: "); print_packet(ip, tcp, flags, tc); return DIVERT_ACCEPT; } tc = new_connection(ip, tcp, flags); profile_add(1, "tcpcrypt_packet new connection"); } else profile_add(1, "tcpcrypt_packet found connection"); print_packet(ip, tcp, flags, tc); tc->tc_dir_packet = (flags & DF_IN) ? DIR_IN : DIR_OUT; tc->tc_csum = 0; if (_conf.cf_rdr) { rc = rdr_packet(tc, ip, tcp, flags); } else { if (flags & DF_IN) rc = do_input(tc, ip, tcp); else rc = do_output(tc, ip, tcp); } /* XXX for performance measuring - ensure sane results */ assert(!_conf.cf_debug || (tc->tc_state != STATE_DISABLED)); profile_add(1, "tcpcrypt_packet did processing"); if (rc == DIVERT_MODIFY) { checksum_tcp(tc, ip, tcp); profile_add(1, "tcpcrypt_packet did checksum"); } if (tc->tc_tcp_state == TCPSTATE_DEAD || tc->tc_state == STATE_DISABLED) remove_connection(ip, tcp, flags); profile_print(); return rc; __bad_packet: xprintf(XP_ALWAYS, "Bad packet 2\n"); return DIVERT_ACCEPT; /* kernel will drop / deal with it */ } static struct tc *sockopt_get(struct tcpcrypt_ctl *ctl) { struct tc *tc = sockopt_find(ctl); if (tc) { /* XXX it depends */ if (tc->tc_rdr_peer) return tc->tc_rdr_peer; return tc; } if (ctl->tcc_sport == 0) return NULL; tc = get_tc(); assert(tc); _sockopts[ctl->tcc_sport] = tc; tc_init(tc); return tc; } static int do_opt(int set, void *p, int len, void *val, unsigned int *vallen) { if (set) { if (*vallen > len) return -1; memcpy(p, val, *vallen); return 0; } /* get */ if (len > *vallen) len = *vallen; memcpy(val, p, len); *vallen = len; return 0; } static int do_sockopt(int set, struct tc *tc, int opt, void *val, unsigned int *len) { int v; int rc; /* do not allow options during connection */ switch (tc->tc_state) { case STATE_CLOSED: case STATE_ENCRYPTING: case STATE_DISABLED: case STATE_REKEY_SENT: case STATE_REKEY_RCVD: case STATE_RDR_PLAIN: break; default: return EBUSY; } switch (opt) { case TCP_CRYPT_ENABLE: if (tc->tc_state == STATE_DISABLED) v = 0; else v = 1; rc = do_opt(set, &v, sizeof(v), val, len); if (rc) return rc; /* XXX can't re-enable */ if (tc->tc_state == STATE_CLOSED && !v) tc->tc_state = STATE_DISABLED; break; case TCP_CRYPT_APP_SUPPORT: if (set) { if (tc->tc_state != STATE_CLOSED) return -1; return do_opt(set, &tc->tc_app_support, sizeof(tc->tc_app_support), val, len); } else { unsigned char *p = val; if (!connected(tc)) return -1; if (*len < (tc->tc_sid.s_len + 1)) return -1; *p++ = (char) tc->tc_app_support; memcpy(p, tc->tc_sid.s_data, tc->tc_sid.s_len); *len = tc->tc_sid.s_len + 1; return 0; } case TCP_CRYPT_NOCACHE: if (tc->tc_state != STATE_CLOSED) return -1; return do_opt(set, &tc->tc_nocache, sizeof(tc->tc_nocache), val, len); case TCP_CRYPT_CMODE: if (tc->tc_state != STATE_CLOSED) return -1; switch (tc->tc_cmode) { case CMODE_ALWAYS: case CMODE_ALWAYS_NK: v = 1; break; default: v = 0; break; } rc = do_opt(set, &v, sizeof(v), val, len); if (rc) return rc; if (!set) break; if (v) tc->tc_cmode = CMODE_ALWAYS; else tc->tc_cmode = CMODE_DEFAULT; break; case TCP_CRYPT_SESSID: if (set) return -1; if (!connected(tc)) return -1; return do_opt(set, tc->tc_sid.s_data, tc->tc_sid.s_len, val, len); default: return -1; } return 0; } int tcpcryptd_setsockopt(struct tcpcrypt_ctl *s, int opt, void *val, unsigned int len) { struct tc *tc; switch (opt) { case TCP_CRYPT_RESET: tc = sockopt_find(s); if (!tc) return -1; tc_finish(tc); put_tc(tc); sockopt_clear(s->tcc_sport); return 0; } tc = sockopt_get(s); if (!tc) return -1; return do_sockopt(1, tc, opt, val, &len); } static int do_tcpcrypt_netstat(struct conn *c, void *val, unsigned int *len) { struct tc_netstat *n = val; int l = *len; int copied = 0; struct tc *tc; int tl; while (c) { tc = c->c_tc; if (!connected(tc)) goto __next; if (tc->tc_tcp_state == TCPSTATE_LASTACK) goto __next; tl = sizeof(*n) + tc->tc_sid.s_len; if (l < tl) break; n->tn_sip.s_addr = c->c_addr[0].sin_addr.s_addr; n->tn_dip.s_addr = c->c_addr[1].sin_addr.s_addr; n->tn_sport = c->c_addr[0].sin_port; n->tn_dport = c->c_addr[1].sin_port; n->tn_len = htons(tc->tc_sid.s_len); if (_conf.cf_rdr) { struct tc *peer = tc->tc_rdr_peer; switch (peer->tc_rdr_state) { case STATE_RDR_LOCAL: n->tn_sip.s_addr = peer->tc_rdr_addr.sin_addr .s_addr; n->tn_sport = peer->tc_rdr_addr.sin_port; break; case STATE_RDR_REMOTE: if (ntohs(n->tn_sport) == REDIRECT_PORT) n->tn_sport = peer->tc_rdr_addr .sin_port; break; } } memcpy(n->tn_sid, tc->tc_sid.s_data, tc->tc_sid.s_len); n = (struct tc_netstat*) ((unsigned long) n + tl); copied += tl; l -= tl; __next: c = c->c_next; } *len -= copied; return copied; } /* XXX slow */ static int tcpcrypt_netstat(void *val, unsigned int *len) { int i; int num = sizeof(_connection_map) / sizeof(*_connection_map); struct conn *c; int copied = 0; unsigned char *v = val; for (i = 0; i < num; i++) { c = _connection_map[i]; if (!c) continue; copied += do_tcpcrypt_netstat(c->c_next, &v[copied], len); } *len = copied; return 0; } int tcpcryptd_getsockopt(struct tcpcrypt_ctl *s, int opt, void *val, unsigned int *len) { struct tc *tc; switch (opt) { case TCP_CRYPT_NETSTAT: return tcpcrypt_netstat(val, len); } tc = sockopt_get(s); if (!tc) return -1; return do_sockopt(0, tc, opt, val, len); } static int get_pref(struct crypt_ops *ops) { int pref = 0; /* XXX implement */ return pref; } static void do_register_cipher(struct ciphers *c, struct cipher_list *cl) { struct ciphers *x; int pref = 0; x = xmalloc(sizeof(*x)); memset(x, 0, sizeof(*x)); x->c_cipher = cl; while (c->c_next) { if (pref >= get_pref(NULL)) break; c = c->c_next; } x->c_next = c->c_next; c->c_next = x; } void tcpcrypt_register_cipher(struct cipher_list *c) { int type = c->c_type; switch (type) { case TYPE_PKEY: do_register_cipher(&_ciphers_pkey, c); break; case TYPE_SYM: do_register_cipher(&_ciphers_sym, c); break; default: assert(!"Unknown type"); break; } } static void init_cipher(struct ciphers *c) { struct crypt_pub *cp; struct crypt_sym *cs; uint8_t spec = c->c_cipher->c_id; switch (c->c_cipher->c_type) { case TYPE_PKEY: c->c_speclen = 1; cp = c->c_cipher->c_ctr(); crypt_pub_destroy(cp); break; case TYPE_SYM: c->c_speclen = 1; cs = crypt_new(c->c_cipher->c_ctr); crypt_sym_destroy(cs); break; default: assert(!"unknown type"); abort(); } memcpy(c->c_spec, ((unsigned char*) &spec) + sizeof(spec) - c->c_speclen, c->c_speclen); } static void do_init_ciphers(struct ciphers *c) { struct tc *tc = get_tc(); struct ciphers *prev = c; struct ciphers *head = c; c = c->c_next; while (c) { /* XXX */ if (TC_DUMMY != TC_DUMMY) { if (!_conf.cf_dummy) { /* kill dummy */ prev->c_next = c->c_next; free(c); c = prev->c_next; continue; } else { /* leave all but dummy */ head->c_next = c; c->c_next = NULL; return; } } else if (!_conf.cf_dummy) { /* standard path */ init_cipher(c); } prev = c; c = c->c_next; } put_tc(tc); } static void init_ciphers(void) { do_init_ciphers(&_ciphers_pkey); do_init_ciphers(&_ciphers_sym); do_add_ciphers(&_ciphers_pkey, &_pkey, &_pkey_len, sizeof(*_pkey), (uint8_t*) _pkey + sizeof(_pkey)); do_add_ciphers(&_ciphers_sym, &_sym, &_sym_len, sizeof(*_sym), (uint8_t*) _sym + sizeof(_sym)); } static void init_random(void) { unsigned int seed = 0; const char *path; FILE *f; size_t nread; #ifdef __WIN32__ seed = time(NULL); #else path = _conf.cf_random_path; if (path) { if (!(f = fopen(path, "r"))) { err(1, "Could not open random device %s", path); } } else { path = "/dev/urandom"; if (!(f = fopen(path, "r"))) { path = "/dev/random"; if (!(f = fopen(path, "r"))) { errx(1, "Could not find a random device"); } } } if (f) { xprintf(XP_ALWAYS, "Reading random seed from %s ", path); nread = fread((void*) &seed, sizeof(seed), 1, f); if (nread != 1) { errx(1, "Could not read random seed from %s", path); } xprintf(XP_ALWAYS, "\n"); } #endif if (seed) { srand(seed); xprintf(XP_DEBUG, "Random seed set to %u\n", seed); } else { errx(1, "Could not provide random seed"); } } static struct tc *lookup_connection_rdr(struct sockaddr_in *s_in) { int i, j; struct conn *c; /* XXX data strcuture fail */ for (i = 0; i < sizeof(_connection_map) / sizeof(*_connection_map); i++) { c = _connection_map[i]; if (!c) continue; while ((c = c->c_next)) { for (j = 0; j < 2; j++) { struct sockaddr_in *s = &c->c_addr[j]; if (s->sin_addr.s_addr == s_in->sin_addr.s_addr && s->sin_port == s_in->sin_port) { return c->c_tc; } } } } return NULL; } static void redirect_listen_handler(struct fd *fd) { struct sockaddr_in s_in; socklen_t len = sizeof(s_in); int dude; struct tc *tc, *peer; /* Accept redirected connection */ if ((dude = accept(fd->fd_fd, (struct sockaddr*) &s_in, &len)) == -1) { xprintf(XP_ALWAYS, "accept() failed\n"); return; } /* try to find him */ tc = lookup_connection_rdr(&s_in); if (!tc) { xprintf(XP_ALWAYS, "Couldn't find dude %s:%d\n", inet_ntoa(s_in.sin_addr), ntohs(s_in.sin_port)); close(dude); return; } peer = tc->tc_rdr_peer; if (!peer) { xprintf(XP_ALWAYS, "Redirected connection from %s:%d: tc %p has no peer; " "closing connection\n", inet_ntoa(s_in.sin_addr), ntohs(s_in.sin_port), tc); close(dude); kill_rdr(tc); return; } if (tc->tc_rdr_inbound) { struct tc *tmp = peer; peer = tc; tc = tmp; } /* XXX */ if (!peer->tc_rdr_fd) { close(dude); kill_rdr(peer); return; } assert(peer); assert(peer->tc_rdr_peer == tc); assert(peer->tc_rdr_fd); assert(!tc->tc_rdr_fd); fd = add_fd(dude, rdr_local_handler); fd->fd_priv = tc; tc->tc_rdr_fd = fd; memcpy(&tc->tc_rdr_addr, &s_in, sizeof(tc->tc_rdr_addr)); xprintf(XP_NOISY, "Redirect proxy accepted %s:%d", inet_ntoa(tc->tc_rdr_addr.sin_addr), ntohs(tc->tc_rdr_addr.sin_port)); xprintf(XP_NOISY, "->%s:%d\n", inet_ntoa(peer->tc_rdr_addr.sin_addr), ntohs(peer->tc_rdr_addr.sin_port)); /* wake up peer */ if (peer->tc_rdr_fd->fd_state == FDS_IDLE) peer->tc_rdr_fd->fd_state = FDS_READ; } static void init_rdr(void) { int s, one = 1; struct sockaddr_in s_in; if (!_conf.cf_rdr) return; if ((s = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP)) == -1) err(1, "socket()"); if (setsockopt(s, SOL_SOCKET, SO_REUSEADDR, &one, sizeof(one)) == -1) err(1, "setsockopt()"); memset(&s_in, 0, sizeof(s_in)); s_in.sin_family = PF_INET; s_in.sin_port = htons(REDIRECT_PORT); s_in.sin_addr.s_addr = INADDR_ANY; if (bind(s, (struct sockaddr*) &s_in, sizeof(s_in)) == -1) err(1, "bind()"); if (listen(s, 5) == -1) err(1, "listen()"); add_fd(s, redirect_listen_handler); } void tcpcrypt_init(void) { init_random(); init_ciphers(); init_rdr(); } tcpcrypt-0.5/src/util.h0000644000175200017520000000017412742073006014204 0ustar sorbosorbo#ifndef __TCPCRYPT_UTIL_H__ #define __TCPCRYPT_UTIL_H__ extern void *xmalloc(size_t sz); #endif /* __TCPCRYPT_UTIL_H__ */ tcpcrypt-0.5/src/crypto.c0000644000175200017520000000175012742073006014543 0ustar sorbosorbo#include #include #include #include #include #include #include #include "inc.h" #include "util.h" #include "tcpcrypt_ctl.h" #include "tcpcrypt.h" #include "tcpcryptd.h" #include "crypto.h" static struct cipher_list _ciphers; struct cipher_list *crypt_cipher_list(void) { return _ciphers.c_next; } struct crypt *crypt_init(int sz) { struct crypt *c = xmalloc(sizeof(*c)); memset(c, 0, sizeof(*c)); if (sz) { c->c_priv = xmalloc(sz); memset(c->c_priv, 0, sz); } return c; } void crypt_register(int type, uint8_t id, crypt_ctr ctr) { struct cipher_list *c = xmalloc(sizeof(*c)); c->c_type = type; c->c_id = id; c->c_ctr = ctr; c->c_next = _ciphers.c_next; _ciphers.c_next = c; } struct cipher_list *crypt_find_cipher(int type, unsigned int id) { struct cipher_list *c = _ciphers.c_next; while (c) { if (c->c_type == type && c->c_id == id) return c; c = c->c_next; } return NULL; } tcpcrypt-0.5/src/tcpcrypt_strings.h0000644000175200017520000000057412742073006016654 0ustar sorbosorbo#ifndef __TCPCRYPT_TCPCRYPT_STRINGS_H__ #define __TCPCRYPT_TCPCRYPT_STRINGS_H__ static char *REQS[] = { "GET /check HTTP/1.0\r\n" "Host: check.tcpcrypt.org\r\n" "\r\n", "MORTEasldkfjasldkfjaslkfjaslfkjasdlfkjas", "GHGHHGHGHGHREHEHGEHRGHERHGHERG", }; static char *TEST_REPLY = "HTTP/1.0 200 OK\r\n" "\r\n"; #endif /* __TCPCRYPT_TCPCRYPT_STRINGS_H__ */ tcpcrypt-0.5/src/tcpcrypt_version.h.in0000644000175200017520000000023512742073006017247 0ustar sorbosorbo#ifndef __SRC_TCPCRYPT_VERSION_H__ #define __SRC_TCPCRYPT_VERSION_H__ #define TCPCRYPT_VERSION "@PACKAGE_VERSION@" #endif /* __SRC_TCPCRYPT_VERSION_H__ */ tcpcrypt-0.5/src/crypto_umac.c0000644000175200017520000000405012742073006015544 0ustar sorbosorbo#include #include #include #include #include #include #include #include "contrib/umac.h" #include "inc.h" #include "tcpcrypt_ctl.h" #include "tcpcrypt.h" #include "tcpcryptd.h" #include "crypto.h" #include "profile.h" #if 0 #define MAC_SIZE 8 static struct tc_scipher _umac_spec = { 0x0 }; static struct crypt_prop _umac_prop = { .cp_ivlen = 0, .cp_ivmode = IVMODE_NONE, .cp_maclen = MAC_SIZE, .cp_cipherlen = 0, .cp_preference = -1, }; struct umac_priv { umac_ctx_t hp_ctx; }; static void umac_init(struct tc *tc) { struct umac_priv *hp; hp = crypto_priv_init(tc, sizeof(*hp)); } static void umac_finish(struct tc *tc) { struct umac_priv *hp = crypto_priv(tc); if (!hp) return; if (hp->hp_ctx) umac_delete(hp->hp_ctx); free(hp); } static void umac_mac(struct tc *tc, struct iovec *iov, int num, void *iv, void *out, int *outlen) { struct umac_priv *hp = crypto_priv(tc); char nonce[8]; if (*outlen < MAC_SIZE) { *outlen = MAC_SIZE; return; } memset(nonce, 0, sizeof(nonce)); umac_reset(hp->hp_ctx); while (num--) { umac_update(hp->hp_ctx, iov->iov_base, iov->iov_len); iov++; } umac_final(hp->hp_ctx, out, nonce); *outlen = MAC_SIZE; } static void *umac_spec(void) { return &_umac_spec; } static int umac_type(void) { return TYPE_MAC; } static int umac_set_key(struct tc *tc, void *key, int len) { struct umac_priv *hp = crypto_priv(tc); if (hp->hp_ctx) umac_delete(hp->hp_ctx); hp->hp_ctx = umac_new(key); assert(hp->hp_ctx); return 0; } static struct crypt_prop *umac_prop(struct tc *tc) { return &_umac_prop; } struct crypt_ops _umac_ops = { .co_init = umac_init, .co_finish = umac_finish, .co_mac = umac_mac, .co_spec = umac_spec, .co_type = umac_type, .co_set_key = umac_set_key, .co_crypt_prop = umac_prop, }; static void __umac_init(void) __attribute__ ((constructor)); static void __umac_init(void) { // crypto_register(&_umac_ops); } #endif tcpcrypt-0.5/src/tcpcryptd.man.md0000644000175200017520000000671312742073006016173 0ustar sorbosorbo% tcpcryptd(8) % # NAME __tcpcryptd__ - Implement the tcpcrypt protocol by transparently modifying network I/O # SYNOPSIS __tcpcryptd__ [_options_] # OPTIONS A list of all options is produced by: > __tcpcryptd -h__ Configuration of packet-diversion rules allows the system administrator to control which TCP connections are protected by __tcpcryptd__. The daemon receives packets for transformation via a "divert port", configurable with __-p__ _port_. The daemon communicates with user programs via a "control socket", configurable with __-u__ _socket_address_. If _socket_address_ begins with "/", it is interpreted as a filesystem path pointing to a unix-domain socket; if it is of the form ":_port_", it is interpreted as the internet address localhost:_port_. Verbosity may be increased with multiple __-v__ options. A "phone-home" test will be performed at daemon startup to confirm end-to-end functionality of the implementation (by default, with the authors' server), but may be redirected to another test-server with __-s__ _hostname_ or disabled completely with __-f__. # DESCRIPTION The __tcpcryptd__ daemon transforms TCP segments via a kernel "divert" port in order to implement "opportunistic encryption" according to the _tcpcrypt_ protocol. For a peer that signals in the connection handshake that it has support for the _tcpcrypt_ protocol, ephemeral keys are exchanged and used to protect the confidentiality and integrity of the connection's application data. (The protocol protects the integrity of parts of the TCP header as well.) When a peer does not indicate support for the protocol, the daemon will pass the remainder of the connection unperturbed (and thus unprotected). Application software need not be modified to take advantage of this facility, which provides confidentiality in the face of passive network attackers (those who cannot modify network data in transit). But in order to protect communication from active attackers, the application must intentionally authenticate the connection as described below. ## Authentication The _tcpcrypt_ protocol does not itself protect communications against "active attackers", that is, those who are able to modify network packets in transit. Such an attacker may perform a "man in the middle" attack that allows her to behave as the endpoint of the encrypted connection and thus compromise its security. However, applications aware of _tcpcrypt_ may authenticate the connection in whatever manner they choose, aided by an identifier for the connection that is derived from the protocol and made available by __tcpcryptd__: A _session id_ is derived from the ephemeral keys used to encrypt each connection protected by _tcpcrypt_. This identifier is (probabalistically) unique over all connections, is not secret, and may be extracted by applications via the user library __libtcpcrypt__. Session ids for all active connections may also be listed with the netstat-like utility __tcnetstat__(8). Connection peers may ensure they are communicating securely with each other (enjoying confidentiality and integrity in the face of active network attackers) by confirming that the _tcpcrypt_ session ids derived at each end are identical. For example, they may bind the session id together with a shared secret such as a password, sign it with public keys, use a voice connection to speak a fingerprint of it, or simply record it for later confirmation. # SEE ALSO __tcnetstat__(8), [http://tcpcrypt.org/](http://tcpcrypt.org/)