https://t.me/RX1948
Server : Apache
System : Linux iad1-shared-b8-43 6.6.49-grsec-jammy+ #10 SMP Thu Sep 12 23:23:08 UTC 2024 x86_64
User : dh_edsupp ( 6597262)
PHP Version : 8.2.26
Disable Function : NONE
Directory :  /lib/python3/dist-packages/numpy/distutils/fcompiler/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //lib/python3/dist-packages/numpy/distutils/fcompiler/__pycache__/gnu.cpython-310.pyc
o

6��aO�
@sFddlZddlZddlZddlZddlZddlZddlZddlZddlZddlm	Z	m
Z
mZddlm
Z
ddlmZddlmZddgZe�d�Zd	d
�ZGdd�de�ZGdd�de�Zd
d�Zedkr�ddlmZddlmZe�d�eed�� ��zeed�� ��WdSe!y�Z"zee"�WYdZ"["dSdZ"["wwdS)�N)�Popen�PIPE�STDOUT)�filepath_from_subprocess_output)�	FCompiler)�LooseVersion�GnuFCompiler�Gnu95FCompilerzTarget: ([a-zA-Z0-9_\-]*)cCstjdkot��ddkS)N�win32r�64bit)�sys�platform�architecture�rr�?/usr/lib/python3/dist-packages/numpy/distutils/fcompiler/gnu.py�is_win64src	@s�eZdZdZdZdZdd�Zdd�Zdd	gZd
dggd�d
d
gd
�ddgdggd
�d�Z	d
Z
d
Zej
dkr=ejdkr=dgZejdkrNdD]	Ze	e�d�qDdZdZdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zd,d-�Zd
S).r�gnu)�g77zGNU Fortran 77 compilercCs�|�d�r||�d�dd���}|�d�st|�dkr?t�d|�}|r>|�d�r1d|�d�fS|��d	kr>d
|�d�fSn3t�d|�}|rNd
|�d�fSt�d|�}|rr|�d�}|�d
�sj|�d�sj|�d�rnd|fSd
|fSd}t||��)z6Handle the different versions of GNU fortran compilerszgfortran: warning�
�N�z	([0-9.]+)zGNU Fortranrr�gfortranzGNU Fortran\s+95.*?([0-9-.]+)z%GNU Fortran.*?\-?([0-9-.]+\.[0-9-.]+)�0�2�3z6A valid Fortran version was not found in this string:
)	�
startswith�find�strip�len�re�search�group�start�
ValueError)�self�version_string�m�v�errrrr�gnu_version_matchs2
�
�
��
zGnuFCompiler.gnu_version_matchcCs&|�|�}|r
|ddkrdS|dS)Nrrr)r))r$r%r'rrr�
version_matchLs
zGnuFCompiler.version_matchr�f77N�-dumpversion)N�-g�-Wall�-fno-second-underscore)Nr-r.�ar�-cr�ranlib��version_cmd�compiler_f77�compiler_f90�compiler_fix�	linker_so�archiverr2�
linker_exe�nt�cygwinz-fPICr
)r4r5r8r:�-mno-cygwin�g2c�gnu95cCs�|jdd�}tjdkr=tj�dd�}|s5ddl}|�d�}|s.d}d|��}tj	|dd�t
|�tjd<|�gd	��n|�d
�tj�
d�rM|�d�|S)
Nr�darwin�MACOSX_DEPLOYMENT_TARGETrz10.9z.Env. variable MACOSX_DEPLOYMENT_TARGET set to �)�
stacklevel)z
-undefined�dynamic_lookupz-bundlez-shared�sunosz
-mimpure-text)r8rr
�os�environ�get�	sysconfig�get_config_var�warnings�warn�str�extend�appendr)r$�opt�targetrI�srrr�get_flags_linker_soms 




z GnuFCompiler.get_flags_linker_soc	CsFzt�|jdg�}Wn
ttjfyYdSwt|�}tj�|�S)Nz-print-libgcc-file-name)	�
subprocess�check_outputr5�OSError�CalledProcessErrorrrF�path�dirname)r$�outputrrr�get_libgcc_dir�s
��zGnuFCompiler.get_libgcc_dirc	Cs�tjdd�dkrd}n
tjdkrd}nd}d}|rBd�|�g}z
t�|j|�}Wn
ttjfy7Y|Swt|�}t	j
�|�}|S)N��linuxzlibgfortran.sor@zlibgfortran.dylibz-print-file-name={0})rr
�formatrTrUr5rVrWrrFrXrY)r$�libgfortran_name�libgfortran_dir�find_lib_argrZrrr�get_libgfortran_dir�s&
��z GnuFCompiler.get_libgfortran_dircCs�g}tjdd�dkrd|��}|rdtjdkr_|�d�s_tj�|�}tj�|d|j�}tj�	|�s_tjj|gtj
fd�R�}tj�tj�|d��}tj�|d|j�}tj�	|�r_|�|�|�|�|�
�}|ro|�|�|S)Nr\r]r
z/usr/libzlib%s.a��lib)rr
r[rrFrX�normpath�joinr>�exists�pardir�abspathrOrb)r$rP�drX�root�d2�lib_gfortran_dirrrr�get_library_dirs�s$


