o 6a@sddlZddlmZddlmZmZgdZddZGdddeZGd d d eZ Gd d d e Z Gd dde Z GdddeZ Gddde Z Gddde ZedkrrddlmZedddlmZeedddSdS)Nsimple_version_match) FCompilerdummy_fortran_file)IntelFCompilerIntelVisualFCompilerIntelItaniumFCompilerIntelItaniumVisualFCompilerIntelEM64VisualFCompilerIntelEM64TFCompilercCstd|fdS)Nz"Intel.*?Fortran.*?(?:%s).*?Versionstartr)typerA/usr/lib/python3/dist-packages/numpy/distutils/fcompiler/intel.pyintel_version_match src@seZdZddZddZdS)BaseIntelFCompilercCs*t}dddd|dd|dg|jd<dS) N-FIz-Vz-c.fz-o.o version_cmdr executablesselffrrrupdate_executablessz%BaseIntelFCompiler.update_executablescCsd|vsJd|S)N,z -Wl,-rpath=%srrdirrrrruntime_library_dir_options z-BaseIntelFCompiler.runtime_library_dir_optionN)__name__ __module__ __qualname__rr!rrrrrs rc@seZdZdZdZdZedZddgZdgddgdd gd d gd d gdgdZ dgZ dZ dZ ddZ ddZddZddZddZdS)rintel)ifortz&Intel Fortran Compiler for 32-bit apps 32-bit|IA-32r&ifcN)Nz-72-w90-w95r-sharedar-crranlib)r compiler_f77 compiler_f90 compiler_fix linker_soarchiverr/-fPICz-module z-IcCdgS)Nz-FRrrrrrget_flags_free5zIntelFCompiler.get_flags_freecCr6)Nr5rr7rrr get_flags8r9zIntelFCompiler.get_flagscCs2|}|r |dkr dnd}dddddd |gS) N15openmpqopenmpz -fp-modelstrictz-O1z-assumeminus0z-{}) get_versionformat)rvmpoptrrr get_flags_opt;s  zIntelFCompiler.get_flags_optcCgSNrr7rrrget_flags_archAzIntelFCompiler.get_flags_archcCsvt|}|}|r|dkr|dtjdkr9z |d}|dWn ty0d}Ynwddg|||<|S)Nz8.0z -nofor_maindarwinr,rz -dynamiclibz-Wl,-undefined,dynamic_lookup) rget_flags_linker_sor@appendsysplatformindexremove ValueError)roptrBidxrrrrJDs      z"IntelFCompiler.get_flags_linker_so)r"r#r$ compiler_typecompiler_aliases descriptionr version_matchpossible_executablesr pic_flagsmodule_dir_switchmodule_include_switchr8r:rDrGrJrrrrrs,  rc@sPeZdZdZdZdZedZgdZdgdddgdgd d gd d gd gdZ dS)rintelerz'Intel Fortran Compiler for Itanium appsz Itanium|IA-64r&efortefcNNrr)r*rr+r,r-r.r/rr0r2r1r3r4r/ r"r#r$rSrTrUrrVrWrrrrrrT rc@sPeZdZdZdZdZedZgdZdddgddgdgdd gd d gd gd Z dS)r intelemrz&Intel Fortran Compiler for 64-bit appsz)EM64T-based|Intel\(R\) 64|64|IA-64|64-bitr\Nrr+r,r-r.r/r`rarrrrr hrbr c@seZdZdZdZedZddZdZddgZ d d gd gd gd ged d gd d Z d Z dZ d Z dZdZddZddZddZddZddZddZd S)rintelvz-Intel Visual Fortran Compiler for 32-bit appsr'cCs(t}ddd|dd|dg|jd<dS)Nrz/FIz/crz/orrrrrrrrsz'IntelVisualFCompiler.update_executableszlib.exer&iflN/verbose/OUT:r`z/c z/Foz/module:z/IcCs gd}|S)N)z/nologoz/MDz/nbsz/names:lowercasez/assume:underscorer)rrQrrrr:szIntelVisualFCompiler.get_flagscCrErFrr7rrrr8rHz#IntelVisualFCompiler.get_flags_freecCddgS)Nz/4Ybz/d2rr7rrrget_flags_debugz$IntelVisualFCompiler.get_flags_debugcCrh)Nz/O1z/assume:minus0rr7rrrrDrjz"IntelVisualFCompiler.get_flags_optcCrh)Nz /arch:IA32z/QaxSSE3rr7rrrrGrjz#IntelVisualFCompiler.get_flags_archcCstrF)NotImplementedErrorrrrrr!rHz/IntelVisualFCompiler.runtime_library_dir_option)r"r#r$rSrUrrVrar_exerWrcompile_switch object_switchlibrary_switchrYrZr:r8rirDrGr!rrrrrs4  rc@sPeZdZdZdZedZdgZej Z dgdgddgdd ge d d gdd Z dS) r intelevz.Intel Visual Fortran Compiler for Itanium appsItaniumeflNr_)Nrz-4L72z-wr+r,rfrgr`) r"r#r$rSrUrrVrWrrlrrrrrr s r c@s&eZdZdZdZeddZddZdS)r intelvemz-Intel Visual Fortran Compiler for 64-bit appszIntel\(R\).*?64,r cCrErFrr7rrrrGrHz'IntelEM64VisualFCompiler.get_flags_archN)r"r#r$rSrUrrVrGrrrrr s   r __main__)log)customized_fcompilerr%)compiler)rLnumpy.distutils.ccompilerrnumpy.distutils.fcompilerrr compilersrrrrr rr r r" distutilsru set_verbositynumpy.distutilsrwprintr@rrrrs$  61