U
    O8Úc{  ã                   @   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r‚d 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f77Z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   úD/tmp/pip-unpacked-wheel-fd_gsd75/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   r/   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   r2   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=LCSr1   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 )
Nr4   r5   r6   r7   r8   r9   r:   r0   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-   r/   r2   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>   Ú	distutilsrD   Úset_verbosityZnumpy.distutilsrF   Úprintr   r   r   r   r   Ú<module>   s    	
