o
    p‘>eŒ  ã                   @   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rCd dlmZ e d	¡ d d
lmZ eedd ¡ ƒ dS 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r"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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_f90Z	linker_soZ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   úa/home/www/facesmatcher.com/pyenv/lib/python3.10/site-packages/numpy/distutils/fcompiler/absoft.pyÚupdate_executables/   s   
ÿz"AbsoftFCompiler.update_executablesc                 C   s6   t jdkr
dg}|S |  ¡ dkrdg}|S 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| g d¢¡ n#|  ¡ dkr!| g d¢¡ n|  ¡ dkr/| g d¢¡ n| g d¢¡ tjdkr@| d	¡ |S )
Nz11.0)Úaf90mathÚafioÚaf77mathZamiscr   )r+   r,   r-   ÚU77ú8.0)Úf90mathÚfioZf77mathr.   )r1   r0   Zfmathr.   r   ZCOMDLG32)r   Úget_librariesr   Úextendr   r   r%   r   r   r   r   r2   [   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   r3   r   r%   r   r   r   r   r4   i   s   


zAbsoftFCompiler.get_flagsc                 C   sz   t  | ¡}| g d¢¡ |  ¡ }tjdkr$|r"|dkr"| ddg¡ |S | d¡ |r;|dkr6| d¡ |S | d¡ |S )N)z-N22z-N90z-N110r   r/   ú-fz-N15ú4.6z-B108)r   Úget_flags_f77r3   r   r   r   r%   )r   r   Úvr   r   r   r7   r   s   



ø

ÿzAbsoftFCompiler.get_flags_f77c                 C   s<   t  | ¡}| g d¢¡ |  ¡ r|  ¡ dkr| dg¡ |S )N©z-YCFRL=1z-YCOM_NAMES=LCSz	-YCOM_PFXz	-YEXT_PFXz-YCOM_SFX=_z-YEXT_SFX=_z-YEXT_NAMES=LCSr6   z-YDEALLOC=ALL)r   Úget_flags_f90r3   r   r   r   r   r   r:   „   s   
zAbsoftFCompiler.get_flags_f90c                 C   s*   t  | ¡}| g d¢¡ | ddg¡ |S )Nr9   r5   Úfixed)r   Úget_flags_fixr3   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__Zcompiler_typeÚdescriptionZversion_patternr   r   r   Zlibrary_switchZmodule_dir_switchZmodule_include_switchr   r   r   r   r"   r2   r4   r7   r:   r<   r=   r   r   r   r   r      s6    ù

		Ú__main__)Úlogé   )Úcustomized_fcompilerr   )Úcompiler)r   Znumpy.distutils.cpuinfor   Znumpy.distutils.fcompilerr   r   Znumpy.distutils.misc_utilr   Z	compilersr   r>   Ú	distutilsrC   Zset_verbosityZnumpy.distutilsrE   Úprintr   r   r   r   r   Ú<module>   s    	
ü