U
    ui{                     @   s   d dl Z d dlmZ d dlmZmZ d dlmZ dgZG dd deZ	e
dkrd dlmZ ed	 d d
lmZ eedd  dS )    N)cpu)	FCompilerdummy_fortran_file)	cyg2win32AbsoftFCompilerc                   @   s   e Zd ZdZdZdZddgdgdgdgdd	gd
gdZejdkrDdZ	dZ
dZdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd  Zd!d" Zd#d$ ZdS )%r   absoftzAbsoft Corp Fortran Compilerz(f90:.*?(Absoft Pro FORTRAN Version|FORTRAN 77 Compiler|Absoft Fortran Compiler Version|Copyright Absoft Corporation.*?Version)) (?P<version>[^\s*,]*)(.*?Absoft Corp|)NZf77f90<F90>arz-crranlib)version_cmdZcompiler_f77Zcompiler_fixZcompiler_f90	linker_soarchiverr   ntz/out:z-pc                 C   s,   t t }ddd|d d|d g| jd< d S )Nr	   z-Vz-cz.fz-oz.or   )r   r   executables)selff r   Z/home/lhs5088/backend/venv/lib/python3.8/site-packages/numpy/distutils/fcompiler/absoft.pyupdate_executables/   s    
  z"AbsoftFCompiler.update_executablesc                 C   s2   t jdkrdg}n|  dkr&dg}nddg}|S )Nr   z/dllz9.0z-sharedz-KZshared)osnameget_versionr   optr   r   r   get_flags_linker_so4   s    
z#AbsoftFCompiler.get_flags_linker_soc                 C   s   t jdkrdd| gS d| S )Nr   z-linkz/PATH:%sz-Lr   r   )r   dirr   r   r   library_dir_optionA   s    
z"AbsoftFCompiler.library_dir_optionc                 C   s   t jdkrd| S d| S )Nr   z%s.libz-lr   )r   libr   r   r   library_optionF   s    
zAbsoftFCompiler.library_optionc                 C   sb   t | }tjd}|r^|  dkr,d}nd}t r>d}nd}|tj	
|d||f  |S )NZABSOFT10.0sh Z64z%slib%s)r   get_library_dirsr   environgetr   r   Zis_64bitappendpathjoin)r   r   dprefixsuffixr   r   r   r$   K   s    
z AbsoftFCompiler.get_library_dirsc                 C   s   t | }|  dkr*|ddddg nR|  dkrJ|ddddg n2|  dkrj|d	d
ddg n|d
d	ddg tjdkr|d |S )Nz11.0Zaf90mathZafioZaf77mathZamiscr!   ZU778.0Zf90mathZfioZf77mathZfmathr   ZCOMDLG32)r   get_librariesr   extendr   r   r'   r   r   r   r   r.   [   s    


zAbsoftFCompiler.get_librariesc                 C   sB   t | }tjdkr>|dg |  r>|  dkr>|d |S )Nr   z-sz8.2z-fpic)r   	get_flagsr   r   r/   r   r'   r   r   r   r   r0   i   s    


zAbsoftFCompiler.get_flagsc                 C   sx   t | }|dddg |  }tjdkrH|rt|dkrt|ddg n,|d |rt|dkrj|d	 n
|d |S )
Nz-N22z-N90z-N110r   r-   -fz-N154.6z-B108)r   get_flags_f77r/   r   r   r   r'   )r   r   vr   r   r   r3   r   s    



zAbsoftFCompiler.get_flags_f77c              	   C   sF   t | }|dddddddg |  rB|  dkrB|d	g |S )
N-YCFRL=1-YCOM_NAMES=LCS	-YCOM_PFX	-YEXT_PFX-YCOM_SFX=_-YEXT_SFX=_-YEXT_NAMES=LCSr2   z-YDEALLOC=ALL)r   get_flags_f90r/   r   r   r   r   r   r<      s    
  zAbsoftFCompiler.get_flags_f90c              	   C   s4   t | }|dddddddg |dd	g |S )
Nr5   r6   r7   r8   r9   r:   r;   r1   Zfixed)r   get_flags_fixr/   r   r   r   r   r=      s    
  zAbsoftFCompiler.get_flags_fixc                 C   s
   dg}|S )Nz-Or   r   r   r   r   get_flags_opt   s    zAbsoftFCompiler.get_flags_opt)__name__
__module____qualname__compiler_typedescriptionZversion_patternr   r   r   Zlibrary_switchZmodule_dir_switchZmodule_include_switchr   r   r   r    r$   r.   r0   r3   r<   r=   r>   r   r   r   r   r      s4   

		__main__)log   )customized_fcompilerr   )compiler)r   Znumpy.distutils.cpuinfor   Znumpy.distutils.fcompilerr   r   Znumpy.distutils.misc_utilr   Z	compilersr   r?   	distutilsrE   set_verbosityZnumpy.distutilsrG   printr   r   r   r   r   <module>   s    	
