
    G/Ph                        d dl Z d dlZd dlZd dlZd dlmZ d dlmZ d dlm	Z	 d dl
mZ dgZ G d de          Zedk    r?d d	lmZ  ej        d
            e ed                                                     dS dS )    N)	FCompiler)find_executable)make_temp_file)logIBMFCompilerc                   `    e Zd ZdZdZdZddgdgddgdgd	gd
dgdgdZd Zd Zd Z	d Z
d ZdS )r   ibmzIBM XL Fortran Compilerzo(xlf\(1\)\s*|)IBM XL Fortran ((Advanced Edition |)Version |Enterprise Edition V|for AIX, V)(?P<version>[^\s*]*)z<F77>z	-qversionxlfxlf90z-qfixedxlf95arz-crranlib)version_cmdcompiler_f77compiler_fixcompiler_f90	linker_soarchiverr   c                   
 t          j        | g|R i |}|t          j                            d          rt          d          }t          d          }t          j                            |          rt          j                            |          ra	 t          j
        |ddg          }t          j        d|          }|r|                    d          }n# t          t          j        f$ r Y nw xY wd
|t          j                            
          rct#          t          j        
                    }|                                 
fd	|D             }|rd
dlm}	  |	|d
                   x| _        }|S )Naixlslppr
   z-Lcxlfcmpz xlfcmp:(?P<version>\d+([.]\d+)+)versionz/etc/opt/ibmcmp/xlfc           	          g | ]B}t           j                            t           j                            |d                     @|CS )zxlf.cfg)ospathisfilejoin).0dxlf_dirs     ]/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numpy/distutils/fcompiler/ibm.py
<listcomp>z,IBMFCompiler.get_version.<locals>.<listcomp>5   s>    UUUqWa0S0S!T!TUUUU    r   )LooseVersion)r   get_versionsysplatform
startswithr   r   r   exists
subprocesscheck_outputresearchgroupOSErrorCalledProcessErrorisdirsortedlistdirreversedistutils.versionr%   r   )selfargskwdsr   r   r
   omlr%   r!   s             @r"   r&   zIBMFCompiler.get_version   s   ':d:::T::?s|66u==?#G,,E!%((Cw~~c"" 7rw~~e'<'< 77"/x0HIIA 	"EqIIA6AGGI$6$6'	  !>?   D (?rw}}W55?
 rz'**++AIIKKKUUUUAUUUA <::::::)5ad););;ws   C C21C2c                     dgS )Nz	-qextname r7   s    r"   	get_flagszIBMFCompiler.get_flags;   s
    }r$   c                     dgS )Nz-gr>   r?   s    r"   get_flags_debugzIBMFCompiler.get_flags_debug>   s	    vr$   c                    g }t           j        dk    r|                    d           n|                    d           |                     ddg          }|t           j                            d          rd}nd	|z  }t          d
          \  }}t          j        d|z              t          |          5 }t          j
        d          j        }|D ]P} ||          }	|	r,|                    d|	                    d          z             ;|                    |           Q	 d d d            n# 1 swxY w Y   |                                 |                    d|z              |S )Ndarwinz/-Wl,-bundle,-flat_namespace,-undefined,suppressz-bsharedr   (   )	ok_statusr   z/etc/xlf.cfgz/etc/opt/ibmcmp/xlf/%s/xlf.cfgz_xlf.cfg)suffixz	Creating z \s*crt\s*=\s*(?P<path>.*)/crt1.ozcrt = %s/bundle1.o
r   z-F)r'   r(   appendr&   r)   r   r   infoopenr-   compilematchwriter/   close)
r7   optr   xlf_cfgfonew_cfgfi
crt1_matchliner;   s
             r"   get_flags_linker_soz IBMFCompiler.get_flags_linker_soA   s   <!!JJHIIIIJJz"""""aW"55|&&u-- E(:WD(
;;;KBH[()))g '"Z(KLLR
 ' 'D"
4((A '!71776??!KLLLL'' ' ' ' ' ' ' ' ' ' ' ' ' ' ' HHJJJJJtG|$$$
s   9A-D33D7:D7c                     dgS )Nz-O3r>   r?   s    r"   get_flags_optzIBMFCompiler.get_flags_opt[   s	    wr$   N)__name__
__module____qualname__compiler_typedescriptionversion_patternexecutablesr&   r@   rB   rV   rX   r>   r$   r"   r   r      s        M+K JO ";/!9-!!"
 
K  <      4    r$   __main__)customized_fcompiler   r	   )compiler)r   r-   r'   r+   numpy.distutils.fcompilerr   numpy.distutils.exec_commandr   numpy.distutils.misc_utilr   	distutilsr   	compilersr   rY   numpy.distutilsra   set_verbosityprintr&   r>   r$   r"   <module>rl      s   				 				 



     / / / / / / 8 8 8 8 8 8 4 4 4 4 4 4      	O O O O O9 O O Ob z444444Ca	E


.
.
.
:
:
<
<===== r$   