MINI MINI MANI MO

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


F]c@sdZdZddlZddlZddlZddlmZmZddlm	Z	ddl
mZddlm
Z
mZmZddlmZmZmZmZdd	lmZejd
krddlZnde
fdYZdS(
s9distutils.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'
s$Id$iN(t
StringTypetNoneType(t	sysconfig(tnewer(t	CCompilertgen_preprocess_optionstgen_lib_options(tDistutilsExecErrortCompileErrortLibErrort	LinkError(tlogtdarwint
UnixCCompilercBspeZdZid'd6dgd6dgd6dgd6ddgd6dgd6d	d
gd6d'd6Zejd
 dkrdged<nddddddgZdZdZ	dZ
dZdZZ
ZejdkrdZndZd'd'd'd'd'dZdZd'dd'd Zd'd'd'd'd'dd'd'd'd'd!
Zd"Zd#Zd$Zd%Zdd&ZRS((tunixtpreprocessortcctcompilertcompiler_sotcompiler_cxxs-sharedt	linker_sot
linker_exetars-crtarchivertranlibiRs.cs.Cs.ccs.cxxs.cpps.ms.os.as.sos.dylibslib%s%stcygwins.execCs_tj||||\}}}tjd}|rR||krR|j|n|||fS(s'Remove standard library path from rpathtLIBDIR(Rt
_fix_lib_argsRtget_config_vartremove(tselft	librariestlibrary_dirstruntime_library_dirstlibdir((s//usr/lib64/python2.7/distutils/unixccompiler.pyRVscCs	|jd||\}}}t||}|j|}	|rV|	jd|gn|ri||	d*n|r|	j|n|	j||js|dkst||r|r|jt	j
j|ny|j|	Wqt
k
r}
t|
qXndS(Ns-oi(t_fix_compile_argstNoneRRtextendtappendtforceRtmkpathtostpathtdirnametspawnRR(Rtsourcetoutput_filetmacrostinclude_dirst
extra_preargstextra_postargstignoretpp_optstpp_argstmsg((s//usr/lib64/python2.7/distutils/unixccompiler.pyt
preprocess`s"


$c	Csz|j}tjdkr1tj|||}ny&|j|||d|g|Wntk
ru}t|nXdS(NRs-o(Rtsystplatformt_osx_supporttcompiler_fixupR,RR(	Rtobjtsrctexttcc_argsR2R4RR6((s//usr/lib64/python2.7/distutils/unixccompiler.pyt_compile{s		icCs|j||\}}|j|d|}|j||r|jtjj||j|j|g||j	|j
ry|j|j
|gWqtk
r}t|qXqnt
jd|dS(Nt
output_dirsskipping %s (up-to-date)(t_fix_object_argstlibrary_filenamet
_need_linkR(R)R*R+R,RtobjectsRRR	Rtdebug(RREtoutput_libnameRARFttarget_langtoutput_filenameR6((s//usr/lib64/python2.7/distutils/unixccompiler.pytcreate_static_libs	cCs"|j||\}}|j|||\}}}t||||}t|ttfkrotdn|dk	rtj	j
||}n|j||r||j|d|g}|	rdg|d*n|
r|
|d*n|r|j
|n|jtj	j|y|tjkr7|j}n
|j}|
dkr|jrd}tj	j|ddkrd}x!d||kr|d}qWn|j|||<ntjd	krtj||}n|j||Wqtk
r
}t|qXntjd
|dS(Ns%'output_dir' must be a string or Nones-os-gisc++tenvit=Rsskipping %s (up-to-date)(RBRRttypeRRt	TypeErrorR$R)R*tjoinRDRER%R(R+Rt
EXECUTABLERRRtbasenameR8R9R:R;R,RR
RRF(Rttarget_descRERIRARR R!texport_symbolsRFR1R2t
build_tempRHtlib_optstld_argstlinkertiR6((s//usr/lib64/python2.7/distutils/unixccompiler.pytlinksD	


cCsd|S(Ns-L((Rtdir((s//usr/lib64/python2.7/distutils/unixccompiler.pytlibrary_dir_optionscCsd|kpd|kS(Ntgccsg++((Rt
compiler_name((s//usr/lib64/python2.7/distutils/unixccompiler.pyt_is_gccscCstjjtjd}tjd dkr6d|Stjd dkrt|j|rfdd|gSdd|gStjd	 d
kstjd dkrd|gS|j|rd
|Sd|SdS(NtCCiRs-Lishp-uxs-Wl,+ss+sitirix646tosf1V5s-rpaths-Wl,-Rs-R(R)R*RQRRR8R9R^(RRZR((s//usr/lib64/python2.7/distutils/unixccompiler.pytruntime_library_dir_options
&
cCsd|S(Ns-l((Rtlib((s//usr/lib64/python2.7/distutils/unixccompiler.pytlibrary_optionscCs|j|dd}|j|dd}|j|dd}tjdkrtjd}tjd|}|dkrd}	q|jd	}	nx#|D]}
t	j
j|
|}t	j
j|
|}t	j
j|
|}
tjdkrv|
jd
s|
jdrv|
jdrvt	j
j|	|
d	|}t	j
j|	|
d	|}t	j
j|	|
d	|}
nt	j
j
|r|St	j
j
|r|St	j
j
|
r|
SqWdS(
Ntlib_typetsharedtdylibtstaticRtCFLAGSs-isysroot\s+(\S+)t/is/System/s/usr/s/usr/local/(RCR8R9RRtretsearchR$tgroupR)R*ROt
startswithtexists(RtdirsRcRFtshared_ftdylib_ftstatic_ftcflagstmtsysrootRZRfRgRh((s//usr/lib64/python2.7/distutils/unixccompiler.pytfind_library_files4	
N(t__name__t
__module__t
compiler_typeR$texecutablesR8R9tsrc_extensionst
obj_extensiontstatic_lib_extensiontshared_lib_extensiontdylib_lib_extensiontstatic_lib_formattshared_lib_formattdylib_lib_formatt
exe_extensionRR7R@RJRYR[R^RbRdRw(((s//usr/lib64/python2.7/distutils/unixccompiler.pyR
0sB







					6				(t__doc__t__revision__R)R8RkttypesRRt	distutilsRtdistutils.dep_utilRtdistutils.ccompilerRRRtdistutils.errorsRRR	R
RR9R:R
(((s//usr/lib64/python2.7/distutils/unixccompiler.pyt<module>s$"

OHA YOOOO