idPddlZddlZddlZddlZddlZddlZddlZddlZddlZddlm Z m Z m Z ddl m Z ddlmZddlmZddgZejdZd ZGd deZGd deZd Zed krddlmZddlmZejdeed  eed dS#e!$rZ"ee"YdZ"["dSdZ"["wwxYwdS)N)PopenPIPESTDOUT)filepath_from_subprocess_output) FCompiler) LooseVersion GnuFCompilerGnu95FCompilerzTarget: ([a-zA-Z0-9_\-]*)c\tjdkotjddkS)Nwin32r64bit)sysplatform architectureR/opt/cloudlinux/venv/lib/python3.11/site-packages/numpy/distutils/fcompiler/gnu.pyis_win64rs' <7 " Lx'<'>'>q'AW'LLrc .eZdZdZdZdZdZdZddgZdd ggd ddgd d d gdggd dZ dZ dZ e j dkrejdkrdgZejdkr dD]Ze eddZdZdZdZdZdZdZdZdZdZd Zd!ZdS)"r gnu)g77zGNU Fortran 77 compilerc0|drG||ddzd}|dGt|dkrst jd|}|r[|drd|dfS|d krd |dfSnt jd |}|rd |dfSt jd |}|r\|d}|d s*|ds|drd|fSd |fSd}t||z)z6Handle the different versions of GNU fortran compilerszgfortran: warning Nz ([0-9.]+)z GNU FortranrrgfortranzGNU Fortran\s+95.*?([0-9-.]+)z%GNU Fortran.*?\-?([0-9-.]+\.[0-9-.]+)023z6A valid Fortran version was not found in this string: ) startswithfindstriplenresearchgroupstart ValueError)selfversion_stringmverrs rgnu_version_matchzGnuFCompiler.gnu_version_matchs''(;<< G~224881<==>DDFF ''(;<< G ~  " $ $ ,77A 4",,];;4!1771::..WWYY!^^& 33 :NKKA 0"AGGAJJ// 8.JJA +GGAJJ<<$$+ S(9(9+Q\\#=N=N+!1:%'?*H~-...rc\||}|r |ddkrdS|dS)Nrrr)r.)r)r*r,s r version_matchzGnuFCompiler.version_matchLs7  " "> 2 2 AaDEMM4t rrf77N -dumpversion)N-g-Wall-fno-second-underscore)Nr3r4ar-crranlib version_cmd compiler_f77 compiler_f90 compiler_fix linker_soarchiverr8 linker_exentcygwinz-fPICr )r:r;r>r@ -mno-cygwing2cgnu95c|jdd}tjdkrtjdd}|sTddl}|d}|sd}d|}tj |dt|tjd<| gd n| d tj d r| d |S) NrdarwinMACOSX_DEPLOYMENT_TARGETrz10.9z.Env. variable MACOSX_DEPLOYMENT_TARGET set to ) stacklevel)z -undefineddynamic_lookupz-bundlez-sharedsunosz -mimpure-text)r>rrosenvironget sysconfigget_config_varwarningswarnstrextendappendr )r)opttargetrPss rget_flags_linker_soz GnuFCompiler.get_flags_linker_somsnQRR  <8 # #Z^^$>EEF  E !   "112LMM3#FQQQAM!22229-F,G.HIIF 5V<>$//+!w|AD")1BDDDW__RW\\$-F-FGG!w||B DH0DEE7>>$//+JJrNNN 1 3355  ) JJ' ( ( ( rcg}|}|`|jdz}|j||jfz}tjtj||s|j}n|j}||||j }tj dkr"|r |j dkr|dtj dkr|d|S)Nz-picr msvcgccrG cc_dynamic) rcrDstatic_lib_formatstatic_lib_extensionrMr^isfilerprV c_compilerrr compiler_type)r)rWrtrDfrs r get_librarieszGnuFCompiler.get_librariess    ! ! =(V#C&#t/H)IIA7>>"',,q!"4"455 h(C ? JJsOOO_ <7 " "z "(F22 JJu    <8 # # JJ| $ $ $ rcdgS)Nr3rr)s rget_flags_debugzGnuFCompiler.get_flags_debugs v rcv|}|r |dkrdg}ndg}|d|S)Nz3.3.3z-O2z-O3z-funroll-loops) get_versionrV)r)r,rWs r get_flags_optzGnuFCompiler.get_flags_optsM       g'CC'C #$$$ rcddl} |d}n#t$rgcYSwxYwtjd}g}||D] }|d|gz } |S)z( Return detected arch flags from CFLAGS rNCFLAGSz -arch\s+(\w+)-arch)rPget_config_varsKeyErrorr$compilefindall)r)rPcflagsarch_re arch_flagsarchs r _c_arch_flagszGnuFCompiler._c_arch_flagss ..00:FF   III *-.. OOF++ * *D 7D/ )JJs ! 00cgS)Nrrs rget_flags_archzGnuFCompiler.get_flags_archs rctjdkstjdkrtd|vsJtjdkrd|Stjdrd|Sd|S) Nr rB,rGz -Wl,-rpath,aixos400z-Wl,-blibpath:z -Wl,-rpath=)rrNotImplementedErrorr )r)dirs rruntime_library_dir_optionz'GnuFCompiler.runtime_library_dir_options <7 " "clh&>&>% %#~~~~ <8 # #&&& & \ $ $%5 6 6 ')C)) )&&& &r)__name__ __module__ __qualname__rcompiler_aliases descriptionr.r0possible_executables executablesmodule_dir_switchmodule_include_switchrMnamerr pic_flagskeyrVrDsuggested_f90_compilerrZrcrkrxrrrrrrrrrr r sM +K+/+/+/Z "5>/HHH..."...  K  w$3<833I  |wM 3 3C   # #M 2 2 2 2 C$!!!F   *,*      '''''rc eZdZdZdZdZdZddgZddggd gd gd gd d d gdgddgdZdZ dZ e j dr\edde jddddkr dD]ZeeddZdZdZdZdZd Zd!Zd"Zd#Zd$Zd%ZdS)&r rE)rzGNU Fortran 95 compilerc||}|r |ddkrdS|d}t|dkrn5tjdkr%dD]"}|j|d#|S)Nrrr4r )r:r;r<r=r>r@rC)r.rrrrrV)r)r*r,rs rr0zGnu95FCompiler.version_matchs  " "> 2 2 AaDJ&&4 aD ??c ! ! |w&&@@C$S)00????rrf95r2)Nr4r3z -ffixed-formr5)Nr4r3r5)rr4r3r6r7r8Nr4r9z-Jz-Irr>z -lpthreadrrI64)r;r<r=r>r@z-maix64ctjdksgSg}|}d|vrd||d<dD]-}t ||r||vr|d|g.|S)z>Return a list of -arch flags for every supported architecture.rGi386i686)ppcrx86_64ppc64s390xr)rrrindex _can_targetrU)r)cmdrc_archsrs r_universal_flagszGnu95FCompiler._universal_flags<s|x''I $$&& W  -3GGMM&)) *@ 3 3D3%% 3$'//!!7D/222rct|}||j}|r||dd<|SNr)r get_flagsrr<r)flagsrs rrzGnu95FCompiler.get_flagsLsE&&t,,**4+<==  #"E"1"I rct|}||j}|r||dd<|Sr)r rZrr>rs rrZz"Gnu95FCompiler.get_flags_linker_soSsD0066**4>::  #"E"1"I rct|}tjdkr|j}|r|jdkr|}|rtj | }tjj |gtj fdzR}tj |d}tj |}tj tj |dr|||}|r|||S)Nr rzrmrnz libmingwex.a)r rxrrrr get_targetrMr^rorcrprrrqrVrk) r)rWrrXrtrur^mingwdirrws rrxzGnu95FCompiler.get_library_dirsZs,++D11 <7 " "J -j6&@@**-(()<)<)>)>??A7<@bi]Q->@@@D7<<e44D!w//55Hw~~bgll8^&L&LMM- 8,,,3355  ) JJ' ( ( ( rct|}tjdkr|dtjdkrv|j}|rV|jdkrKd|vrG|d}||dzd||dzd|j}|r |jdkrgS |S) NrGr|r rzr{rmingwexmingw32) r rrrremoverrrinsert)r)rWris rrzGnu95FCompiler.get_librariesms((.. <8 # # JJ| $ $ $ <7 " "J 1j6&@@C<< %((AJJq1ui000JJq1ui000J j6&@@  rcj tj|jdgztjtj}|\}}|pd|pdz}t |}t |}|r|dSn#ttj f$rYnwxYwdS)Nz-v)stdinstderrrr) r\rr;r communicaterTARGET_Rr%r&r`ra)r)pstdoutrrbr+s rrzGnu95FCompiler.get_targets " !TF* o!A ]]__NFFm #6F5V<> >&&tG}}tL7I7I'IJJ :: CCC27++ G  WQZ ( (***+--/aR11sN[0<?#E v%v%v%7<< x887<< H557<< H55 7>>( # # &X% %  3-.g>012G   $ --1#h.**" 1    :: '&II&Ih&((:IF% $  ! ! # # #*.)H4555!!rc|jdvS)N)rz)r)r)compilers rcan_ccompiler_linkz!Gnu95FCompiler.can_ccompiler_links%Z77rc|jjdkrg}g}|D]T}|dr||?||Ug}g}|dddD]L} || g|||d\} } |d| |d| M|s|S|||||d\} } | g|zStd ) z Convert a set of object files that are not compatible with the default linker, to a file that is compatible. rzz.aNT)rrrFzUnsupported C compiler)rrlowerendswithrVrrr() r)rrrarchives plain_objectsobj chained_libsrarchiverndlls rwrap_unlinkable_objectsz&Gnu95FCompiler.wrap_unlinkable_objectssU ? (F 2 2HM . .99;;''--.OOC((((!((----LL#DDbD> , ,11I!!-# 2%%S ##As+++##As++++  $##--) .""HC 5<' '566 6r)rrrrrrr0rrrrrrr rVrrrDrrrZrxrrrrr rrrrr r sM%+K&'.!>2444444444111"  K  |/003K '' 444 8 " "1 %bqb )T 1 1` 3 3C '' 2222 C &$$    <"<"<"|888+7+7+7+7+7rc|dd}tjd\}}tj| tj|}tj|ddz} |d|d|gt|tt|}| |j dktj |rtj|tj|S#tj |rtj|wwxYw#tj|wxYw) z7Return true if the architecture supports the -arch flagNz.f)suffixrz.orz-c)rrcwd)tempfilemkstemprMcloser^r_rrUrrrr returncoderqr)rrnewcmdfidfilenamertrbrs rrrs= VF$D111MCHSMMM  GOOH % %!!(++A.5 " MM7D$9 : : :fVDa@@@A MMOOO<1$w~~f%% " &!!! (w~~f%% " &!!!! " (s%AEAD3E6EEE+__main__)log)customized_fcompilerrIrg95)#r$rMrrRrrrrr\rrrnumpy.distutils.exec_commandrnumpy.distutils.fcompilerrdistutils.versionr compilersrrrr r rr distutilsr numpy.distutilsr! set_verbosityprintr Exceptionerrrr-s0  **********HHHHHH//////****** - . 2:2 3 3 MMMm'm'm'm'm'9m'm'm'`A7A7A7A7A7\A7A7A7H( z444444Ca E  u % % 1 1 3 3444 ""5))557788888  as&C((D- C>>D