o
    ʩZh                     @   s   d dl Z d dlmZ d dlmZmZ g dZdd ZG dd deZG d	d
 d
eZ	G dd de	Z
G dd de	ZG dd deZG dd deZG dd deZedkrrd dlmZ ed d dlmZ eedd  dS dS )    Nsimple_version_match)	FCompilerdummy_fortran_file)IntelFCompilerIntelVisualFCompilerIntelItaniumFCompilerIntelItaniumVisualFCompilerIntelEM64VisualFCompilerIntelEM64TFCompilerc                 C   s   t d| f dS )Nz"Intel.*?Fortran.*?(?:%s).*?Versionstartr   )type r   V/var/www/html/lang_env/lib/python3.10/site-packages/numpy/distutils/fcompiler/intel.pyintel_version_match   s   r   c                   @   s   e Zd Zdd Zdd ZdS )BaseIntelFCompilerc                 C   s*   t  }dddd|d d|d g| jd< d S )	N<F77>-FIz-Vz-c.fz-o.oversion_cmdr   executablesselffr   r   r   update_executables   s   z%BaseIntelFCompiler.update_executablesc                 C   s   d|vsJ d| S )N,z-Wl,-rpath=%sr   r   dirr   r   r   runtime_library_dir_option   s   z-BaseIntelFCompiler.runtime_library_dir_optionN)__name__
__module____qualname__r   r!   r   r   r   r   r      s    r   c                   @   s   e Zd ZdZdZdZedZddgZdg ddgdd	gd
dgddgdgdZ	dgZ
dZdZdd Zdd Zdd Zdd Zdd ZdS )r   intel)ifortz&Intel Fortran Compiler for 32-bit apps32-bit|IA-32r&   ZifcN)Nz-72-w90-w95r   <F90>-sharedar-crranlib)r   compiler_f77compiler_f90compiler_fix	linker_soarchiverr.   -fPICz-module z-Ic                 C      dgS )Nz-FRr   r   r   r   r   get_flags_free5      zIntelFCompiler.get_flags_freec                 C   r5   )Nr4   r   r6   r   r   r   	get_flags8   r8   zIntelFCompiler.get_flagsc                 C   s2   |   }|r|dk rdnd}dddddd	|gS )
NZ15ZopenmpZqopenmpz	-fp-modelstrictz-O1z-assumeZminus0z-{})get_versionformat)r   vZmpoptr   r   r   get_flags_opt;   s
   zIntelFCompiler.get_flags_optc                 C      g S Nr   r6   r   r   r   get_flags_archA      zIntelFCompiler.get_flags_archc                 C   sv   t | }|  }|r|dkr|d tjdkr9z|d}|d W n ty0   d}Y nw ddg|||< |S )Nz8.0z-nofor_maindarwinr+   r   z-dynamiclibz-Wl,-undefined,dynamic_lookup)	r   get_flags_linker_sor;   appendsysplatformindexremove
ValueError)r   optr=   idxr   r   r   rD   D   s   



z"IntelFCompiler.get_flags_linker_so)r"   r#   r$   compiler_typecompiler_aliasesdescriptionr   version_matchpossible_executablesr   Z	pic_flagsmodule_dir_switchmodule_include_switchr7   r9   r>   rA   rD   r   r   r   r   r      s,    
r   c                   @   sP   e Zd ZdZdZdZedZg dZdg dddgdgd	d
gddgdgdZ	dS )r   Zinteler   z'Intel Fortran Compiler for Itanium appszItanium|IA-64r&   ZefortZefcNNr   r(   r)   r   r*   r+   r,   r-   r.   r   r/   r1   r0   r2   r3   r.   
r"   r#   r$   rM   rN   rO   r   rP   rQ   r   r   r   r   r   r   T       
r   c                   @   sP   e Zd ZdZdZdZedZg dZdddgddgdgdd	gd
dgdgdZ	dS )r   Zintelemr   z&Intel Fortran Compiler for 64-bit appsz)EM64T-based|Intel\(R\) 64|64|IA-64|64-bitrT   Nr   r*   r+   r,   r-   r.   rV   rW   r   r   r   r   r   h   rX   r   c                   @   s   e Zd ZdZdZedZdd ZdZddgZ	d	d	gd	gd	gd	ged
dgd	dZ
dZdZdZdZdZdd Zdd Zdd Zdd Zdd Zdd Zd	S )r   Zintelvz-Intel Visual Fortran Compiler for 32-bit appsr'   c                 C   s(   t  }ddd|d d|d g| jd< d S )Nr   z/FIz/cr   z/or   r   r   r   r   r   r   r      s   z'IntelVisualFCompiler.update_executableszlib.exer&   ZiflN/verbose/OUT:rV   z/c z/Foz/module:z/Ic                 C   s   g d}|S )N)z/nologoz/MDz/nbsz/names:lowercasez/assume:underscorez/fppr   )r   rK   r   r   r   r9      s   zIntelVisualFCompiler.get_flagsc                 C   r?   r@   r   r6   r   r   r   r7      rB   z#IntelVisualFCompiler.get_flags_freec                 C      ddgS )Nz/4Ybz/d2r   r6   r   r   r   get_flags_debug      z$IntelVisualFCompiler.get_flags_debugc                 C   r[   )Nz/O1z/assume:minus0r   r6   r   r   r   r>      r]   z"IntelVisualFCompiler.get_flags_optc                 C   r[   )Nz
/arch:IA32z/QaxSSE3r   r6   r   r   r   rA      r]   z#IntelVisualFCompiler.get_flags_archc                 C   s   t r@   )NotImplementedErrorr   r   r   r   r!      rB   z/IntelVisualFCompiler.runtime_library_dir_option)r"   r#   r$   rM   rO   r   rP   r   ar_exerQ   r   Zcompile_switchZobject_switchZlibrary_switchrR   rS   r9   r7   r\   r>   rA   r!   r   r   r   r   r      s4    
r   c                   @   sP   e Zd ZdZdZedZdgZej	Z	dg dg ddgdd	ge	d
dgddZ
dS )r	   Zintelevz.Intel Visual Fortran Compiler for Itanium appsZItaniumZeflNrU   )Nr   z-4L72z-wr*   r+   rY   rZ   rV   )r"   r#   r$   rM   rO   r   rP   rQ   r   r_   r   r   r   r   r   r	      s    
r	   c                   @   s&   e Zd ZdZdZeddZdd ZdS )r
   Zintelvemz-Intel Visual Fortran Compiler for 64-bit appszIntel\(R\).*?64,r   c                 C   r?   r@   r   r6   r   r   r   rA      rB   z'IntelEM64VisualFCompiler.get_flags_archN)r"   r#   r$   rM   rO   r   rP   rA   r   r   r   r   r
      s
    
r
   __main__)log   )customized_fcompilerr%   )compiler)rF   Znumpy.distutils.ccompilerr   Znumpy.distutils.fcompilerr   r   Z	compilersr   r   r   r   r   r   r	   r
   r"   	distutilsra   Zset_verbosityZnumpy.distutilsrc   printr;   r   r   r   r   <module>   s$   62