zGnuFCompiler.get_library_dirscCs�g}|��}|dur&|jd}|j||jf}tj�tj�||��s%|j}n|j}|dur2|�|�|j	}t
jdkrF|rF|jdkrF|�d�t
jdkrP|�d�|S)Nz-picr
�msvc�gccr@�
cc_dynamic)
r[r>�static_lib_format�static_lib_extensionrFrX�isfilerfrO�
c_compilerrr
�
compiler_type)r$rPrjr>�frurrr�
get_libraries�s$
�




zGnuFCompiler.get_librariescCsdgS)Nr-r�r$rrr�get_flags_debug�szGnuFCompiler.get_flags_debugcCs0|��}|r|dkrdg}ndg}|�d�|S)Nz3.3.3z-O2z-O3z-funroll-loops)�get_versionrO)r$r'rPrrr�
get_flags_opt�s
zGnuFCompiler.get_flags_optcCs^ddl}z|��d}WntygYSwt�d�}g}|�|�D]}|d|g7}q$|S)z( Return detected arch flags from CFLAGS rN�CFLAGSz
-arch\s+(\w+)�-arch)rI�get_config_vars�KeyErrorr�compile�findall)r$rI�cflags�arch_re�
arch_flags�archrrr�
_c_arch_flags�s�
zGnuFCompiler._c_arch_flagscCsgS)Nrryrrr�get_flags_arch�szGnuFCompiler.get_flags_archcCsTtjdkrt�d|vs
J�tjdkrd|��Stjdd�dkr%d|��Sd|��S)	Nr
�,r@z-Wl,-rpath,��aixz-Wl,-blibpath:z-Wl,-rpath=)rr
�NotImplementedError)r$�dirrrr�runtime_library_dir_option�s




