ž ¬ÿfæ"c@sÅddlZddlZddlZddlZejdkrfdd„Zdd„Zdd„Znejd kr„d d„Znejd krÁejd krÁdd l m Z dd„ZnÞejd krŸddl Z ddl Z ddlZdd„Zejdkrdd„Zn dd„Zejjd$ƒrWdd„Zdd„ZqŸejdkr„dd„Zd%dd„ZqŸdd„Zd d„Znd!d"„Zed#krÁeƒndS(&iNuntcCs¾d}tjj|ƒ}|d kr(dS|t|ƒ}tj|d…jddƒ\}}t|dd …ƒd}t|dd…ƒd}|dkr¦d }n|dkrº||SdS( uÏReturn the version of MSVC that was used to build Python. For Python 2.3 and up, the version number is included in sys.version. For earlier versions, assume the compiler is MSVC 6. uMSC v.iiNu iig$@iiÿÿÿÿiþÿÿÿ(usysuversionufindulenusplituintuNone(uprefixuiusurestu majorVersionu minorVersion((u0/opt/alt/python33/lib64/python3.3/ctypes/util.pyu_get_build_versions %   u_get_build_versioncCsotƒ}|dkrdS|dkr.d}nd|d}ddl}d|jjkrg|d7}n|d S( u%Return the name of the VC runtime dlliumsvcrtumsvcr%di iNu_d.pydudu.dll(u_get_build_versionuNoneuimportlib.machineryu machineryuEXTENSION_SUFFIXES(uversionuclibnameu importlib((u0/opt/alt/python33/lib64/python3.3/ctypes/util.pyu find_msvcrts      u find_msvcrtcCs¡|dkrtƒSx‡tjdjtjƒD]l}tjj||ƒ}tjj|ƒr^|S|jƒj dƒryq-n|d}tjj|ƒr-|Sq-WdS(NucumuPATHu.dll(ucum( u find_msvcrtuosuenvironusplitupathsepupathujoinuisfileuloweruendswithuNone(unameu directoryufname((u0/opt/alt/python33/lib64/python3.3/ctypes/util.pyu find_library0s   u find_libraryucecCs|S(N((uname((u0/opt/alt/python33/lib64/python3.3/ctypes/util.pyu find_libraryFsuposixudarwin(u dyld_findc Cs\d|d|d||fg}x4|D],}yt|ƒSWq(tk rSw(Yq(Xq(WdS(Nu lib%s.dylibu%s.dylibu%s.framework/%s(u _dyld_findu ValueErroruNone(unameupossible((u0/opt/alt/python33/lib64/python3.3/ctypes/util.pyu find_libraryKs   c Csdtj|ƒ}tjƒ\}}tj|ƒd|d|}z3tj|ƒ}z|jƒ}Wd|jƒ}XWdytj|ƒWn=t k rÊ}z|j t j kr¸‚nWYdd}~XnXX|dkrçt dƒ‚ntj ||ƒ} | sdS| jdƒS(Nu[^\(\)\s]*lib%s\.[^\(\)\s]*u‚if type gcc >/dev/null 2>&1; then CC=gcc; elif type cc >/dev/null 2>&1; then CC=cc;else exit 10; fi;LANG=C LC_ALL=C $CC -Wl,-t -o u 2>&1 -li ugcc or cc command not foundi(ureuescapeutempfileumkstempuosucloseupopenureaduunlinkuOSErroruerrnouENOENTusearchuNoneugroup( unameuexprufdoutuccoutucmdufutraceurvueures((u0/opt/alt/python33/lib64/python3.3/ctypes/util.pyu _findLib_gccZs(  u _findLib_gccusunos5c Csj|s dSd|}tjtj|ƒƒ}|jƒ}WdQXtjd|ƒ}|s]dS|jdƒS(Nu#/usr/ccs/bin/dump -Lpv 2>/dev/null u\[.*\]\sSONAME\s+([^\s]+)i( uNoneu contextlibuclosinguosupopenureadureusearchugroup(ufucmdudataures((u0/opt/alt/python33/lib64/python3.3/ctypes/util.pyu _get_sonamevs u _get_sonamecCs|s dSd|}tj|ƒ}|jƒ}|jƒ}|dkrVtdƒ‚ntjd|ƒ}|srdS|jdƒS(NuWif ! type objdump >/dev/null 2>&1; then exit 10; fi;objdump -p -j .dynamic 2>/dev/null i uobjdump command not foundu\sSONAME\s+([^\s]+)i( uNoneuosupopenureaducloseuOSErrorureusearchugroup(ufucmdudumpurvures((u0/opt/alt/python33/lib64/python3.3/ctypes/util.pyu _get_sonames   ufreebsduopenbsdu dragonflyc Csg|jdƒ}g}y-x&|r@|jdt|jƒƒƒqWWntk rVYnX|pftjgS(Nu.i(usplituinsertuintupopu ValueErrorusysumaxsize(ulibnameupartsunums((u0/opt/alt/python33/lib64/python3.3/ctypes/util.pyu _num_version“s $ u _num_versionc CsŒtj|ƒ}d||f}tjtjdƒƒ}|jƒ}WdQXtj||ƒ}|sttt |ƒƒS|j dt ƒ|dS(Nu:-l%s\.\S+ => \S*/(lib%s\.\S+)u/sbin/ldconfig -r 2>/dev/nullukeyiiÿÿÿÿ( ureuescapeu contextlibuclosinguosupopenureadufindallu _get_sonameu _findLib_gccusortu _num_version(unameuenameuexprufudataures((u0/opt/alt/python33/lib64/python3.3/ctypes/util.pyu find_libraryžscCsÐtjjdƒsdS|r%d}nd}xKtj|ƒjƒD]4}|jƒ}|jdƒrA|jƒd}qAqAW|sƒdSxF|jdƒD]5}tjj |d|ƒ}tjj|ƒr“|Sq“WdS(Nu /usr/bin/crleu*env LC_ALL=C /usr/bin/crle -64 2>/dev/nullu&env LC_ALL=C /usr/bin/crle 2>/dev/nulluDefault Library Path (ELF):iu:ulib%s.so( uosupathuexistsuNoneupopenu readlinesustripu startswithusplitujoin(unameuis64ucmdulineupathsudirulibfile((u0/opt/alt/python33/lib64/python3.3/ctypes/util.pyu _findLib_crle«s   u _findLib_crlecCstt||ƒpt|ƒƒS(N(u _get_sonameu _findLib_crleu _findLib_gcc(unameuis64((u0/opt/alt/python33/lib64/python3.3/ctypes/util.pyu find_libraryÃscCsHddl}|jdƒdkr7tjƒjd}ntjƒjd}idd6dd 6dd 6dd 6d d 6}|j|dƒ}tjdtj|ƒ|fƒ}yˆt j ddgdt j dt j dt j didd6dd6ƒ>}tj ||jjƒƒ}|r(tj|jdƒƒSWdQXWntk rCYnXdS(Niuliu-32u-64u libc6,x86-64u x86_64-64u libc6,64bituppc64-64u sparc64-64us390x-64u libc6,IA-64uia64-64ulibc6u\s+(lib%s\.[^\s]+)\s+\(%su/sbin/ldconfigu-pustdinustderrustdoutuenvuCuLC_ALLuLANGi(ustructucalcsizeuosuunameumachineugetufsencodeureuescapeu subprocessuPopenuDEVNULLuPIPEusearchustdoutureadufsdecodeugroupuOSError(unameustructumachineumach_mapuabi_typeuregexupures((u0/opt/alt/python33/lib64/python3.3/ctypes/util.pyu_findSoname_ldconfigÈs0       u_findSoname_ldconfigcCst|ƒptt|ƒƒS(N(u_findSoname_ldconfigu _get_sonameu _findLib_gcc(uname((u0/opt/alt/python33/lib64/python3.3/ctypes/util.pyu find_libraryæscCs,ddlm}tjdkrRt|jƒt|jdƒƒttdƒƒntjdkr(ttdƒƒttdƒƒttdƒƒtj d krït|j d ƒƒt|j d ƒƒt|j d ƒƒt|j d ƒƒq(t|j dƒƒt|j dƒƒttdƒƒndS(Ni(ucdlluntumsvcrtuposixumucubz2udarwinu libm.dylibulibcrypto.dylibulibSystem.dylibuSystem.framework/Systemulibm.sou libcrypt.soucrypt( uctypesucdlluosunameuprintumsvcrtuloadu find_libraryusysuplatformu LoadLibrary(ucdll((u0/opt/alt/python33/lib64/python3.3/ctypes/util.pyutestìs" utestu__main__(ufreebsduopenbsdu dragonflyF(usysuosu contextlibu subprocessunameu_get_build_versionu find_msvcrtu find_libraryuplatformuctypes.macholib.dyldu dyld_findu _dyld_findureutempfileuerrnou _findLib_gccu _get_sonameu startswithu _num_versionu _findLib_crleuFalseu_findSoname_ldconfigutestu__name__(((u0/opt/alt/python33/lib64/python3.3/ctypes/util.pyus8     $