ÀˆMa¨:ã@sÇddlZddlZddlZddlmZddlmZddlmZm Z m Z ddl m Z m Z mZmZddlmZejdkr­ddlZGdd „d eƒZdS) éN)Ú sysconfig)Únewer)Ú CCompilerÚgen_preprocess_optionsÚgen_lib_options)ÚDistutilsExecErrorÚ CompileErrorÚLibErrorÚ LinkError)ÚlogÚdarwincs eZdZdZddddgddgddgddd gd dgd d d gddiZejdd…dkr†dgedrrÚ isinstanceÚstrÚtypeÚ TypeErrorr)r*Újoinr@rAr%r(r+rZ EXECUTABLErrrÚbasenamer5r6r7r8r,rr r rB)rZ target_descrArDr=r r!r"Zexport_symbolsrBr.r/Z build_temprCr0Zlib_optsZld_argsZlinkerÚir3r#r#r$ÚlinkžsH       "zUnixCCompiler.linkcCsd|S)Nz-Lr#)rÚdirr#r#r$Úlibrary_dir_optionØsz UnixCCompiler.library_dir_optioncCsd|kpd|kS)NÚgcczg++r#)rZ compiler_namer#r#r$Ú_is_gccÛszUnixCCompiler._is_gcccCs tjjtjdƒƒ}tjdd…dkr<d|Stjdd…dkr]d|Stjdd…d kr¡|j|ƒr“d d|gSd d|gStjdd…d ksÓtjdd…d krÝd|gS|j|ƒrtjdƒdkr d|Sd|Snd|SdS)NÚCCrr z-LéZfreebsdz -Wl,-rpath=ézhp-uxz-Wl,+sz+sZirix646Zosf1V5z-rpathÚGNULDÚyesz-Wl,--enable-new-dtags,-Rz-Wl,-Rz-R)r)r*rNrrr5r6rT)rrQrr#r#r$Úruntime_library_dir_optionÞs 2  z(UnixCCompiler.runtime_library_dir_optioncCsd|S)Nz-lr#)rÚlibr#r#r$Úlibrary_option szUnixCCompiler.library_optioncCs.|j|ddƒ}|j|ddƒ}|j|ddƒ}|j|ddƒ}tjdkr¨tjdƒ}tjd|ƒ} | dkr™d } n| jd ƒ} x|D]w} tj j | |ƒ} tj j | |ƒ} tj j | |ƒ}tj j | |ƒ}tjdkrÎ| j d ƒsF| j d ƒrÎ| j d ƒ rÎtj j | | d d…|ƒ} tj j | | d d…|ƒ} tj j | | d d…|ƒ}tj j | | d d…|ƒ}tj j | ƒrä| Stj j |ƒrú|Stj j | ƒr| Stj j |ƒr¯|Sq¯WdS)NZlib_typeÚsharedÚdylibÚ xcode_stubÚstaticr ÚCFLAGSz-isysroot\s+(\S+)ú/rGz/System/z/usr/z /usr/local/) r?r5r6rrÚreÚsearchÚgroupr)r*rMÚ startswithÚexists)rÚdirsr[rBZshared_fZdylib_fZ xcode_stub_fZstatic_fZcflagsÚmZsysrootrQr]r^r`r_r#r#r$Úfind_library_file s>   """"zUnixCCompiler.find_library_file)Ú__name__Ú __module__Ú __qualname__Z compiler_typeZ executablesr5r6Zsrc_extensionsZ obj_extensionZstatic_lib_extensionZshared_lib_extensionZdylib_lib_extensionZxcode_stub_lib_extensionZstatic_lib_formatZshared_lib_formatZdylib_lib_formatZxcode_stub_lib_formatZ exe_extensionrr4r<rErPrRrTrZr\rjr#r#)rr$r -sF            6   , r )r)r5rcZ distutilsrZdistutils.dep_utilrZdistutils.ccompilerrrrZdistutils.errorsrrr r r r6r7r r#r#r#r$Ús$"