§
    ZQd<  ã                   ó¬   — d 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	m
Z
mZ ddlmZmZmZmZ ddlmZ ej        dk    rddlZ G d	„ d
e	¦  «        ZdS )a9  distutils.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            	       óü   — e Zd ZdZddgdgdgddgdgddgddœZej        dd…         d	k    rd
ged
<   g d¢ZdZdZ	dZ
dZdZdxZxZZeZej        dk    rdZ	 	 dd„Zd„ Z	 dd„Z	 	 	 	 d d„Zd„ Zd„ Zd„ Zd„ Zd!d„ZdS )"Ú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.tbdzlib%s%sÚcygwinz.exec                 ó  — |                       d ||¦  «        }|\  }}}t          ||¦  «        }	| j        |	z   }
|r|
                     d|g¦  «         |r||
d d…<   |r|
                     |¦  «         |
                     |¦  «         | j        s|�t          ||¦  «        rm|r2|                      t          j	         
                    |¦  «        ¦  «         	 |                      |
¦  «         d S # t          $ r}t          |¦  «        ‚d }~ww xY wd S )Nú-or   )Ú_fix_compile_argsr   r   ÚextendÚappendÚforcer   ÚmkpathÚosÚpathÚdirnameÚspawnr   r	   )ÚselfÚsourceÚoutput_fileÚmacrosÚinclude_dirsÚextra_preargsÚextra_postargsÚ
fixed_argsÚignoreÚpp_optsÚpp_argsÚmsgs               ú./usr/lib/python3.11/distutils/unixccompiler.pyÚ
preprocesszUnixCCompiler.preprocessU   s;  € à×+Ò+¨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	Ã5DÄD	c                 óê   — | j         }t          j        dk    rt          j        |||z   ¦  «        }	 |                      ||z   |d|gz   |z   ¦  «         d S # t          $ r}t          |¦  «        ‚d }~ww xY w)Nr   r   )r   ÚsysÚplatformÚ_osx_supportÚcompiler_fixupr'   r   r	   )	r(   ÚobjÚsrcÚextÚcc_argsr.   r1   r   r3   s	            r4   Ú_compilezUnixCCompiler._compileo   s¢   € ØÔ&ˆÝŒ<˜8Ò#Ð#Ý&Ô5°kØ4;¸nÑ4LñNô NˆKð	$Ø�JŠJ�{ WÑ,°°T¸3Ð/?Ñ?Ø%ñ&ñ 'ô 'ð 'ð 'ð 'øå!ð 	$ð 	$ð 	$Ý˜sÑ#Ô#Ð#øøøøð	$øøøs   ±!A Á
A2ÁA-Á-A2r   c                 ó  — |                       ||¦  «        \  }}|                      ||¬¦  «        }|                      ||¦  «        r¦|                      t          j                             |¦  «        ¦  «         |                      | j        |gz   |z   | j	        z   ¦  «         | j
        rB	 |                      | j
        |gz   ¦  «         d S # t          $ r}t          |¦  «        ‚d }~ww xY wd S t          j        d|¦  «         d S )N)Ú