z'GnuFCompiler.runtime_library_dir_option)�__name__�
__module__�__qualname__rv�compiler_aliases�descriptionr)r*�possible_executables�executables�module_dir_switch�module_include_switchrF�namerr
�	pic_flags�keyrOr>�suggested_f90_compilerrSr[rbrnrxrzr|r�r�r�rrrrrsF-�

#
c	@seZdZdZdZdZdd�ZddgZdd	ggd
�gd�gd
�gd�d
dgdgddgd�ZdZ	dZ
ejdd�dkrXed�
d�e��ddd�dkrXdD]	Zee�
d�qNdZdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zd,d-�Zd.d/�Zd0d1�ZdS)2r	r?)rzGNU Fortran 95 compilercCs`|�|�}|r
|ddkrdS|d}t|�dkr	|Stjdkr.dD]
}|j|�d�q#|S)Nrrr�4r
)r4r5r6r7r8r:r=)r)rrr
r�rO)r$r%r'r�rrrr*s


�zGnu95FCompiler.version_matchr�f95�<F90>r,)Nr.r-z-ffixed-formr/)Nr.r-r/)r�r.r-r0r1r2Nr.r3z-Jz-Ir�r�r8z	-lpthreadrrB�64)r5r6r7r8r:z-maix64cCs^tjdksgSg}|��}d|vrd||�d�<dD]}t||�r,||vr,|�d|g�q|S)z>Return a list of -arch flags for every supported architecture.r@�i386�i686)�ppcr��x86_64�ppc64r~)rr
r��index�_can_targetrN)r$�cmdr��c_archsr�rrr�_universal_flags<s
�zGnu95FCompiler._universal_flagscC�*t�|�}|�|j�}|r||dd�<|S�Nr)r�	get_flagsr�r6�r$�flagsr�rrrr�L�

zGnu95FCompiler.get_flagscCr�r�)rrSr�r8r�rrrrSSr�z"Gnu95FCompiler.get_flags_linker_soc	Cs�t�|�}tjdkrM|j}|rM|jdkrM|��}|rMtj�	|�
��}tjj|gtjfd�R�}tj�|d�}tj�	|�}tj�
tj�|d��rM|�|�|��}|rX|�|�|S)Nr
rorcrdzlibmingwex.a)rrnrr
rurv�
get_targetrFrXrer[rfrhrgrOrb)	r$rPrurQrjrkrX�mingwdirrmrrrrnZs 



zGnu95FCompiler.get_library_dirscCs�t�|�}tjdkr|�d�tjdkrD|j}|r7|jdkr7d|vr7|�d�}|�|dd�|�|dd�|j}|rC|jdkrCgS	|S)	Nr@rqr
rorpr�mingwex�mingw32)	rrxrr
�removerurvr��insert)r$rPru�irrrrxms




zGnu95FCompiler.get_librariesc	CsVzt�|jdg�}Wn
ttjfyYdSwt|�}t�|�}|r)|�d�SdS)Nz-vr�)	rTrUr5rVrWr�TARGET_Rr r!)r$rZr&rrrr�s�

zGnu95FCompiler.get_targetc	Cs|t��}|D]&}t|d��}	|�d�}|sn|�|�qWd�n1s'wYqt�|���}|�d�}|�	d�S)N�rbTi�ascii�=)
�hashlib�sha1�open�read�update�base64�	b32encode�digest�decode�rstrip)r$�	filenames�h�fnrw�block�textrrr�_hash_files�s

���

zGnu95FCompiler._hash_filescCs\|j}|jdkrtd��|�t|�t|��}t�rd}nd}dtj�tj�	|d��ddd�}	|	d	|d
|}
|
d}|
d}|
d
}
tj�
||�}tj�
||�}tj�
||
�}tj�|�rh||fS|rtdgt|�dg}|j|||t|�dd|ddddgd�t�r�d}nd}d|d||g}|j
s�|��|�|jg|�||fS)zeCreate a wrapper shared library for the given objects

        Return an MSVC-compatible lib
        rozThis method only supports MSVC�	win_amd64r
rdrN��.z
.gfortran-z.dllz.defz.libz-Wl,--whole-archivez-Wl,--no-whole-archivez-Wl,--allow-multiple-definitionz-Wl,--output-def,z-Wl,--export-all-symbolsz-Wl,--enable-auto-importz-staticz-mlong-double-64)�
output_dir�extra_postargsz/MACHINE:X64z/MACHINE:X86z/def:z/OUT:)rurvr#r��listrrFrX�splitext�basenamerfrt�link_shared_object�initialized�
initialize�spawnrd)r$�objectsr��
extra_dll_dir�chained_dlls�
is_archiveru�object_hash�tagr��	root_name�dll_name�def_name�lib_name�dll_path�def_path�lib_path�	specifier�lib_argsrrr�_link_wrapper_lib�s`
������z Gnu95FCompiler._link_wrapper_libcCs
|jdvS)N)ro)rv)r$�compilerrrr�can_ccompiler_link�s
z!Gnu95FCompiler.can_ccompiler_linkcCs�|jjdkr]g}g}|D]}|���d�r|�|�q|�|�qg}g}|ddd�D]}	|j|	g|||dd�\}
}|�d|
�|�d|�q,|sL|S|j||||dd�\}
}|
g|Std	��)
z�
        Convert a set of object files that are not compatible with the default
        linker, to a file that is compatible.
        roz.aN���T)r�r�rFzUnsupported C compiler)rurv�lower�endswithrOr�r�r#)r$r�r�r��archives�
plain_objects�obj�chained_libsr��archiverd�dllrrr�wrap_unlinkable_objects�s<
�
�
z&Gnu95FCompiler.wrap_unlinkable_objects)r�r�r�rvr�r�r*r�r�r�r�rr
rOrr�r>r�r�rSrnrxr�r�r�r�r�rrrrr	
sB�
>c	Cs�|dd�}tjdd�\}}t�|�zQtj�|�}tj�|�dd}z3|�d|d|g�t|t	t
|d�}|��|jdkWtj�
|�rQt�|�Wt�|�SWt�|�Stj�
|�rdt�|�wwt�|�w)	z7Return true if the architecture supports the -arch flagNz.f)�suffixrz.or~z-c)�stderr�stdout�cwd)�tempfile�mkstemprF�closerXrYr�rNrrr�communicate�
returncodergr�)r�r��newcmd�fid�filenamerjrZ�prrrr�s(

���r��__main__)�log)�customized_fcompilerrBr�g95)#rrFrrKr
r�r�r�rTrrr�numpy.distutils.exec_commandr�numpy.distutils.fcompilerr�distutils.versionr�	compilersr�r�rrr	r�r��	distutilsr�numpy.distutilsr�
set_verbosity�printr{�	Exception�errrr�<module>sB
q
���

https://t.me/RX1948 - 2025