Current File : //usr/local/apps/python3/lib/python3.11/distutils/__pycache__/unixccompiler.cpython-311.opt-1.pyc
�

�Ke�9���dZddlZddlZddlZddlmZddlmZddlm	Z	m
Z
mZddlm
Z
mZmZmZddlmZejdkrddlZGd	�d
e	��ZdS)a9distutils.unixccompiler

Contains the UnixCCompiler class, a subclass of CCompiler that handles
the "typical" Unix-style command-line C compiler:
  * macros defined with -Dname[=value]
  * macros undefined with -Uname
  * include search directories specified with -Idir
  * libraries specified with -lllib
  * library search directories specified with -Ldir
  * compile handled by 'cc' (or similar) executable with -c option:
    compiles .c to .o
  * link static library handled by 'ar' command (possibly with 'ranlib')
  * link shared library handled by 'cc -shared'
�N)�	sysconfig)�newer)�	CCompiler�gen_preprocess_options�gen_lib_options)�DistutilsExecError�CompileError�LibError�	LinkError)�log�darwinc	��eZdZdZddgdgdgddgdgddgdd�Zejdd�d	krd
ged
<gd�ZdZd
Z	dZ
dZdZdxZ
xZZeZejdkrdZ		dd�Zd�Z	dd�Z				d d�Zd�Zd�Zd�Zd�Zd!d�ZdS)"�
UnixCCompiler�unixN�ccz-shared�arz-cr)�preprocessor�compiler�compiler_so�compiler_cxx�	linker_so�
linker_exe�archiver�ranlib�r
r)z.cz.Cz.ccz.cxxz.cppz.mz.oz.az.soz.dylibz.tbdzlib%s%s�cygwinz.exec��|�d||��}|\}}}t||��}	|j|	z}
|r|
�d|g��|r||
dd�<|r|
�|��|
�|��|js|�t
||��rm|r2|�tj	�
|����	|�|
��dS#t$r}t|���d}~wwxYwdS)N�-or)�_fix_compile_argsrr�extend�append�forcer�mkpath�os�path�dirname�spawnrr	)�self�source�output_file�macros�include_dirs�
extra_preargs�extra_postargs�
fixed_args�ignore�pp_opts�pp_args�msgs            �A/usr/local/apps/python3/lib/python3.11/distutils/unixccompiler.py�
preprocesszUnixCCompiler.preprocessUs;���+�+�D�&�,�G�G�
�'1�$����(���>�>���#�g�-���	0��N�N�D�+�.�/�/�/��	(�'�G�B�Q�B�K��	+��N�N�>�*�*�*����v�����:�	(��,��f�k�0J�0J�,��
:����B�G�O�O�K�8�8�9�9�9�
(��
�
�7�#�#�#�#�#��%�
(�
(�
(�"�3�'�'�'�����
(����-�,s�C+�+
D	�5D�D	c���|j}tjdkrtj|||z��}	|�||z|d|gz|z��dS#t$r}t|���d}~wwxYw)Nr
r)r�sys�platform�_osx_support�compiler_fixupr'rr	)	r(�obj�src�ext�cc_argsr.r1rr3s	         r4�_compilezUnixCCompiler._compileos����&���<�8�#�#�&�5�k�4;�n�4L�N�N�K�	$��J�J�{�W�,��T�3�/?�?�%�&�
'�
'�
'�
'�
'��!�	$�	$�	$��s�#�#�#�����	$���s�!A�
A2�A-�-A2rc��|�||��\}}|�||���}|�||��r�|�tj�|����|�|j|gz|z|j	z��|j
rB	|�|j
|gz��dS#t$r}t|���d}~wwxYwdStjd|��dS)N)�
output_dir�skipping %s (up-to-date))�_fix_object_args�library_filename�
_need_linkr#r$r%r&r'r�objectsrrr
r�debug)r(rF�output_libnamerArG�target_lang�output_filenamer3s        r4�create_static_libzUnixCCompiler.create_static_libzs,��"�3�3�G�Z�H�H����
�!�!�.�Z�!�H�H�	��?�?�7�O�4�4�	C��K�K������8�8�9�9�9��J�J�t�}�'�(�)���!%��.�
/�
/�
/��{�
(�(��J�J�t�{�o�->�>�?�?�?�?�?��)�(�(�(�"�3�-�-�'�����(����
(�
(�
�I�0�/�B�B�B�B�Bs�*C
�

C(�C#�#C(c��|�||��\}}|�|||��}|\}}}t||||��}t|ttd��f��st
d���|� tj�	||��}|�
||���r�||jz|zd|gz}|	rdg|dd�<|
r|
|dd�<|r|�|��|�
tj�|����	|tjkr|jdd�}n|jdd�}|
dkr�|jr�d}tj�|d��dkrd}d||vr|dz
}d||v�tj�||��d	krd}nd}|j||||z<t*jd
krt/j||��}|�||z��dS#t4$r}t7|���d}~wwxYwt9jd|��dS)Nz%'output_dir' must be a string or Nonerz-grzc++�env��=�	ld_so_aixr
rB)rC�
_fix_lib_argsr�
isinstance�str�type�	TypeErrorr$r%�joinrErFr r#r&r�
EXECUTABLErrr�basenamer7r8r9r:r'rrrrG)r(�target_descrFrJrA�	libraries�library_dirs�runtime_library_dirs�export_symbolsrGr-r.�
build_temprIr/�lib_opts�ld_args�linker�i�offsetr3s                     r4�linkzUnixCCompiler.link�s���
#�3�3�G�Z�H�H�����'�'�	�<�(<�>�>�
�8B�5�	�<�!5�"�4��7K�#,�.�.���*�s�D��J�J�&7�8�8�	E��C�D�D�D��!� �g�l�l�:��G�G�O��?�?�7�O�4�4�+	C����-�� �#'��"9�:�G��
%�#�f�������
,�+�������
/����~�.�.�.��K�K������8�8�9�9�9�
%��)�"6�6�6�!�_�Q�Q�Q�/�F�F�!�^�A�A�A�.�F��%�'�'�D�,=�'��A��w�'�'��q�	�2�2�e�;�;���!�V�A�Y�.�.���F�A�"�V�A�Y�.�.��w�'�'��q�	�2�2�k�A�A�"#���!"��'+�'8��';�F�1�V�8�$��<�8�+�+�)�8���I�I�F��
�
�6�G�+�,�,�,�,�,��%�
%�
%�
%���n�n�$�����
%����
�I�0�/�B�B�B�B�Bs�$DH&�&
I�0H?�?Ic��d|zS)N�-L�)r(�dirs  r4�library_dir_optionz UnixCCompiler.library_dir_option�����c�z��c�:��t�fd�dD����S)Nc3� �K�|]}|�vV��	dS)Nrg)�.0�name�
compiler_names  �r4�	<genexpr>z(UnixCCompiler._is_gcc.<locals>.<genexpr>�s(�����M�M�T�4�=�(�M�M�M�M�M�Mrk)�gcczg++�clang)�any)r(rps `r4�_is_gcczUnixCCompiler._is_gcc�s'����M�M�M�M�5L�M�M�M�M�M�Mrkc���tj�tjd����}t
jdd�dkrd|zSt
jdd�dkrd|zSt
jdd�d	kr#|�|��rd
d|zgSdd|zgS|�|��r"tjd��d
krd|zSd|zSd|zS)N�CCrr
rf��freebsdz-Wl,-rpath=�zhp-uxz-Wl,+sz+s�GNULD�yesz-Wl,--enable-new-dtags,-Rz-Wl,-Rz-R)r$r%rXr�get_config_varr7r8ru)r(rhrs   r4�runtime_library_dir_optionz(UnixCCompiler.runtime_library_dir_option�s����7�#�#�I�$<�T�$B�$B�C�C���<�����x�'�'��#�:��
�\�"�1�"�
��
*�
*� �3�&�&�
�\�"�1�"�
��
(�
(��|�|�H�%�%�
.� �$��*�-�-��$��*�%�%��|�|�H�%�%�
"�
�+�G�4�4��=�=�7��<�<�#�c�>�)�
�c�z�!rkc��d|zS)Nz-lrg)r(�libs  r4�library_optionzUnixCCompiler.library_optionrjrkc��|�|d���}|�|d���}|�|d���}|�|d���}tjdkrgtjd��}tjd|��}	|	�'tjtjd	����}
n|	�	d
��}
|D�]}tj�||��}tj�||��}
tj�||��}tj�||��}tjdkr�|�
d��s*|�
d��r�|�
d
��s�tj�|
|d
d�|��}tj�|
|d
d�|��}
tj�|
|d
d�|��}tj�|
|d
d�|��}tj�|
��r|
cStj�|��r|cStj�|��r|cStj�|��r|cS��dS)N�shared)�lib_type�dylib�
xcode_stub�staticr
�CFLAGSz-isysroot\s*(\S+)rwrNz/System/z/usr/z/usr/local/)rDr7r8rr}�re�searchr9�_default_sysroot�groupr$r%rV�
startswith�exists)r(�dirsr�rG�shared_f�dylib_f�xcode_stub_f�static_f�cflags�m�sysrootrhr�r�r�r�s                r4�find_library_filezUnixCCompiler.find_library_file
s~���(�(��x�(�@�@���'�'��g�'�>�>���,�,�S�<�,�H�H���(�(��x�(�@�@���<�8�#�#�&�-�h�7�7�F��	�.��7�7�A��y�&�7�	�8P�QU�8V�8V�W�W����'�'�!�*�*���	�	�C��W�\�\�#�x�0�0�F��G�L�L��g�.�.�E��W�\�\�#�x�0�0�F�����c�<�8�8�J��|�x�'�'����z�*�*�(����w�'�'�(�03���}�0M�0M�(�����g�s�1�2�2�w��A�A������W�c�!�"�"�g�w�?�?������g�s�1�2�2�w��A�A���W�\�\�'�3�q�r�r�7�L�I�I�
��w�~�~�e�$�$�
���������
�+�+�
�!�!�!�!������'�'�
��
�
�
������'�'�
��
�
�
�
��trk)NNNNN)NrN)
NNNNNrNNNN)r)�__name__�
__module__�__qualname__�
compiler_type�executablesr7r8�src_extensions�
obj_extension�static_lib_extension�shared_lib_extension�dylib_lib_extension�xcode_stub_lib_extension�static_lib_format�shared_lib_format�dylib_lib_format�xcode_stub_lib_format�
exe_extensionr5r?rKrdrirur~r�r�rgrkr4rr-s��������M�%)�%)�F�%)�F�%)�F�%)�9�$5�%)�F�%)�5�M�$(���K��|�B�Q�B��8�#�#�!)�
��H��:�9�9�N��M��� ��"��%��?H�H��H�)�,<�,��
�|�x����
�:>�IM�(�(�(�(�4	$�	$�	$�AE�C�C�C�C�6:>�59�9=�?C�	<C�<C�<C�<C�D���N�N�N�("�("�("�T���?�?�?�?�?�?rkr)�__doc__r$r7r��	distutilsr�distutils.dep_utilr�distutils.ccompilerrrr�distutils.errorsrr	r
rrr8r9rrgrkr4�<module>r�s0��
�
�������������������$�$�$�$�$�$�8�8�8�8�8�8�8�8�8�8�;�;�;�;�;�;�;�;�;�;�;�;��������<�8�������$\�\�\�\�\�I�\�\�\�\�\rk