Your IP : 18.223.171.83


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



���]$3�@s�ddlZddlZddlZddlmZddlmZddlmZddl	m
Z
dddd	iZGd
d�de�Zddd
�Z
dS)�N)�Command)�DistutilsExecError)�customize_compiler)�log�cz.czc++z.cxxc@sieZdZdZd>d?d@dAdBdCdDdEdFg	Zdd�Zdd�Zdd�Zd d!�Zd"d#�Z	d$d%�Z
d&d'�Zd(d)�Zd*d+�Z
dddd,d-d.�Zdddd,d/d0�Zddd,d1d2�Zddddd,d3d4�Zddddd,d5d6�Zddddd7d7d8d9�Zdddgd:d;�Zddd,d<d=�ZdS)G�configzprepare to build�	compiler=N�specify the compiler type�cc=�specify the compiler executable�
include-dirs=�I�.list of directories to search for header files�define=�D�C preprocessor macros to define�undef=�U�!C preprocessor macros to undefine�
libraries=�l�!external C libraries to link with�
library-dirs=�L�.directories to search for external C libraries�noisy�1show every action (compile, link, run, ...) taken�dump-source�=dump generated source files before attempting to compile themcCsLd|_d|_d|_d|_d|_d|_d|_g|_dS)N�)�compilerZcc�include_dirs�	libraries�library_dirsr�dump_source�
temp_files)�self�r'�+/opt/alt/python35/lib64/python3.5/config.py�initialize_options3s							zconfig.initialize_optionscCs�|jdkr'|jjpg|_n*t|jt�rQ|jjtj�|_|jdkrlg|_n!t|jt�r�|jg|_|jdkr�g|_n*t|jt�r�|jjtj�|_dS)N)	r!Zdistribution�
isinstance�str�split�os�pathsepr"r#)r&r'r'r(�finalize_optionsBszconfig.finalize_optionscCsdS)Nr')r&r'r'r(�runRsz
config.runcCs�ddlm}m}t|j|�s�|d|jd|jdd�|_t|j�|jru|jj|j�|j	r�|jj
|j	�|jr�|jj|j�dS)Nr)�	CCompiler�new_compilerr �dry_run�forcer)
�distutils.ccompilerr1r2r*r r3rr!Zset_include_dirsr"Z
set_librariesr#Zset_library_dirs)r&r1r2r'r'r(�_check_compilerYs
			zconfig._check_compilercCs�dt|}t|d�}|rRx|D]}|jd|�q*W|jd�|j|�|ddkr||jd�|j�|S)NZ_configtest�wz#include <%s>
�
r���)�LANG_EXT�open�write�close)r&�body�headers�lang�filename�file�headerr'r'r(�_gen_temp_sourcefileks




zconfig._gen_temp_sourcefilecCsT|j|||�}d}|jj||g�|jj||d|�||fS)Nz
_configtest.ir!)rDr%�extendr Z
preprocess)r&r>r?r!r@�src�outr'r'r(�_preprocessxs
zconfig._preprocesscCs�|j|||�}|jr/t|d|�|jj|g�\}|jj||g�|jj|gd|�||fS)Nzcompiling '%s':r!)rDr$�	dump_filer Zobject_filenamesr%rE�compile)r&r>r?r!r@rF�objr'r'r(�_compiles	zconfig._compilec
	Cs�|j||||�\}}tjjtjj|��d}	|jj|g|	d|d|d|�|jjdk	r�|	|jj}	|jj	|	�|||	fS)Nrr"r#Ztarget_lang)
rLr-�path�splitext�basenamer Zlink_executableZ
exe_extensionr%�append)
r&r>r?r!r"r#r@rFrK�progr'r'r(�_link�s"zconfig._linkcGsl|s|j}g|_tjddj|��x4|D],}ytj|�Wq8tk
rcYq8Xq8WdS)Nzremoving: %s� )r%r�info�joinr-�remove�OSError)r&�	filenamesrAr'r'r(�_clean�s		

z
config._cleanrcCscddlm}|j�d}y|j||||�Wn|k
rTd}YnX|j�|S)Nr)�CompileErrorTF)r5rZr6rHrY)r&r>r?r!r@rZ�okr'r'r(�try_cpp�s


zconfig.try_cppcCs�|j�|j||||�\}}t|t�rFtj|�}t|�}d}	x3|j�}
|
dkrtP|j|
�r[d}	Pq[W|j	�|j
�|	S)NF�T)r6rHr*r+�rerJr;�readline�searchr=rY)r&�patternr>r?r!r@rFrGrB�match�liner'r'r(�
search_cpp�s 	


zconfig.search_cppcCs|ddlm}|j�y |j||||�d}Wn|k
rTd}YnXtj|rgdpjd�|j�|S)Nr)rZTFzsuccess!zfailure.)r5rZr6rLrrTrY)r&r>r?r!r@rZr[r'r'r(�try_compile�s



zconfig.try_compilec

Cs�ddlm}m}|j�y&|j||||||�d}	Wn||fk
rfd}	YnXtj|	rydp|d�|j�|	S)Nr)rZ�	LinkErrorTFzsuccess!zfailure.)r5rZrfr6rRrrTrY)
r&r>r?r!r"r#r@rZrfr[r'r'r(�try_link�s



zconfig.try_linkc

Cs�ddlm}m}|j�yA|j||||||�\}	}
}|j|g�d}Wn!||tfk
r�d}YnXtj|r�dp�d�|j	�|S)Nr)rZrfTFzsuccess!zfailure.)
r5rZrfr6rR�spawnrrrTrY)
r&r>r?r!r"r#r@rZrfrFrKZexer[r'r'r(�try_run�s


zconfig.try_runrc	Cs�|j�g}|r'|jd|�|jd�|rN|jd|�n|jd|�|jd�dj|�d}|j|||||�S)Nz
int %s ();z
int main () {z  %s();z  %s;�}r8)r6rPrUrg)	r&�funcr?r!r"r#Zdecl�callr>r'r'r(�
check_funcs


zconfig.check_funccCs*|j�|jd|||g||�S)Nzint main (void) { })r6rg)r&Zlibraryr#r?r!Zother_librariesr'r'r(�	check_lib6s

zconfig.check_libcCs|jddd|gd|�S)Nr>z
/* No body */r?r!)r\)r&rCr!r#r@r'r'r(�check_headerDszconfig.check_header)rNr	)r
Nr)rr
r)rrr)rrr)rrr)rrr)rNr)rNr)�__name__�
__module__�__qualname__�descriptionZuser_optionsr)r/r0r6rDrHrLrRrYr\rdrergrirmrnror'r'r'r(rsT	
				
rc
Csb|dkr tjd|�n
tj|�t|�}ztj|j��Wd|j�XdS)Nz%s)rrTr;�readr=)rA�headrBr'r'r(rINs
rI)�sysr-r^Zdistutils.corerZdistutils.errorsrZdistutils.sysconfigrZ	distutilsrr:rrIr'r'r'r(�<module>s$�:

?>