output_dirúskipping %s (up-to-date))Ú_fix_object_argsÚlibrary_filenameÚ
_need_linkr#   r$   r%   r&   r'   r   Úobjectsr   r   r
   r   Údebug)r(   rF   Úoutput_libnamerA   rG   Útarget_langÚoutput_filenamer3   s           r4   Úcreate_static_libzUnixCCompiler.create_static_libz   s,  € à"×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                 ód  ‡— |                       ||¦  «        \  }}|                      |||¦  «        }|\  }}}g d¢Št          j        d¦  «        }|r‰                     d|z  d|z  g¦  «         ˆfd„|D ¦   «         }ˆfd„|D ¦   «         }t          | |||¦  «        }t          |t          t          d ¦  «        f¦  «        st          d¦  «        ‚|� t          j                             ||¦  «        }|                      ||¦  «        �r’|| j        z   |z   d|gz   }|	rd	g|d d
…<   |
r|
|d d
…<   |r|                     |¦  «         |                      t          j                             |¦  «        ¦  «         	 |t"          j        k    r| j        d d …         }n| j        d d …         }|dk    rŽ| j        r‡d
}t          j                             |d
         ¦  «        dk    rd}d||         v r|dz  }d||         v °t          j                             ||         ¦  «        dk    rd}nd
}| j        |         |||z   <   t.          j        dk    rt3          j        ||¦  «        }|                      ||z   ¦  «         d S # t8          $ r}t;          |¦  «        ‚d }~ww xY wt=          j        d|¦  «         d S )N)z/libz/lib64z/usr/libz
/usr/lib64Ú	MULTIARCHz/lib/%sz/usr/lib/%sc                 ó   •— g | ]}|‰v¯|‘Œ	S © rO   ©Ú.0ÚdirÚsystem_libdirss     €r4   ú
<listcomp>z&UnixCCompiler.link.<locals>.<listcomp>¤   s-   ø€ ð 6ð 6ð 6 Ø" nÐ4Ð4ð Ø4Ð4Ð4ó    c                 ó   •— g | ]}|‰v¯|‘Œ	S rO   rO   rP   s     €r4   rT   z&UnixCCompiler.link.<locals>.<listcomp>¦   s-   ø€ ð  >ð  >ð  >¨Ø'*¨nÐ'<Ð'<ð !$Ø'<Ð'<Ð'<rU   z%'output_dir' must be a string or Noner   z-gr   zc++Úenvé   ú=Ú	ld_so_aixr   rB   ) rC   Ú_fix_lib_argsr   Úget_config_varr    r   Ú
isinstanceÚstrÚtypeÚ	TypeErrorr$   r%   ÚjoinrE   rF   r#   r&   r   Ú
EXECUTABLEr   r   r   Úbasenamer7   r8   r9   r:   r'   r   r   r   rG   )r(   Útarget_descrF   rJ   rA   Ú	librariesÚlibrary_dirsÚruntime_library_dirsÚexport_symbolsrG   r-   r.   Ú
build_temprI   r/   Ú	multiarchÚlib_optsÚld_argsÚlinkerÚiÚoffsetr3   rS   s                         @r4   ÚlinkzUnixCCompiler.link”   sF  ø€ ð
 #×3Ò3°G¸ZÑHÔHÑˆ�Ø×'Ò'¨	°<Ø(<ñ>ô >ˆ
