9Zc@`sddlmZmZmZddlZddlZddlZddlZddlZddl Z ddl m Z m Z m Z ddlmZddlmZddlmZddlmZdd gZejd Zd ZergZngZdefd YZd efd YZdZedkrddlm Z e j!deZ"e"j#e$e"j%y'eZ"e"j#e$e"j%Wqe&k reZ'e$e'qXndS(i(tdivisiontabsolute_importtprint_functionN(tPopentPIPEtSTDOUT(t FCompiler(t exec_command(tmsvc_runtime_library(t get_exceptiont GnuFCompilertGnu95FCompilersTarget: ([a-zA-Z0-9_\-]*)cC`s#tjdko"tjddkS(Ntwin32it64bit(tsystplatformt architecture(((sP/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/fcompiler/gnu.pytis_win64scB`sveZdZd$ZdZdZdZddgZid%dgd6d%dd d gd 6d%d 6d%d 6d%dd gd6ddgd6dgd6d%dd gd6Z d%Z d%Z e j dkrejdkrdgZnejdkrx.dd ddgD]Ze ejdqWndZdZdZdZdZdZdZd Zd!Zd"Zd#ZRS(&tgnutg77sGNU Fortran 77 compilercC`sTx*|jdr,||jdd}qWt|dkrtjd|}|r:|jdryd|jdfS|jdkrd |jdfSq:ntjd |}|rd |jdfStjd |}|r:|jd}|jd s#|jd s#|jdr-d|fSd |fSnd}t||dS(s6Handle the different versions of GNU fortran compilerssgfortran: warnings iis ([0-9.]+)s GNU FortranRitgfortransGNU Fortran\s+95.*?([0-9-.]+)sGNU Fortran.*?\-?([0-9-.]+)t0t2t3s6A valid Fortran version was not found in this string: N(t startswithtfindtlentretsearchtgrouptstartt ValueError(tselftversion_stringtmtvterr((sP/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/fcompiler/gnu.pytgnu_version_match#s(-  cC`s2|j|}| s&|ddkr*dS|dS(NiRi(R%tNone(R R!R#((sP/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/fcompiler/gnu.pyt version_matchNstf77s -dumpversiont version_cmds-gs-Walls-fno-second-underscoret compiler_f77t compiler_f90t compiler_fixt linker_sotars-crtarchivertranlibt linker_exetnttcygwins-fPICR s -mno-cygwintg2ctgnu95cC`s|jd}tjdkrtjjdd}|sddlj}i}|j }|j |||jdd}|tjd<|dkrd}t j |qn|j ddd gn |jd tjjd r|jd n|S( NitdarwintMACOSX_DEPLOYMENT_TARGETis10.3s2Env. variable MACOSX_DEPLOYMENT_TARGET set to 10.3s -undefinedtdynamic_lookups-bundles-sharedtsunoss -mimpure-text(R-RRtostenvirontgetR&tdistutils.sysconfigt sysconfigtget_makefile_filenametparse_makefiletwarningstwarntextendtappendR(R toptttargettsctgtfilenamets((sP/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/fcompiler/gnu.pytget_flags_linker_soos$     cC`s<t|jdgdd\}}|s8tjj|SdS(Ns-print-libgcc-file-nametuse_teei(RR*R:tpathtdirnameR&(R tstatustoutput((sP/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/fcompiler/gnu.pytget_libgcc_dirs   cC`s%g}tjd dkr!|j}|r!tjdkr|jd rtjj|}tjj|d|j}tjj |stjj|tj fd}tjj tjj|d}tjj|d|j}tjj |r |j |q qn|j |q!n|S(NitlinuxR s/usr/libslib%s.aitlib( RRRQRR:RMtnormpathtjoinR4texiststpardirtabspathRD(R REtdRMtroottd2((sP/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/fcompiler/gnu.pytget_library_dirss !cC`sg}|j}|dk rq|jd}|j||jf}tjjtjj||sz|j}qzn |j}|dk r|j |n|j }t j dkr|r|j dkr|j dt}|r|j |qnt j dkr|j dn|S(Ns-picR tmsvctgccR6t cc_dynamic(RQR&R4tstatic_lib_formattstatic_lib_extensionR:RMtisfileRURDt c_compilerRRt compiler_typeR(R RERYR4tfRct runtime_lib((sP/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/fcompiler/gnu.pyt get_librariess(   !     cC`sdgS(Ns-g((R ((sP/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/fcompiler/gnu.pytget_flags_debugscC`sD|j}|r*|dkr*dg}n dg}|jd|S(Ns3.3.3s-O2s-O3s-funroll-loops(t get_versionRD(R R#RE((sP/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/fcompiler/gnu.pyt get_flags_opts     cC`s|ddlm}y|jd}Wntk r8gSXtjd}g}x'|j|D]}|d|g7}q^W|S(s( Return detected arch flags from CFLAGS i(R>tCFLAGSs -arch\s+(\w+)s-arch(t distutilsR>tget_config_varstKeyErrorRtcompiletfindall(R R>tcflagstarch_ret arch_flagstarch((sP/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/fcompiler/gnu.pyt _c_arch_flagss cC`sgS(N((R ((sP/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/fcompiler/gnu.pytget_flags_archscC`sd|S(Ns-Wl,-rpath="%s"((R tdir((sP/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/fcompiler/gnu.pytruntime_library_dir_options(RN(t__name__t __module__Rdtcompiler_aliasest descriptionR%R'tpossible_executablesR&t executablestmodule_dir_switchtmodule_include_switchR:tnameRRt pic_flagstkeyRDR4tsuggested_f90_compilerRKRQR\RgRhRjRuRvRx(((sP/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/fcompiler/gnu.pyR sB +       '     cB`seZdZdZdZdZddgZiddgd6ddd d d ged 6ddd d ged 6ddd d d ged6ddd gd6ddgd6dgd6ddgd6Z dZ dZ dZ dZ dZdZdZdZdZdZRS( R5RsGNU Fortran 95 compilercC`s|j|}| s&|ddkr*dS|d}|dkrCnItjdkrx7dddd d d gD]}|j|jd qkWn|S( NiRis4.R R)R*R+R,R-R1s -mno-cygwin(R%R&RRR~RD(R R!R#R((sP/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/fcompiler/gnu.pyR's   tf95ss -dumpversionR)s-Walls-gs -ffixed-forms-fno-second-underscoreR*R+R,R-R.s-crR/R0R1s-Js-IcC`stjdksgSg}|j}d|krGd||jdReturn a list of -arch flags for every supported architecture.R6ti386ti686tppctx86_64tppc64s-arch(RRRutindext _can_targetRC(R tcmdRstc_archsRt((sP/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/fcompiler/gnu.pyt_universal_flagss  cC`s8tj|}|j|j}|r4||d*n|S(Ni(R t get_flagsRR+(R tflagsRs((sP/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/fcompiler/gnu.pyR%s  cC`s8tj|}|j|j}|r4||d*n|S(Ni(R RKRR-(R RRs((sP/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/fcompiler/gnu.pyRK,s  cC`stj|}tjdkr|j}|r|jdkr|j}|rtjj |j }tjj |tj fd}tjj |d}tjj |}tjj tjj |dr|j|qqqn|S(NR R]iRSs libmingwex.a(R R\RRRcRdt get_targetR:RMRTRQRURWRVRD(R RERcRFRYRZRMtmingwdir((sP/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/fcompiler/gnu.pyR\3s  !cC`stj|}tjdkr.|jdntjdkr|j}|r|jdkrd|kr|jd}|j|dd|j|ddqnt r|j}|r|jdkrgSqn|S( NR6R_R R]R^itmingwextmingw32( R RgRRtremoveRcRdRtinsertR(R RERcti((sP/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/fcompiler/gnu.pyRgBs     cC`sQt|jdgdd\}}|sMtj|}|rM|jdSndS(Ns-vRLiit(RR*tTARGET_RRR(R RORPR"((sP/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/fcompiler/gnu.pyRVs  cC`s!trdgStj|SdS(Ns-O0(RR Rj(R ((sP/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/fcompiler/gnu.pyRj`s (RN(RyRzRdR{R|R'R}R&t _EXTRAFLAGSR~RRR4RRRKR\RgRRj(((sP/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/fcompiler/gnu.pyR s6              cC`s|}tjdd\}}ztjj|}tjj|dd}zR|jd|d|gt|dtdt d |}|j |j dkSWd tjj |rtj |nXWd tj |XtS( s7Return true if the architecture supports the -arch flagtsuffixs.fis.os-archs-ctstderrtstdouttcwdN(ttempfiletmkstempR:RMRNtsplitextRCRRRt communicatet returncodeRVRtFalse(RRttnewcmdtfidRIRYRPtp((sP/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/fcompiler/gnu.pyRfs t__main__(tlogi((t __future__RRRRR:RRARRt subprocessRRRtnumpy.distutils.fcompilerRtnumpy.distutils.exec_commandRtnumpy.distutils.misc_utilRtnumpy.distutils.compatR t compilersRoRRRR R RRyRlRt set_verbositytcompilert customizetprintRit Exceptiontmsg(((sP/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/fcompiler/gnu.pytsB          {