Your IP : 13.59.76.213


Current Path : /lib64/python2.7/distutils/
Upload File :
Current File : //lib64/python2.7/distutils/emxccompiler.pyo

�
�mec@s�dZdZddlZddlZddlZddlmZmZddlm	Z	ddl
mZddlm
Z
mZmZddlmZd	e	fd
��YZdZdZd
Zd�Zd�ZdS(s�distutils.emxccompiler

Provides the EMXCCompiler class, a subclass of UnixCCompiler that
handles the EMX port of the GNU C compiler to OS/2.
s$Id$i����N(tgen_preprocess_optionstgen_lib_options(t
UnixCCompiler(t
write_file(tDistutilsExecErrortCompileErrortUnknownFileError(tlogtEMXCCompilercBs�eZdZdZdZdZdZdZdZdZ	dddd�Z
d	�Zddddddddddd
�
Z
ddd�Zdd
�ZRS(temxs.objs.libs.dlls%s%ss.ress.exeic	Cs�tj||||�t�\}}|jd||f�|tk	rd|jdd|d�nt�\|_|_|j|j	d|j|jf�|j
ddddd	d
dd�d
g|_dS(Ns%Python's GCC status: %s (details: %s)s<Python's pyconfig.h doesn't seem to support your compiler.  sReason: %s.s<Compiling may fail because of undefined preprocessor macros.s: gcc %s, ld %s
tcompilers5gcc -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Walltcompiler_sot
linker_exesgcc -Zomf -Zmt -Zcrtdllt	linker_sosgcc -Zomf -Zmt -Zcrtdll -Zdlltgcc(Rt__init__tcheck_config_htdebug_printtCONFIG_H_OKtwarntget_versionstgcc_versiont
ld_versiont
compiler_typetset_executablest
dll_libraries(tselftverbosetdry_runtforcetstatustdetails((s./usr/lib64/python2.7/distutils/emxccompiler.pyR*s"	cCs�|dkrHy|jdd|g�Wq�tk
rD}t|�q�XnHy)|j|j||d|g|�Wntk
r�}t|�nXdS(Ns.rctrcs-rs-o(tspawnRRR(Rtobjtsrctexttcc_argstextra_postargstpp_optstmsg((s./usr/lib64/python2.7/distutils/emxccompiler.pyt_compileMscCs�tj|
pg�}
tj|p$g�}tj|p9g�}|j|j�|dk	r;||jkr;tjj|d�}tjjtjj	|��\}}tjj
||d�}dtjjtjj	|��dddg}x|D]}|jd|�q�W|jt
||fd|�|j|�n|	sQ|
jd�ntj||||||||d|	|
|||
�dS(	Nis.defs$LIBRARY %s INITINSTANCE TERMINSTANCEsDATA MULTIPLE NONSHAREDtEXPORTSs  "%s"s
writing %ss-s(tcopytextendRtNonet
EXECUTABLEtostpathtdirnametsplitexttbasenametjointappendtexecuteRRtlink(Rttarget_desctobjectstoutput_filenamet
output_dirt	librariestlibrary_dirstruntime_library_dirstexport_symbolstdebugt
extra_preargsR&t
build_tempttarget_langttemp_dirtdll_namet
dll_extensiontdef_filetcontentstsym((s./usr/lib64/python2.7/distutils/emxccompiler.pyR7[sF		 	
	tcCs�|dkrd}ng}x�|D]�}tjjtjj|��\}}||jdgkrxtd||f�n|r�tjj|�}n|dkr�|jtjj	|||j
��q"|jtjj	|||j��q"W|S(NRJs.rcs"unknown file type '%s' (from '%s')(R-R/R0R2tnormcasetsrc_extensionsRR3R5R4t
res_extensiont
obj_extension(Rtsource_filenamest	strip_dirR;t	obj_namestsrc_nametbaseR$((s./usr/lib64/python2.7/distutils/emxccompiler.pytobject_filenames�s"	
$c
Cs�d|}d|}ytjdjd�}Wntk
rGg}nXxh||D]\}tjj||�}tjj||�}	tjj|�r�|Stjj|	�rS|	SqSWdS(Ns%s.libs	lib%s.libtLIBRARY_PATHt;(R/tenvirontsplittKeyErrorR0R4texistsR-(
RtdirstlibR@tshortlibtlonglibtemx_dirstdirt	shortlibptlonglibp((s./usr/lib64/python2.7/distutils/emxccompiler.pytfind_library_file�s



N(t__name__t
__module__RRNtstatic_lib_extensiontshared_lib_extensiontstatic_lib_formattshared_lib_formatRMt
exe_extensionRR)R-R7RTRc(((s./usr/lib64/python2.7/distutils/emxccompiler.pyRs2 	Ptoksnot okt	uncertaincCs�ddlm}ddl}|jtjd�dkrAtdfS|j�}y.t|�}z|j	�}Wd|j
�XWn'tk
r�}td||j
ffSX|j|d�dkr�td	|fStd
|fSdS(s�Check if the current Python installation (specifically, pyconfig.h)
    appears amenable to building extensions with GCC.  Returns a tuple
    (status, details), where 'status' is one of the following constants:
      CONFIG_H_OK
        all is well, go ahead and compile
      CONFIG_H_NOTOK
        doesn't look good
      CONFIG_H_UNCERTAIN
        not sure -- unable to read pyconfig.h
    'details' is a human-readable string explaining the situation.

    Note there are two ways to conclude "OK": either 'sys.version' contains
    the string "GCC" (implying that this Python was built with GCC), or the
    installed "pyconfig.h" contains the string "__GNUC__".
    i����(t	sysconfigNtGCCissys.version mentions 'GCC'scouldn't read '%s': %st__GNUC__s'%s' mentions '__GNUC__'s '%s' does not mention '__GNUC__'(t	distutilsRmtstringtfindtsystversionRtget_config_h_filenametopentreadtclosetIOErrortCONFIG_H_UNCERTAINtstrerrortCONFIG_H_NOTOK(RmRqtfntftstexc((s./usr/lib64/python2.7/distutils/emxccompiler.pyR�s 
c	Cs�ddlm}ddlm}ddl}|d�}|r�tj|dd�}z|j�}Wd|j�X|j	d|�}|r�||j
d	��}q�d}nd}d}||fS(
sa Try to find out the versions of gcc and ld.
        If not possible it returns None for it.
    i����(t
StrictVersion(tfind_executableNRs
 -dumpversiontrs(\d+\.\d+\.\d+)i(tdistutils.versionR�tdistutils.spawnR�treR/tpopenRwRxtsearchtgroupR-(	R�R�R�tgcc_exetoutt
out_stringtresultRR((s./usr/lib64/python2.7/distutils/emxccompiler.pyR&s 	(t__doc__t__revision__R/RsR+tdistutils.ccompilerRRtdistutils.unixccompilerRtdistutils.file_utilRtdistutils.errorsRRRRpRRRR|RzRR(((s./usr/lib64/python2.7/distutils/emxccompiler.pyt<module>s$�	4