o
    $ح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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f77Z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   @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-   )r0   r/   Zfmathr-   r   ZCOMDLG32)r   get_librariesr   extendr   r   r$   r   r   r   r   r1   [   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   r2   r   r$   r   r   r   r   r3   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_f77r2   r   r   r   r$   )r   r   vr   r   r   r6   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=LCSr5   z-YDEALLOC=ALL)r   get_flags_f90r2   r   r   r   r   r   r9      s   
zAbsoftFCompiler.get_flags_f90c                 C   s*   t | }|g d |ddg |S )Nr8   r4   fixed)r   get_flags_fixr2   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!   r1   r3   r6   r9   r;   r<   r   r   r   r   r      s6    

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