Ñò §ÚêLc @s¬dZdZddkZddklZlZlZlZlZl Z ddk l Z l Z l Z ddklZddklZddklZd e fd „ƒYZdS( sƒdistutils.bcppcompiler Contains BorlandCCompiler, an implementation of the abstract CCompiler class for the Borland C++ compiler. sB$Id: bcppcompiler.py 61000 2008-02-23 17:40:11Z christian.heimes $iÿÿÿÿN(tDistutilsExecErrortDistutilsPlatformErrort CompileErrortLibErrort LinkErrortUnknownFileError(t CCompilertgen_preprocess_optionstgen_lib_options(t write_file(tnewer(tlogt BCPPCompilerc BsúeZdZdZhZdgZdddgZeeZdZdZ dZ d Z Z d Z d d d d „Zdddd dddd „Zdd dd„Zdddddd ddddd„ Zd d„Zd dd„Zdddddd„ZRS(sConcrete class that implements an interface to the Borland C/C++ compiler, as defined by the CCompiler abstract class. tbcpps.cs.ccs.cpps.cxxs.objs.libs.dlls%s%ss.exeicCsÂti||||ƒd|_d|_d|_d|_ddddg|_ddddg|_d d dd g|_ d d dd g|_ g|_ d dd g|_ d dd d g|_ dS( Ns bcc32.exes ilink32.exestlib.exes/tWMs/O2s/qs/g0s/Ods/Tpds/Gns/xs/r(Rt__init__tcctlinkertlibtNonetpreprocess_optionstcompile_optionstcompile_options_debugtldflags_sharedtldflags_shared_debugtldflags_statict ldflags_exetldflags_exe_debug(tselftverbosetdry_runtforce((s./usr/lib64/python2.6/distutils/bcppcompiler.pyR9s     c  Csð|i||||||ƒ\}} }} } |pg} | idƒ|o| i|iƒn| i|iƒxw| D]o} y| | \}}Wntj o qynXtii|ƒ}tii| ƒ} |i tii | ƒƒ|djoqyn|djoEy|i dd| |gƒWqyt j o}t |‚qyXqyn||ijo d}n!||ijo d}nd}d| }y4|i |ig| | ||g||gƒWqyt j o}t |‚qyXqyW| S( Ns-cs.ress.rctbrcc32s-fots-Ps-o(t_setup_compiletappendtextendRRtKeyErrortostpathtnormpathtmkpathtdirnametspawnRRt _c_extensionst_cpp_extensionsR(Rtsourcest output_dirtmacrost include_dirstdebugt extra_preargstextra_postargstdependstobjectstpp_optstbuildt compile_optstobjtsrctexttmsgt input_optt output_opt((s./usr/lib64/python2.6/distutils/bcppcompiler.pytcompileUsH       .c Cs¯|i||ƒ\}}|i|d|ƒ}|i||ƒo[|dg|}|ony|i|ig|ƒWq«tj o}t|‚q«Xntid|ƒdS(NR.s/usskipping %s (up-to-date)( t_fix_object_argstlibrary_filenamet _need_linkR*RRRR R1( RR5toutput_libnameR.R1t target_langtoutput_filenametlib_argsR<((s./usr/lib64/python2.6/distutils/bcppcompiler.pytcreate_static_lib–sc Cs×|i||ƒ\}}|i|||ƒ\}}}|otidt|ƒƒn|dj otii||ƒ}n|i ||ƒo3|t i jo)d}| o|i }qî|i }n&d}| o|i}n |i}|djo d}nµtii|ƒ\}}tii|ƒ\}}tii|dƒ}tii|d|ƒ}dg}x,|pgD]}|id||fƒq{W|it||fd |ƒttii|ƒ}|g}g}x]|D]U}tiitii|ƒƒ\}}|d jo|i|ƒqä|i|ƒqäWx+|D]#}|id tii|ƒƒqDW|id ƒ|i|ƒ|id |gƒ|idƒxN|D]F}|i||| ƒ}|djo|i|ƒq¬|i|ƒq¬W|idƒ|idƒ|id |gƒ|id ƒ|i|ƒ| o| |d*n| o|i| ƒn|itii|ƒƒy|i|ig|ƒWqÓtj o}t|‚qÓXnti d|ƒdS(Ns7I don't know what to do with 'runtime_library_dirs': %stc0w32tc0d32R is%s.deftEXPORTSs %s=_%ss writing %ss.ress/L%ss/L.t,s,,timport32tcw32mtsskipping %s (up-to-date)(!R@t _fix_lib_argsR twarntstrRR%R&tjoinRBRt EXECUTABLERRRRtsplittsplitextR)R"texecuteR tmapR'tnormcaseR#tfind_library_fileR(R*RRRR1( Rt target_descR5RER.t librariest library_dirstruntime_library_dirstexport_symbolsR1R2R3t build_tempRDt startup_objtld_argstdef_filetheadttailtmodnameR;ttemp_dirtcontentstsymtobjects2t resourcestfiletbasetlRtlibfileR<((s./usr/lib64/python2.6/distutils/bcppcompiler.pytlink¯s„        $ !        c CsŸ|o(|d}|d|d||f}n|d|f}xY|D]M}xD|D]<}tii||i|ƒƒ}tii|ƒo|SqSWqFWdSdS(Nt_dt_bcpp(R%R&RQRAtexistsR( RtdirsRR1tdlibt try_namestdirtnameRm((s./usr/lib64/python2.6/distutils/bcppcompiler.pyRX8s   R cCs)|djo d}ng}x|D]ý}tiitii|ƒƒ\}}||iddgjotd||f‚n|otii|ƒ}n|djo$|itii |||ƒƒq$|djo$|itii ||dƒƒq$|itii |||i ƒƒq$W|S(NR s.rcs.ress"unknown file type '%s' (from '%s')( RR%R&RTRWtsrc_extensionsRtbasenameR"RQt obj_extension(Rtsource_filenamest strip_dirR.t obj_namestsrc_nameRkR;((s./usr/lib64/python2.6/distutils/bcppcompiler.pytobject_filenamesRs& $ $ $c Cs |id||ƒ\}}}t||ƒ}dg|} |dj o| id|ƒn|o|| d*n|o| i|ƒn| i|ƒ|ip|djpt||ƒo_|o|iti i |ƒƒny|i | ƒWqt j o} | GHt | ‚qXndS(Ns cpp32.exes-oi(t_fix_compile_argsRRR"R#RR R(R%R&R)R*RR( Rtsourcet output_fileR/R0R2R3t_R6tpp_argsR<((s./usr/lib64/python2.6/distutils/bcppcompiler.pyt preprocessns$    'N(t__name__t __module__t__doc__t compiler_typet executablesR+R,RwRytstatic_lib_extensiontshared_lib_extensiontstatic_lib_formattshared_lib_formatt exe_extensionRRR?RGRnRXR~R„(((s./usr/lib64/python2.6/distutils/bcppcompiler.pyR sJ     B  |  (R‡t __revision__R%tdistutils.errorsRRRRRRtdistutils.ccompilerRRRtdistutils.file_utilR tdistutils.dep_utilR t distutilsR R (((s./usr/lib64/python2.6/distutils/bcppcompiler.pyts  .