Ë
    -Tbj¨  ã                   ó¾   — d 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 g d	¢g d
¢g d¢dœZg d	¢g d
¢g d¢dœZ	g d¢g g dœZ
g ddgddgdœZ G d„ dej                  «      Zy)aœ  distutils.zosccompiler

Contains the selection of the c & c++ compilers on z/OS. There are several
different c compilers on z/OS, all of them are optional, so the correct
one needs to be chosen based on the users input. This is compatible with
the following compilers:

IBM C/C++ For Open Enterprise Languages on z/OS 2.0
IBM Open XL C/C++ 1.1 for z/OS
IBM XL C/C++ V2.4.1 for z/OS 2.4 and 2.5
IBM z/OS XL C/C++
é    Né   )Ú	sysconfig)ÚDistutilsExecErroré   )Úunix)ÚCompileError)z-m64z-fvisibility=defaultz-fzos-le-char-mode=asciiz-fno-short-enums)
ú-q64ú-qexportallú-qasciiú-qstrictú	-qnocsectú-Wa,asa,goffú
-Wa,xplinkú
-qgonumberú
-qenum=intú-Wc,DLL)r	   r
   r   r   r   r   r   r   r   r   z-qlanglvl=extc99)ú
ibm-openxlúibm-xlclangúibm-xlc)r	   r
   r   r   r   r   r   r   r   r   z-qlanglvl=extended0x)z-fasmz-fno-integrated-asz	-Wa,--ASAz
-Wa,--GOFFz-Wl,dllr	   c                   óh   ‡ — e Zd Zg d¢Zg d¢ZdgZd„ Zd	ˆ fd„	Zd„ Zd„ Z		 	 	 	 	 	 	 	 	 	 d
ˆ fd„	Z
ˆ xZS )ÚCompiler)z.cú.Cú.ccú.cxxú.cppz.mú.s)r   r   r   r   r   c                 ó<  — dD �cg c]C  }t         j                  j                  |d «      x}rt         j                  j	                  |«      ‘ŒE }}t        |«      dk(  ryi }dD ]  }d||<   Œ	 dD ]  }d||<   Œ	 dD ]  }d||<   Œ	 |j                  |d   d«      S c c}w )	N)ÚCCÚCXXÚLDSHAREDr   r   )z	ibm-clangzibm-clang64zibm-clang++zibm-clang++64Úclangzclang++zclang-14)Úxlclangz	xlclang++Únjscznjsc++r   )ÚxlcÚxlCzxlc++r   )ÚosÚenvironÚgetÚpathÚbasenameÚlen)ÚselfÚenvvarÚbinaryÚzos_compiler_namesÚzos_compilersÚcompilers         úX/var/www/html/venv/lib/python3.12/site-packages/setuptools/_distutils/compilers/C/zos.pyÚ_get_zos_compiler_namezCompiler._get_zos_compiler_namen   s×   € ð 4ö
àÜŸ*™*Ÿ.™.¨°Ó6Ð6�Ð6ô �G‰G×Ñ˜VÕ$ð
Ðð 
ô
 Ð!Ó" aÒ'Øàˆð
ò 		3ˆHð '3ˆM˜(Ò#ð		3ð Cò 	4ˆHØ&3ˆM˜(Ò#ð	4ð 0ò 	0ˆHØ&/ˆM˜(Ò#ð	0ð × Ñ Ð!3°AÑ!6¸ÓEÐEùò5
s   …ABc                 ó|   •— t         ‰| �  ||¬«       | j                  «       | _        t	        j
                  | «       y )N)Úforce)ÚsuperÚ__init__r3   Úzos_compilerr   Úcustomize_compiler)r,   Úverboser5   Ú	__class__s      €r2   r7   zCompiler.__init__‹   s4   ø€ Ü‰Ñ˜¨ÐÔ.Ø ×7Ñ7Ó9ˆÔÜ×$Ñ$ TÕ*ó    c                 ó2  — g }|| j                   v r/| j                  }|j                  t        | j                     «       n�|| j
                  v rQ| j                  }|j                  t        | j                     «       |j                  t        | j                     «       n.| j                  }|j                  t        | j                     «       |j                  |«       	 | j                  ||z   |d|gz   |z   «       y # t        $ r}	t        |	«      ‚d }	~	ww xY w)Nz-o)Ú_cpp_extensionsÚcompiler_cxxÚextendÚ	_cxx_argsr8   Ú_asm_extensionsÚcompiler_soÚ_cc_argsÚ	_asm_argsÚspawnr   r   )
