Your IP : 172.28.240.42


Current Path : /usr/lib/python2.7/distutils/command/
Upload File :
Current File : //usr/lib/python2.7/distutils/command/build_clib.pyc


|_c@s{dZdZddlZddlmZddlmZddlmZddl	m
Z
dZd	efd
YZdS(sdistutils.command.build_clib

Implements the Distutils 'build_clib' command, to build a C/C++ library
that is included in the module distribution and needed by an extension
module.s$Id$iN(tCommand(tDistutilsSetupError(tcustomize_compiler(tlogcCsddlm}|dS(Ni(tshow_compilers(tdistutils.ccompilerR(R((s2/usr/lib/python2.7/distutils/command/build_clib.pyRst
build_clibcBseZdZdddddgZdd
gZdddefgZdZdZ	dZ
dZdZdZ
dZRS(s/build C/C++ libraries used by Python extensionssbuild-clib=tbs%directory to build C/C++ libraries tosbuild-temp=tts,directory to put temporary build by-productstdebugtgs"compile with debugging informationtforcetfs2forcibly build everything (ignore file timestamps)s	compiler=tcsspecify the compiler types
help-compilerslist available compilerscCsUd|_d|_d|_d|_d|_d|_d|_d|_d|_	dS(Ni(
tNoneRt
build_tempt	librariestinclude_dirstdefinetundefR	Rtcompiler(tself((s2/usr/lib/python2.7/distutils/command/build_clib.pytinitialize_options6s								cCs|jdddd	d
d|jj|_|jrG|j|jn|jdkrn|jjpeg|_nt|jtr|jjt	j
|_ndS(NtbuildRRRR	R(s
build_temps
build_clib(s
build_temps
build_temp(scompilerscompiler(sdebugsdebug(sforcesforce(tset_undefined_optionstdistributionRtcheck_library_listRRt
isinstancetstrtsplittostpathsep(R((s2/usr/lib/python2.7/distutils/command/build_clib.pytfinalize_optionsFs		cCs|js
dSddlm}|d|jd|jd|j|_t|j|jdk	rv|jj	|jn|j
dk	rx-|j
D]\}}|jj||qWn|jdk	rx$|jD]}|jj
|qWn|j|jdS(Ni(tnew_compilerRtdry_runR(RRR!RR"RRRRtset_include_dirsRtdefine_macroRtundefine_macrotbuild_libraries(RR!tnametvaluetmacro((s2/usr/lib/python2.7/distutils/command/build_clib.pytrun_s 		
cCst|tstdnx|D]}t|trVt|dkrVtdn|\}}t|tstddnd|kstjdkrtj|krtdd|d	nt|ts"td
dq"q"WdS(
s`Ensure that the list of libraries is valid.

        `library` is presumably provided as a command option 'libraries'.
        This method checks that it is a list of 2-tuples, where the tuples
        are (library_name, build_info_dict).

        Raise DistutilsSetupError if the structure is invalid anywhere;
        just returns otherwise.
        s+'libraries' option must be a list of tuplesis*each element of 'libraries' must a 2-tuples+first element of each tuple in 'libraries' s#must be a string (the library name)t/sbad library name '%s': s$may not contain directory separatorsis,second element of each tuple in 'libraries' s!must be a dictionary (build info)N(	RtlistRttupletlenRRtseptdict(RRtlibR't
build_info((s2/usr/lib/python2.7/distutils/command/build_clib.pyRws*
	
"	
*cCs>|js
dSg}x$|jD]\}}|j|qW|S(N(RRtappend(Rt	lib_namestlib_nameR2((s2/usr/lib/python2.7/distutils/command/build_clib.pytget_library_namess	cCs|j|jg}xe|jD]Z\}}|jd}|dks]t|ttfrmtd|n|j|q W|S(Ntsourcessfin 'libraries' option (library '%s'), 'sources' must be present and must be a list of source filenames(	RRtgetRRR,R-Rtextend(Rt	filenamesR5R2R7((s2/usr/lib/python2.7/distutils/command/build_clib.pytget_source_filess"
cCsx|D]\}}|jd}|dksDt|ttfr\tddd|nt|}tjd||jd}|jd}|jj	|d|j
d|d|d	|j}|jj||d|j
d	|jqWdS(
NR7s&in 'libraries' option (library '%s'), s&'sources' must be present and must be sa list of source filenamessbuilding '%s' librarytmacrosRt
output_dirR	(R8RRR,R-RRtinfoRtcompileRR	tcreate_static_libR(RRR5R2R7R<Rtobjects((s2/usr/lib/python2.7/distutils/command/build_clib.pyR&s$"		(sbuild-clib=Rs%directory to build C/C++ libraries to(sbuild-temp=Rs,directory to put temporary build by-products(sdebugR
s"compile with debugging information(sforceRs2forcibly build everything (ignore file timestamps)(s	compiler=R
sspecify the compiler typeN(t__name__t
__module__tdescriptiontuser_optionstboolean_optionsRRthelp_optionsRR R*RR6R;R&(((s2/usr/lib/python2.7/distutils/command/build_clib.pyRs*					$		(
t__doc__t__revision__Rtdistutils.coreRtdistutils.errorsRtdistutils.sysconfigRt	distutilsRRR(((s2/usr/lib/python2.7/distutils/command/build_clib.pyt<module>s