B
    ôàn\½  ã               @   sš   d dl mZmZmZ 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r–d d	lmZ e d
¡ d dlmZ eedd ¡ ƒ dS )é    )ÚdivisionÚabsolute_importÚprint_functionN)Ú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f77Zf90z<F90>Zarz-crÚranlib)Úversion_cmdZcompiler_f77Zcompiler_fixZcompiler_f90Z	linker_soZarchiverr   Úntz/out:z-pc             C   s,   t tƒ ƒ}ddd|d d|d g| jd< d S )Nz<F90>z-Vz-cz.fz-oz.or   )r   r   Úexecutables)ÚselfÚf© r   ú?lib/python3.7/site-packages/numpy/distutils/fcompiler/absoft.pyÚupdate_executables1   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_so6   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_optionC   s    
z"AbsoftFCompiler.library_dir_optionc             C   s   t jdkrd| S d| S )Nr   z%s.libz-l)r   r   )r   Úlibr   r   r   Úlibrary_optionH   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ABSOFTz10.0Z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   M   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amiscz10.0ZU77z8.0Zf90mathZfioZf77mathZfmathr   ZCOMDLG32)r   Úget_librariesr   Úextendr   r   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   r   r)   k   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   z8.0z-fz-N15z4.6z-B108)r   Úget_flags_f77r(   r   r   r   r!   )r   r   Úvr   r   r   r*   t   s    



zAbsoftFCompiler.get_flags_f77c          	   C   sF   t  | ¡}| dddddddg¡ |  ¡ rB|  ¡ dkrB| d	g¡ |S )
Nz-YCFRL=1z-YCOM_NAMES=LCSz	-YCOM_PFXz	-YEXT_PFXz-YCOM_SFX=_z-YEXT_SFX=_z-YEXT_NAMES=LCSz4.6z-YDEALLOC=ALL)r   Úget_flags_f90r(   r   )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 )
Nz-YCFRL=1z-YCOM_NAMES=LCSz	-YCOM_PFXz	-YEXT_PFXz-YCOM_SFX=_z-YEXT_SFX=_z-YEXT_NAMES=LCSz-fZfixed)r   Úget_flags_fixr(   )r   r   r   r   r   r-      s
    
zAbsoftFCompiler.get_flags_fixc             C   s
   dg}|S )Nz-Or   )r   r   r   r   r   Úget_flags_opt–   s    zAbsoftFCompiler.get_flags_opt)Ú__name__Ú
__module__Ú__qualname__Zcompiler_typeZdescriptionZversion_patternr   r   r   Zlibrary_switchZmodule_dir_switchZmodule_include_switchr   r   r   r   r   r'   r)   r*   r,   r-   r.   r   r   r   r   r	      s2   

		Ú__main__)Úlogé   )Úcustomized_fcompilerr
   )Zcompiler)Z
__future__r   r   r   r   Znumpy.distutils.cpuinfor   Znumpy.distutils.fcompilerr   r   Znumpy.distutils.misc_utilr   Z	compilersr	   r/   Z	distutilsr3   Zset_verbosityZnumpy.distutilsr5   Úprintr   r   r   r   r   Ú<module>   s    	
