U C^9@sdZddlmZmZmZddlZddlmZmZddl Tddl m Z ddl m Z ddlmZejdd krxd d lmZn dd lmZd d Ze ededddZe ededS)z> unixccompiler - can handle very long argument lists for ar. )divisionabsolute_importprint_functionN)DistutilsExecError CompileError)*)replace_method) get_exception)_commandline_dep_string)logc Cs|j}|ddkrFd|kr$|dd|kr6|d|dg7}||_dtjkrddlm}dtjd} d|dd} d|j} | | kr| | | } | |_d|j } | | kr| | |_ d tj |jd|f} t |d d rd d |dg}ng}z*|j |j||d|g||| dWn(tk rdtt}t|YnX|rt|dd}|t|||W5QRXdS)z9Compile a single source files with a Unix-style compiler.rZaCCz-Aez-Aaz-AAOPT)get_config_vars z%s: %sZ _auto_dependsFz-MMDz-MFz.dz-odisplayaN) compiler_soremoveosenvirondistutils.sysconfigrjoinsplitreplace linker_sopathbasenamegetattrspawnrstrr ropenwriter )selfobjsrcextZcc_argsZextra_postargsZpp_optsZccomproptZgcv_optZccomp_sZllink_srdepsmsgfr,@/tmp/pip-install-6_kvzl1k/numpy/numpy/distutils/unixccompiler.pyUnixCCompiler__compilesF            r._compilec Cs@|||\}}|j||d}|||r0zt|Wnttfk rRYnX|tj |||j }|r|dd}|dd}dtj |j dt ||f}|j|j |g||dqp|jrs&    /  C