Your IP : 3.137.175.83


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

�
{fc@s�ddlZddlZddlZejdkrQd�Zd�Zd�Znejdkrld�Znejdkr�ejd	kr�dd
lm	Z
d�Zn�ejdkr�ddlZddlZddl
Z
d�Zejd
kr�d�Zn	d�Zejjd�s<ejjd�s<ejjd�rQd�Zd�Zq�ejd
krxd�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_versions	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_msvcrts		
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_library0s 
tcecCs|S(N((R!((s#/usr/lib64/python2.7/ctypes/util.pyR$Fstposixtdarwin(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$Ks

c	Cs�dtj|�}d}tj�}zCtj|d||jfdtdtj�}|j	�\}}Wdy|j
�Wn+tk
r�}|jtj
kr��q�nXXtj||�}|s�dS|jd�S(Ns[^\(\)\s]*lib%s\.[^\(\)\s]*s�if type gcc >/dev/null 2>&1; then CC=gcc; elif type cc >/dev/null 2>&1; then CC=cc;else exit; fi;LANG=C LC_ALL=C $CC -Wl,-t -o "$2" 2>&1 -l"$1"t_findLib_gcctshelltstdouti(tretescapettempfiletNamedTemporaryFilet
subprocesstPopenR!tTruetPIPEtcommunicatetclosetOSErrorterrnotENOENTtsearchRtgroup(	R!texprtcmdttemptprocttracet_tetres((s#/usr/lib64/python2.7/ctypes/util.pyR,Zs"tsunos5c
Cs�|s
dSttjd�}y8|�,tjdd|fdtjd|�}WdQXWntk
rhdSX|j�\}}t	j
d|�}|s�dS|jd�S(Ntwbs/usr/ccs/bin/dumps-LpvR.tstderrs\[.*\]\sSONAME\s+([^\s]+)i(RtopenRtdevnullR3R4R6R9R7R/R<R=(tftnullRAtdataRCRE((s#/usr/lib64/python2.7/ctypes/util.pyt_get_sonameys	
cCs�|s
dSd}tj|d|fdtdtj�}|j�\}}|jdkrhtjj	|�St
jd|�}|s�dS|jd�S(Ns[if ! type objdump >/dev/null 2>&1; then exit 10; fi;objdump -p -j .dynamic 2>/dev/null "$1"RNR-R.i
s\sSONAME\s+([^\s]+)i(
RR3R4R5R6R7t
returncodeRRtbasenameR/R<R=(RKR?RAtdumpRCRE((s#/usr/lib64/python2.7/ctypes/util.pyRN�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	$
c
Cs�tj|�}d||f}ttjd�}y/|�#tjd
dtjd|�}WdQXWntk
ryd}nX|j	�\}}tj
||�}|s�tt|��S|j
dt�|d	S(Ns:-l%s\.\S+ => \S*/(lib%s\.\S+)RGs/sbin/ldconfigs-rR.RHttkeyi����(s/sbin/ldconfigs-r(R/R0RIRRJR3R4R6R9R7tfindallRNR,tsortR\(R!tenameR>RLRARMRCRE((s#/usr/lib64/python2.7/ctypes/util.pyR$�s 	

c
Cs^tjjd�sdSttj�}d|d<|r>d
}nd}d}ttjd�}y5|�)tj	|dtj
d|d|�}WdQXWntk
r�dSXzFx?|jD]4}|j
�}|jd	�r�|j�d
}q�q�WWd|jj�|j�X|sdSxF|jd�D]5}tjj|d|�}	tjj|	�r!|	Sq!WdS(Ns
/usr/bin/crletCtLC_ALLs-64RGR.RHtenvsDefault Library Path (ELF):it:slib%s.so(s
/usr/bin/crles-64(s
/usr/bin/crle(RRtexistsRtdictRRIRJR3R4R6R9R.tstript
startswithRR8twaitR(
R!tis64RdtargstpathsRLRAtlinetdirtlibfile((s#/usr/lib64/python2.7/ctypes/util.pyt
_findLib_crle�s>
		

cCstt||�pt|��S(N(RNRqR,(R!Rk((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}ttj�}d|d<d|d<t	tj
d�}y;|�/tjddgd|dtj
d|�}WdQXWntk
r$dSX|j�\}	}
tj||	�}|sSdS|jd�S(Ni����tlis-32s-64slibc6,x86-64s	x86_64-64slibc6,64bitsppc64-64s
sparc64-64ss390x-64slibc6,IA-64sia64-64tlibc6s\s+(lib%s\.[^\s]+)\s+\(%sRbRctLANGRGs/sbin/ldconfigs-pRHR.Rdi(tstructtcalcsizeRtunametgetR/R0RgRRIRJR3R4R6R9RR7R<R=(R!Rutmachinetmach_maptabi_typeR>RdRLtpRMRCRE((s#/usr/lib64/python2.7/ctypes/util.pyt_findSoname_ldconfig�s:


	
cCst|�ptt|��S(N(R}RNR,(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(
tctypesR~RR!RtloadR$RtplatformtLoadLibrary(R~((s#/usr/lib64/python2.7/ctypes/util.pyttests"t__main__(RR3RR!RRR$R�tctypes.macholib.dyldR(R)R/R1R:R,RNRiR\RqtFalseR}R�t__name__(((s#/usr/lib64/python2.7/ctypes/util.pyt<module>s<		$				)	$	

?>