Your IP : 3.21.100.233


Current Path : /lib64/python2.7/ctypes/
Upload File :
Current File : //lib64/python2.7/ctypes/util.pyc

�
�mec@s�ddlZddlZejdkrEd�Zd�Zd�Znejdkr`d�Znejdkr�ejd	kr�dd
lmZ	d�Zn�ejdkr�ddl
Z
ddlZddlZd�Z
ejd
kr�d�Zn	d�Zejjd�s0ejjd�s0ejjd�rEd�Zd�Zq�ejd
krld�Zed�Zq�d�Zd�Znd�Zedkr�e�ndS(i����NtntcCs�d}tjj|�}|dkr(dS|t|�}tj|jdd�\}}t|d �d}t|dd!�d	}|dkr�d
}n|dkr�||SdS(s�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.
        sMSC v.i����it ii����iig$@iN(tsystversiontfindtlentsplittinttNone(tprefixtitstresttmajorVersiontminorVersion((s#/usr/lib64/python2.7/ctypes/util.pyt_get_build_version	s	cCswt�}|dkrdS|dkr.d}nd|d}ddl}|j�dddkro|d	7}n|d
S(s%Return the name of the VC runtime dllitmsvcrtsmsvcr%di
i����Nis_d.pydtds.dll(RRtimptget_suffixes(RtclibnameR((s#/usr/lib64/python2.7/ctypes/util.pytfind_msvcrt s		
cCs�|dkrt�Sx�tjdjtj�D]l}tjj||�}tjj|�r^|S|j�j	d�ryq-n|d}tjj|�r-|Sq-WdS(NtctmtPATHs.dll(RR(RtostenvironRtpathseptpathtjointisfiletlowertendswithR(tnamet	directorytfname((s#/usr/lib64/python2.7/ctypes/util.pytfind_library1s 
tcecCs|S(N((R!((s#/usr/lib64/python2.7/ctypes/util.pyR$Gstposixtdarwin(t	dyld_findcCs[d|d|d||fg}x3|D]+}yt|�SWq(tk
rRq(q(Xq(WdS(Nslib%s.dylibs%s.dylibs%s.framework/%s(t
_dyld_findt
ValueErrorR(R!tpossible((s#/usr/lib64/python2.7/ctypes/util.pyR$Ls

c
Cs�dtj|�}tj�\}}tj|�d|d|}z3tj|�}z|j�}Wd|j�}XWdytj|�Wn+t	k
r�}|j
t
jkr��q�nXX|dkr�t	d�ntj||�}	|	s�dS|	jd�S(Ns[^\(\)\s]*lib%s\.[^\(\)\s]*srif type gcc >/dev/null 2>&1; then CC=gcc; elif type cc >/dev/null 2>&1; then CC=cc;else exit 10; fi;$CC -Wl,-t -o s 2>&1 -li
sgcc or cc command not foundi(tretescapettempfiletmkstempRtclosetpopentreadtunlinktOSErrorterrnotENOENTtsearchRtgroup(
R!texprtfdouttccouttcmdtfttracetrvtetres((s#/usr/lib64/python2.7/ctypes/util.pyt_findLib_gcc[s(
tsunos5cCsj|s
dSd|}tj|�}z|j�}Wd|j�Xtjd|�}|s]dS|jd�S(Ns#/usr/ccs/bin/dump -Lpv 2>/dev/null s\[.*\]\sSONAME\s+([^\s]+)i(RRR1R2R0R,R7R8(R=R<tdataRA((s#/usr/lib64/python2.7/ctypes/util.pyt_get_sonamews
cCs�|s
dSd|}tj|�}|j�}|j�}|dkrWtjj|�Stj|�}z|j�}Wd|j�Xtjd|�}|s�dS|j	d�S(NsWif ! type objdump >/dev/null 2>&1; then exit 10; fi;objdump -p -j .dynamic 2>/dev/null i
s\sSONAME\s+([^\s]+)i(
RRR1R2R0RtbasenameR,R7R8(R=R<tdumpR?RDRA((s#/usr/lib64/python2.7/ctypes/util.pyRE�s"tfreebsdtopenbsdt	dragonflycCsf|jd�}g}y-x&|r@|jdt|j���qWWntk
rUnX|petjgS(Nt.i(RtinsertRtpopR*Rtmaxint(tlibnametpartstnums((s#/usr/lib64/python2.7/ctypes/util.pyt_num_version�s	$
cCs�tj|�}d||f}tjd�}z|j�}Wd|j�Xtj||�}|sttt|��S|j	dd��|dS(Ns:-l%s\.\S+ => \S*/(lib%s\.\S+)s/sbin/ldconfig -r 2>/dev/nulltcmpcSstt|�t|��S(N(RSRR(txty((s#/usr/lib64/python2.7/ctypes/util.pyt<lambda>�si����(
R,R-RR1R2R0tfindallRERBtsort(R!tenameR9R=RDRA((s#/usr/lib64/python2.7/ctypes/util.pyR$�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(Ns
/usr/bin/crles*env LC_ALL=C /usr/bin/crle -64 2>/dev/nulls&env LC_ALL=C /usr/bin/crle 2>/dev/nullsDefault Library Path (ELF):it:slib%s.so(
RRtexistsRR1t	readlineststript
startswithRR(R!tis64R<tlinetpathstdirtlibfile((s#/usr/lib64/python2.7/ctypes/util.pyt
_findLib_crle�s 	cCstt||�pt|��S(N(RERdRB(R!R_((s#/usr/lib64/python2.7/ctypes/util.pyR$�sc	Cs�ddl}|jd�dkr8tj�dd}ntj�dd}idd6dd	6dd
6dd6dd
6}|j|d�}dtj|�|f}tjd�}z|j�}Wd|j	�Xtj
||�}|s�dS|jd�S(Ni����tlis-32s-64slibc6,x86-64s	x86_64-64slibc6,64bitsppc64-64s
sparc64-64ss390x-64slibc6,IA-64sia64-64tlibc6s\s+(lib%s\.[^\s]+)\s+\(%ss/sbin/ldconfig -p 2>/dev/nulli(
tstructtcalcsizeRtunametgetR,R-R1R2R0R7RR8(	R!Rgtmachinetmach_maptabi_typeR9R=RDRA((s#/usr/lib64/python2.7/ctypes/util.pyt_findSoname_ldconfig�s(
cCst|�ptt|��S(N(RnRERB(R!((s#/usr/lib64/python2.7/ctypes/util.pyR$�scCs�ddlm}tjdkrC|jGH|jd�GHtd�GHntjdkr�td�GHtd�GHtd�GHtjd	kr�|j	d
�GH|j	d�GH|j	d�GH|j	d
�GHq�|j	d�GH|j	d�GHtd�GHndS(Ni����(tcdllRRR&RRtbz2R's
libm.dylibslibcrypto.dylibslibSystem.dylibsSystem.framework/Systemslibm.soslibcrypt.sotcrypt(
tctypesRoRR!RtloadR$RtplatformtLoadLibrary(Ro((s#/usr/lib64/python2.7/ctypes/util.pyttest�s"t__main__(RRR!RRR$Rttctypes.macholib.dyldR(R)R,R.R5RBRER^RRRdtFalseRnRvt__name__(((s#/usr/lib64/python2.7/ctypes/util.pyt<module>s8		$