à8BÑ5ˆ	�<Ð!5ð FÐEÐEˆÝÔ,¨[Ñ9Ô9ˆ	Øð 	VØ×!Ò! 9¨yÑ#8¸-È)Ñ:SÐ"TÑUÔUÐUð6ð 6ð 6ð 6 |ð 6ñ 6ô 6ˆð >ð  >ð  >ð  >Ð/Cð  >ñ  >ô  >Ðõ # 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   Å8D I: É:
JÊJÊJc                 ó   — d|z   S )Nú-LrO   )r(   rR   s     r4   Úlibrary_dir_optionz UnixCCompiler.library_dir_optioná   ó   € Ø�c‰zÐrU   c                 ó:   ‡— t          ˆfd„dD ¦   «         ¦  «        S )Nc              3   ó    •K  — | ]}|‰v V — Œ	d S )NrO   )rQ   ÚnameÚcompiler_names     €r4   ú	<genexpr>z(UnixCCompiler._is_gcc.<locals>.<genexpr>æ   s(   øè è € ÐMÐM¨T�4˜=Ð(ÐMÐMÐMÐMÐMÐMrU   )Úgcczg++Úclang)Úany)r(   rx   s    `r4   Ú_is_gcczUnixCCompiler._is_gccä   s'   ø€ åÐMÐMÐMÐMÐ5LÐMÑMÔMÑMÔMÐMrU   c                 óÆ  — t           j                             t          j        d¦  «        ¦  «        }t
          j        d d…         dk    rd|z   S t
          j        d d…         dk    rd|z   S t
          j        d d…         d	k    r#|                      |¦  «        rd
d|z   gS dd|z   gS |                      |¦  «        r"t          j        d¦  «        dk    rd|z   S d|z   S d|z   S )NÚCCr   r   rr   é   Úfreebsdz-Wl,-rpath=é   zhp-uxz-Wl,+sz+sÚGNULDÚyesz-Wl,--enable-new-dtags,-Rz-Wl,-Rz-R)r$   r%   rc   r   r\   r7   r8   r}   )r(   rR   r   s      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Ð!rU   c                 ó   — d|z   S )Nz-lrO   )r(   Úlibs     r4   Úlibrary_optionzUnixCCompiler.library_option  rt   rU   c                 ó¸  — |                       |d¬¦  «        }|                       |d¬¦  «        }|                       |d¬¦  «        }|                       |d¬¦  «        }t          j        dk    rgt          j        d¦  «        }t          j        d|¦  «        }	|	€'t          j        t          j        d	¦  «        ¦  «        }
n|	 	                    d
¦  «        }
|D �]}t          j                             ||¦  «        }t          j                             ||¦  «        }t          j                             ||¦  «        }t          j                             ||¦  «        }t          j        dk    rã|                     d¦  «        s*|                     d¦  «        r¹|                     d¦  «        s¤t          j                             |
|d
d …         |¦  «        }t          j                             |
|d
d …         |¦  «        }t          j                             |
|d
d …         |¦  «        }t          j                             |
|d
d …         |¦  «        }t          j                             |¦  «        r|c S t          j                             |¦  «        r|c S t          j                             |¦  «        r|c S t          j                             |¦  «        r|c S �Œd S )NÚshared)Úlib_typeÚdylibÚ
xcode_stubÚstaticr   ÚCFLAGSz-isysroot\s*(\S+)r   rX   z/System/z/usr/z/usr/local/)rD   r7   r8   r   r\   ÚreÚsearchr9   Ú_default_sysrootÚgroupr$   r%   ra   Ú
startswithÚexists)r(   Údirsr‡   rG   Úshared_fÚdylib_fÚxcode_stub_fÚstatic_fÚcflagsÚmÚsysrootrR   rŠ   rŒ   rŽ   r�   s                   r4   Úfind_library_filezUnixCCompiler.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Ñ$Ô$ð Ø���Ý”—’ 
Ñ+Ô+ð Ø!Ð!Ð!Ð!Ý”—’ Ñ'Ô'ð Ø���Ý”—’ Ñ'Ô'ð Ø���ñð ˆtrU   )NNNNN)Nr   N)
NNNNNr   NNNN)r   )Ú__name__Ú
__module__Ú__qualname__Úcompiler_typeÚexecutablesr7   r8   Ú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_extensionr5   r?   rK   rp   rs   r}   r…   rˆ   rž   rO   rU   r4   r   r   -   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	$ð 	$ð 	$ð AEðCð Cð Cð Cð6 :>Ø59Ø9=Ø?Cð	GCð GCð GCð GCðZð ð ðNð Nð Nð("ð ("ð ("ðTð ð ð?ð ?ð ?ð ?ð ?ð ?rU   r   )Ú__doc__r$   r7   r�   Ú	distutilsr   Údistutils.dep_utilr   Údistutils.ccompilerr   r   r   Údistutils.errorsr   r	   r
   r   r   r8   r9   r   rO   rU   r4   ú<module>r´      s0  ððð ð Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð Ø $Ð $Ð $Ð $Ð $Ð $ð8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;à Ð Ð Ð Ð Ð à„<�8ÒÐØÐÐÐð$gð gð gð gð g�Iñ gô gð gð gð grU   