ž «ÿfW:c@s¦dZddlZddlmZmZmZmZmZmZddl m Z m Z m Z ddl mZddlmZddlmZGdd „d e ƒZdS( uƒdistutils.bcppcompiler Contains BorlandCCompiler, an implementation of the abstract CCompiler class for the Borland C++ compiler. iN(uDistutilsExecErroruDistutilsPlatformErroru CompileErroruLibErroru LinkErroruUnknownFileError(u CCompilerugen_preprocess_optionsugen_lib_options(u write_file(unewer(ulogc Bs|EeZdZdZdZiZdgZdddgZeeZdZ dZ d Z d Z Z d Zd d d d d„Zdddd ddddd„Zdd ddd„Zdddddd dddddd„ Zd dd„Zd ddd„Zddddddd„ZdS(u BCPPCompileruConcrete class that implements an interface to the Borland C/C++ compiler, as defined by the CCompiler abstract class. ubcppu.cu.ccu.cppu.cxxu.obju.libu.dllu%s%su.exeicCsÂtj||||ƒd|_d|_d|_d|_ddddg|_ddddg|_d d dd g|_ d d dd g|_ g|_ d dd g|_ d dd d g|_ dS( Nu bcc32.exeu ilink32.exeutlib.exeu/tWMu/O2u/qu/g0u/Odu/Tpdu/Gnu/xu/r(u CCompileru__init__ucculinkerulibuNoneupreprocess_optionsucompile_optionsucompile_options_debuguldflags_shareduldflags_shared_debuguldflags_staticu ldflags_exeuldflags_exe_debug(uselfuverboseudry_runuforce((u;/opt/alt/python33/lib64/python3.3/distutils/bcppcompiler.pyu__init__5s     uBCPPCompiler.__init__c Cs |j||||||ƒ\}} }} } |p6g} | jdƒ|r_| j|jƒn| j|jƒx”| D]Œ} y| | \}}Wntk r§wvYnXtjj|ƒ}tjj| ƒ} |j tjj | ƒƒ|dkr÷qvn|dkrZy|j dd| |gƒWqvt k rS}zt |ƒ‚WYdd}~XqvXqvn||jkrrd}n||jkrŠd}nd}d| }y4|j |jg| | ||g||gƒWqvt k r}zt |ƒ‚WYdd}~XqvXqvW| S( Nu-cu.resu.rcubrcc32u-fouu-Pu-o(u_setup_compileuappenduextenducompile_options_debugucompile_optionsuKeyErroruosupathunormpathumkpathudirnameuspawnuDistutilsExecErroru CompileErroru _c_extensionsu_cpp_extensionsucc(uselfusourcesu output_dirumacrosu include_dirsudebugu extra_preargsuextra_postargsudependsuobjectsupp_optsubuildu compile_optsuobjusrcuextumsgu input_optu output_opt((u;/opt/alt/python33/lib64/python3.3/distutils/bcppcompiler.pyucompileQsF         .#uBCPPCompiler.compilec Cs¾|j||ƒ\}}|j|d|ƒ}|j||ƒrª|dg|}|rXny|j|jg|ƒWqºtk r¦}zt|ƒ‚WYdd}~XqºXntjd|ƒdS(Nu output_diru/uuskipping %s (up-to-date)( u_fix_object_argsulibrary_filenameu _need_linkuspawnulibuDistutilsExecErroruLibErrorulogudebug( uselfuobjectsuoutput_libnameu output_dirudebugu target_languoutput_filenameulib_argsumsg((u;/opt/alt/python33/lib64/python3.3/distutils/bcppcompiler.pyucreate_static_lib’s"uBCPPCompiler.create_static_libc Csý|j||ƒ\}}|j|||ƒ\}}}|rUtjdt|ƒƒn|dk rytjj||ƒ}n|j ||ƒré|t j krÒd}| r¼|j dd…}q|j dd…}n5d}| rô|jdd…}n|jdd…}|dkrd}n³tjj|ƒ\}}tjj|ƒ\}}tjj|dƒ}tjj|d|ƒ}dg}x+|pgD]}|jd||fƒq‘W|jt||fd |ƒttjj|ƒ}|g}g}x[|D]S}tjjtjj|ƒƒ\}}|d kr@|j|ƒqú|j|ƒqúWx+|D]#}|jd tjj|ƒƒqXW|jd ƒ|j|ƒ|jd |gƒ|jdƒxL|D]D}|j||| ƒ}|dkr÷|j|ƒqÀ|j|ƒqÀW|jdƒ|jdƒ|jd |gƒ|jd ƒ|j|ƒ| rh| |dd…s .