HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //usr/local/lib/python3.10/dist-packages/numpy/distutils/__pycache__/unixccompiler.cpython-310.pyc
o

���g2�@s�dZddlZddlZddlZddlZddlmZmZmZddl	m
Z
ddlmZddl
mZddlmZdd	�Zee
d
e�	ddd�Zee
d
e�dS)z>
unixccompiler - can handle very long argument lists for ar.

�N)�CompileError�DistutilsExecError�LibError)�
UnixCCompiler)�replace_method)�_commandline_dep_string)�logc
Cs�|j}|ddkr#d|vr|�d�d|vr|�d�|dg7}||_dtjvrnddlm}t�t�tjd��}	t�t�|d�d��}
t�|j�}|	|vr[|�	|
|	�}t�|�|_t�|j
�}|	|vrn|j
t�|	�|_
dtj�|jd�|f}
t
|d	d
�r�dd|d
g}ng}z|j|j||d|g|||
d�Wnty�}z	t|�}t|�d�d}~ww|r�tjdkr�t�ddd|d
g�t|d
d��}|�t|||��Wd�dS1s�wYdSdS)z9Compile a single source files with a Unix-style compiler.r�aCCz-Aez-Aaz-AA�OPT)�get_config_varsz%s: %s�
_auto_dependsFz-MMDz-MFz.dz-o��displayN�zos�chtagz-tc�IBM1047�a)�compiler_so�remove�os�environ�	sysconfigr�shlex�join�split�replace�	linker_so�path�basename�getattr�spawnr�strr�sys�platform�
subprocess�check_output�open�writer)�self�obj�src�ext�cc_args�extra_postargs�pp_opts�ccompr�opt�gcv_opt�ccomp_s�llink_sr�deps�e�msg�f�r8�H/usr/local/lib/python3.10/dist-packages/numpy/distutils/unixccompiler.py�UnixCCompiler__compilesR



�
�
��
"��r:�_compilec
Cs>|�||�\}}|j||d�}|�||�r�zt�|�Wn	ty%Ynw|�tj�|��||j	}|ra|dd�}|dd�}dtj�
|jd�t|�|f}|j
|j|g||d�|s6|jr�dtj�
|jd�|f}z|j
|j|g|d�WdSty�}	z	t|	�}
t|
�d�d}	~	wwdSt�d|�dS)	a�
    Build a static library in a separate sub-process.

    Parameters
    ----------
    objects : list or tuple of str
        List of paths to object files used to build the static library.
    output_libname : str
        The library name as an absolute or relative (if `output_dir` is used)
        path.
    output_dir : str, optional
        The path to the output directory. Default is None, in which case
        the ``output_dir`` attribute of the UnixCCompiler instance.
    debug : bool, optional
        This parameter is not used.
    target_lang : str, optional
        This parameter is not used.

    Returns
    -------
    None

    )�
output_dirN�2z %s: adding %d object files to %srr
z%s:@ %szskipping %s (up-to-date))�_fix_object_args�library_filename�
_need_linkr�unlink�OSError�mkpathr�dirname�objectsr�archiver�lenr �ranlibrr!rr�debug)r(rE�output_libnamer<rI�target_lang�output_filename�tmp_objectsrr5r6r8r8r9�UnixCCompiler_create_static_libIsN��
������
���rN�create_static_lib)NrN)�__doc__rr"r$r�distutils.errorsrrr�distutils.unixccompilerr�numpy.distutils.ccompilerr�numpy.distutils.misc_utilr�numpy.distutilsrr:rNr8r8r8r9�<module>s"5
�C