r,   ÚobjÚsrcÚextÚcc_argsÚextra_postargsÚpp_optsÚ
local_argsr1   Úmsgs
             r2   Ú_compilezCompiler._compile�   sø   € Øˆ
Ø�$×&Ñ&Ñ&Ø×(Ñ(ˆHØ×Ñœi¨×(9Ñ(9Ñ:Õ;Ø�D×(Ñ(Ñ(Ø×'Ñ'ˆHØ×Ñœh t×'8Ñ'8Ñ9Ô:Ø×Ñœi¨×(9Ñ(9Ñ:Õ;à×'Ñ'ˆHØ×Ñœh t×'8Ñ'8Ñ9Ô:Ø×Ñ˜'Ô"ð	$Ø�J‰J�x *Ñ,°°T¸3Ð/?Ñ?À.ÑPÕQøÜ!ò 	$Ü˜sÓ#Ð#ûð	$ús   ÃC= Ã=	DÄDÄDc                 ó   — d|z   S )Nz-L© )r,   Údirs     r2   Úruntime_library_dir_optionz#Compiler.runtime_library_dir_option£   s   € Ø�c‰zÐr<   c                 ó.  •— t        j                  d«      }t         j                  r8t        j                  j                  t        j                  d«      d|› d�«      }nKt        j                  j                  t        j                  d«      t        j                  d«      d|› d�«      }t        j                  j                  |«      r|r|j                  |«       n|g}|rw|D ]r  }|d d  D ]h  }t        j                  j                  ||› d�«      }t        j                  j                  |«      sŒF|j                  |«       |j                  |«        Œr Œt |j                  t        | j                     «       t        ‰| �5  |||||||||	|
|||«       y )NÚ	LDVERSIONÚabs_builddirÚ	libpythonz.xÚinstalled_baseÚ
platlibdir)r   Úget_config_varÚpython_buildr&   r)   ÚjoinÚexistsÚappendÚremover@   Ú_ld_argsr8   r6   Úlink)r,   Útarget_descÚobjectsÚoutput_filenameÚ
output_dirÚ	librariesÚlibrary_dirsÚruntime_library_dirsÚexport_symbolsÚdebugÚextra_preargsrK   Ú
build_tempÚtarget_langÚ	ldversionÚside_deck_pathrR   ÚlibraryÚlibrary_side_deckr;   s                      €r2   ra   zCompiler.link¦   ss  ø€ ô$ ×,Ñ,¨[Ó9ˆ	Ü×!Ò!ÜŸW™WŸ\™\Ü×(Ñ(¨Ó8Ø˜I˜; bÐ)ó‰Nô
  ŸW™WŸ\™\Ü×(Ñ(Ð)9Ó:Ü×(Ñ(¨Ó6Ø˜I˜; bÐ)óˆNô �7‰7�>‰>˜.Ô)ÙØ×%Ñ% nÕ5à"0Ð!1�ñ  Ø+ò �Ø(©˜|ò �GÜ(*¯©¯©°S¸W¸IÀR¸.Ó(IÐ%Ü—w‘w—~‘~Ð&7Õ8Ø!×(Ñ(¨Ô1Ø&×-Ñ-Ð.?Ô@Ùñðð 	×Ñœh t×'8Ñ'8Ñ9Ô:ä‰‰ØØØØØØØ ØØØØØØõ	
r<   )FF)
NNNNNFNNNN)Ú__name__Ú
__module__Ú__qualname__Úsrc_extensionsr>   rB   r3   r7   rO   rS   ra   Ú__classcell__)r;   s   @r2   r   r   i   sU   ø„ ÚD€NÚ3€OØ�f€OòFõ:+ò
$ò&ð ØØØ!ØØØØØØ÷@
ñ @
r<   r   )Ú__doc__r&   Ú r   Úerrorsr   r   r   rD   rA   rE   r`   r   rQ   r<   r2   ú<module>rz      sŠ   ðñó 
å Ý (Ý Ý  òòòñ' €òFòòñ' €	òF MØØñ€	ð Ø˜vÐ&Ø˜6Ð"ñ€ô}
ˆt�}‰}õ }
r<   