Your IP : 18.116.20.205


Current Path : /opt/alt/python35/lib64/python3.5/distutils/__pycache__/
Upload File :
Current File : //opt/alt/python35/lib64/python3.5/distutils/__pycache__/unixccompiler.cpython-35.opt-2.pyc



$�Yf�:�@s�ddlZddlZddlZddlmZddlmZddlmZm	Z	m
Z
ddlmZm
Z
mZmZddlmZejdkr�ddlZGdd	�d	e�ZdS)
�N)�	sysconfig)�newer)�	CCompiler�gen_preprocess_options�gen_lib_options)�DistutilsExecError�CompileError�LibError�	LinkError)�log�darwincs�eZdZdZddddgddgddgddd	gd
dgddd
gddiZejdd�dkr�dged<ddddddgZdZdZ	dZ
dZdZdZ
ZZeZejdkr�dZ�fdd �Zdddddd!d"�Zd#d$�Zdd%dd&d'�Zdddddd%ddddd(d)�
Zd*d+�Zd,d-�Zd.d/�Zd0d1�Zd%d2d3�Z�S)4�
UnixCCompilerZunix�preprocessorN�compilerZcc�compiler_so�compiler_cxx�	linker_soz-shared�
linker_exe�archiver�arz-cr�ranlib�rz.cz.Cz.ccz.cxxz.cppz.mz.oz.az.soz.dylibz.tbdzlib%s%s�cygwinz.execset|j|�j|||�\}}}tjd�}|rX||krX|j|�|||fS)N�LIBDIR)�super�	__class__�
_fix_lib_argsr�get_config_var�remove)�self�	libraries�library_dirs�runtime_library_dirsZlibdir)r��2/opt/alt/python35/lib64/python3.5/unixccompiler.pyrUs
zUnixCCompiler._fix_lib_argscCs|jd||�}|\}}}t||�}	|j|	}
|rY|
jd|g�|ro||
dd�<|r�|
j|�|
j|�|js�|dks�t||�r|r�|jtj	j
|��y|j|
�Wn1tk
r}zt
|��WYdd}~XnXdS)Nz-or)Z_fix_compile_argsrr�extend�append�forcer�mkpath�os�path�dirname�spawnrr)r�sourceZoutput_fileZmacrosZinclude_dirs�
extra_preargs�extra_postargs�
fixed_args�ignore�pp_optsZpp_args�msgr#r#r$�
preprocess_s$


$zUnixCCompiler.preprocessc	Cs�|j}tjdkr.tj|||�}y&|j|||d|g|�Wn1tk
r�}zt|��WYdd}~XnXdS)Nrz-o)r�sys�platform�_osx_support�compiler_fixupr,rr)	r�obj�src�extZcc_argsr/r2rr3r#r#r$�_compileys		
zUnixCCompiler._compilercCs�|j||�\}}|j|d|�}|j||�r�|jtjj|��|j|j|g||j	�|j
r�y|j|j
|g�Wq�tk
r�}zt|��WYdd}~Xq�Xnt
jd|�dS)N�
output_dirzskipping %s (up-to-date))�_fix_object_args�library_filename�
_need_linkr(r)r*r+r,r�objectsrrr	r�debug)rrAZoutput_libnamer=rB�target_lang�output_filenamer3r#r#r$�create_static_lib�s	"zUnixCCompiler.create_static_libcCsI|j||�\}}|j|||�}|\}}}t||||�}t|ttd�f�sxtd��|dk	r�tjj	||�}|j
||�r5||j|d|g}|	r�dg|dd�<|
r�|
|dd�<|r|j|�|j
tjj|��y�|tjkrI|jdd�}n|jdd�}|
dkr�|jr�d}tjj|d�dkr�d}xd||kr�|d7}q�W|j|||<tjd	kr�tj||�}|j||�WqEtk
r1}zt|��WYdd}~XqEXntjd
|�dS)Nz%'output_dir' must be a string or Nonez-oz-grzc++�env��=rzskipping %s (up-to-date))r>rr�
isinstance�str�type�	TypeErrorr)r*�joinr@rAr%r(r+rZ
EXECUTABLErrr�basenamer5r6r7r8r,rr
rrB)rZtarget_descrArDr=r r!r"Zexport_symbolsrBr.r/Z
build_temprCr0Zlib_optsZld_argsZlinker�ir3r#r#r$�link�sH		
"zUnixCCompiler.linkcCsd|S)Nz-Lr#)r�dirr#r#r$�library_dir_option�sz UnixCCompiler.library_dir_optioncCsd|kpd|kS)N�gcczg++r#)rZ
compiler_namer#r#r$�_is_gcc�szUnixCCompiler._is_gcccCs tjjtjd��}tjdd�dkr<d|Stjdd�dkr]d|Stjdd�d	kr�|j|�r�d
d|gSdd|gStjdd�dks�tjdd�d
kr�d|gS|j|�rtjd�dkr	d|Sd|Snd|SdS)N�CCrrz-L�Zfreebsdz-Wl,-rpath=�zhp-uxz-Wl,+sz+sZirix646Zosf1V5z-rpath�GNULD�yesz-Wl,--enable-new-dtags,-Rz-Wl,-Rz-R)r)r*rNrrr5r6rT)rrQrr#r#r$�runtime_library_dir_option�s 2
z(UnixCCompiler.runtime_library_dir_optioncCsd|S)Nz-lr#)r�libr#r#r$�library_option
szUnixCCompiler.library_optioncCs.|j|dd�}|j|dd�}|j|dd�}|j|dd�}tjdkr�tjd�}tjd|�}	|	dkr�d	}
n|	jd
�}
x|D]w}tj	j
||�}tj	j
||�}
tj	j
||�}tj	j
||�}tjdkr�|jd�sF|jd�r�|jd
�r�tj	j
|
|d
d�|�}tj	j
|
|d
d�|�}
tj	j
|
|d
d�|�}tj	j
|
|d
d�|�}tj	j|
�r�|
Stj	j|�r�|Stj	j|�r|Stj	j|�r�|Sq�WdS)NZlib_type�shared�dylib�
xcode_stub�staticr�CFLAGSz-isysroot\s+(\S+)�/rGz/System/z/usr/z/usr/local/)
r?r5r6rr�re�search�groupr)r*rM�
startswith�exists)r�dirsr[rBZshared_fZdylib_fZxcode_stub_fZstatic_fZcflags�mZsysrootrQr]r^r`r_r#r#r$�find_library_file
s>	
""""zUnixCCompiler.find_library_file)�__name__�
__module__�__qualname__Z
compiler_typeZexecutablesr5r6Zsrc_extensionsZ
obj_extensionZstatic_lib_extensionZshared_lib_extensionZdylib_lib_extensionZxcode_stub_lib_extensionZstatic_lib_formatZshared_lib_formatZdylib_lib_formatZxcode_stub_lib_formatZ
exe_extensionrr4r<rErPrRrTrZr\rjr#r#)rr$r
-sF				

	6,r
)r)r5rcZ	distutilsrZdistutils.dep_utilrZdistutils.ccompilerrrrZdistutils.errorsrrr	r
rr6r7r
r#r#r#r$�<module>s$"

?>