Your IP : 18.224.60.19


Current Path : /opt/alt/python34/lib64/python3.4/distutils/__pycache__/
Upload File :
Current File : //opt/alt/python34/lib64/python3.4/distutils/__pycache__/unixccompiler.cpython-34.pyo

�
h fU5�@s�dZddlZddlZddlZddlmZddlmZddlm	Z	m
Z
mZddlm
Z
mZmZmZddlmZejdkr�ddlZnGd	d
�d
e	�ZdS)a9distutils.unixccompiler

Contains the UnixCCompiler class, a subclass of CCompiler that handles
the "typical" Unix-style command-line C compiler:
  * macros defined with -Dname[=value]
  * macros undefined with -Uname
  * include search directories specified with -Idir
  * libraries specified with -lllib
  * library search directories specified with -Ldir
  * compile handled by 'cc' (or similar) executable with -c option:
    compiles .c to .o
  * link static library handled by 'ar' command (possibly with 'ranlib')
  * link shared library handled by 'cc -shared'
�N)�	sysconfig)�newer)�	CCompiler�gen_preprocess_options�gen_lib_options)�DistutilsExecError�CompileError�LibError�	LinkError)�log�darwincs�eZdZdZidd6dgd6dgd6dgd6ddgd	6dgd
6ddgd
6dd6Zejdd�dkr�dged<nddddddgZdZdZ	dZ
dZdZZ
Zejdkr�dZn�fdd�Zdddddd d!�Zd"d#�Zdd$dd%d&�Zdddddd$ddddd'd(�
Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd$d1d2�Z�S)3�
UnixCCompilerZunixN�preprocessorZcc�compiler�compiler_so�compiler_cxxz-shared�	linker_so�
linker_exe�arz-cr�archiver�ranlib�rz.cz.Cz.ccz.cxxz.cppz.mz.oz.az.soz.dylibzlib%s%s�cygwinz.execsht|j|�j|||�\}}}tjd�}|r[||kr[|j|�n|||fS)z'Remove standard library path from rpath�LIBDIR)�super�	__class__�
_fix_lib_argsr�get_config_var�remove)�self�	libraries�library_dirs�runtime_library_dirsZlibdir)r��</opt/alt/python34/lib64/python3.4/distutils/unixccompiler.pyrSszUnixCCompiler._fix_lib_argscCs*|jd||�}|\}}}t||�}	|j|	}
|r\|
jd|g�n|ru||
dd�<n|r�|
j|�n|
j|�|js�|dks�t||�r&|r�|jtj	j
|��ny|j|
�Wq&tk
r"}zt
|��WYdd}~Xq&XndS)Nz-or)Z_fix_compile_argsrr�extend�appendZforcer�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}tjdkr1tj|||�}ny&|j|||d|g|�Wn1tk
r�}zt|��WYdd}~XnXdS)Nrz-o)r�sys�platform�_osx_support�compiler_fixupr+rr)	r�obj�srcZextZcc_argsr.r1rr2r#r#r$�_compilews		zUnixCCompiler._compilercCs�|j||�\}}|j|d|�}|j||�r�|jtjj|��|j|j|g||j	�|j
r�y|j|j
|g�Wq�tk
r�}zt|��WYdd}~Xq�Xq�nt
jd|�dS)N�
output_dirzskipping %s (up-to-date))�_fix_object_args�library_filename�
_need_linkr'r(r)r*r+r�objectsrrr	r�debug)rr?Zoutput_libnamer;r@�target_lang�output_filenamer2r#r#r$�create_static_lib�s	%zUnixCCompiler.create_static_libcCsa|j||�\}}|j|||�}|\}}}t||||�}t|ttd�f�s{td��n|dk	r�tjj	||�}n|j
||�rM||j|d|g}|	r�dg|dd�<n|
r|
|dd�<n|r|j|�n|j
tjj|��y�|tjkrX|jdd�}n|jdd�}|
dkr�|jr�d}tjj|d�dkr�d}x!d||kr�|d7}q�Wn|j|||<ntjd	krtj||�}n|j||�Wq]tk
rI}zt|��WYdd}~Xq]Xntjd
|�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>r?r%r'r*rZ
EXECUTABLErrr�basenamer4r5r6r7r+rr
rr@)rZtarget_descr?rBr;r r!r"Zexport_symbolsr@r-r.Z
build_temprAr/Zlib_optsZld_argsZlinker�ir2r#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�|j|�rrdd|gSdd|gStjdd	�d
ks�tjdd�dkr�d|gS|j|�r�tjd
�dkr�d|Sd|Snd|SdS)N�CCrrz-L�zhp-uxz-Wl,+sz+s�Zirix646Zosf1V5z-rpath�GNULD�yesz-Wl,--enable-new-dtags,-Rz-Wl,-Rz-R)r(r)rLrrr4r5rR)rrOrr#r#r$�runtime_library_dir_option�s2
z(UnixCCompiler.runtime_library_dir_optioncCsd|S)Nz-lr#)r�libr#r#r$�library_optionszUnixCCompiler.library_optioncCs�|j|dd�}|j|dd�}|j|dd�}tjdkr�tjd�}tjd|�}|dkr�d}	q�|jd	�}	nx5|D]-}
tj	j
|
|�}tj	j
|
|�}tj	j
|
|�}
tjdkr�|
jd
�s|
jd�r�|
jd�r�tj	j
|	|
d	d�|�}tj	j
|	|
d	d�|�}tj	j
|	|
d	d�|�}
ntj	j|�r�|Stj	j|�r�|Stj	j|
�r�|
Sq�WdS)
NZlib_type�shared�dylib�staticr�CFLAGSz-isysroot\s+(\S+)�/rEz/System/z/usr/z/usr/local/)
r=r4r5rr�re�search�groupr(r)rK�
startswith�exists)r�dirsrYr@Zshared_fZdylib_fZstatic_fZcflags�mZsysrootrOr[r\r]r#r#r$�find_library_file	s4	
""%zUnixCCompiler.find_library_file)�__name__�
__module__�__qualname__Z
compiler_typeZexecutablesr4r5Zsrc_extensionsZ
obj_extensionZstatic_lib_extensionZshared_lib_extensionZdylib_lib_extensionZstatic_lib_formatZshared_lib_formatZdylib_lib_formatZ
exe_extensionrr3r:rCrNrPrRrXrZrgr#r#)rr$r
-sB







	
	6*r
)�__doc__r(r4r`Z	distutilsrZdistutils.dep_utilrZdistutils.ccompilerrrrZdistutils.errorsrrr	r
rr5r6r
r#r#r#r$�<module>s$"

?>