
    n&ph                         S r SSKrSSKJr  SSKJr  SSKJr  SSKJr  / S	Q/ S
Q/ SQS.r/ S	Q/ S
Q/ SQS.r	/ SQ/ / S.r
/ SS/SS/S.r " S S\R                  5      rg)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                   x   ^  \ rS rSr/ SQr/ SQrS/rS rSU 4S jjrS r	S r
          SU 4S	 jjrS
rU =r$ )Compileri   )z.c.C.cc.cxx.cppz.m.s)r   r   r   r   r   c                 X   S Vs/ s HK  n[         R                  R                  US 5      =n(       d  M,  [         R                  R	                  U5      PMM     nn[        U5      S:X  a  g0 nS H  nSXE'   M	     S H  nSXE'   M	     S H  nSXE'   M	     UR                  US   S5      $ s  snf )	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.13/site-packages/setuptools/_distutils/compilers/C/zos.py_get_zos_compiler_nameCompiler._get_zos_compiler_namen   s     4
3**..666 %BGGV$3 	 

 !"a'
H '3M#
 CH&3M# C 0H&/M# 0   !3A!6EE5
s
   +B'#B'c                 |   > [         TU ]  XU5        U R                  5       U l        [        R
                  " U 5        g )N)super__init__r4   zos_compilerr   customize_compiler)r-   verbosedry_runforce	__class__s       r3   r8   Compiler.__init__   s1    51 779$$T*    c                 6   / nX0R                   ;   a/  U R                  nUR                  [        U R                     5        OX0R
                  ;   aQ  U R                  nUR                  [        U R                     5        UR                  [        U R                     5        O.U R                  nUR                  [        U R                     5        UR                  U5         U R                  X-   USU/-   U-   5        g ! [         a  n	[        U	5      eS n	A	ff = f)Nz-o)_cpp_extensionscompiler_cxxextend	_cxx_argsr9   _asm_extensionscompiler_so_cc_args	_asm_argsspawnr   r   )
r-   objsrcextcc_argsextra_postargspp_opts
local_argsr2   msgs
             r3   _compileCompiler._compile   s    
&&&((Hi(9(9:;(((''Hht'8'89:i(9(9:;''Hht'8'89:'"	$JJx,T3/??.PQ! 	$s##	$s   !C> >
DDDc                     SU-   $ )Nz-L )r-   dirs     r3   runtime_library_dir_option#Compiler.runtime_library_dir_option   s    czr@   c                 r  > [         R                  " S5      n[         R                  (       a9  [        R                  R                  [         R                  " S5      SU S35      nOM[        R                  R                  [         R                  " S5      [         R                  " S5      SU S35      n[        R                  R                  U5      (       a  U(       a  UR                  U5        OU/nU(       a  U H{  nUS S   Ho  n[        R                  R                  UU S35      n[        R                  R                  U5      (       d  ML  UR                  U5        UR                  U5          My     M}     UR                  [        U R                     5        [        TU ]5  UUUUUUUUU	U
UUU5        g )N	LDVERSIONabs_builddir	libpythonz.xinstalled_base
platlibdir)r   get_config_varpython_buildr'   r*   joinexistsappendremoverD   _ld_argsr9   r7   link)r-   target_descobjectsoutput_filename
output_dir	librarieslibrary_dirsruntime_library_dirsexport_symbolsdebugextra_preargsrO   
build_temptarget_lang	ldversionside_deck_pathrW   librarylibrary_side_deckr>   s                      r3   rg   Compiler.link   so   $ ,,[9	!!WW\\((8I;b)N
  WW\\(()9:((6I;b)N 77>>.))%%n5"0!1  +(|G(*SWIR.(I%ww~~&788!((1&--.?@  , , 	ht'8'89: 	
r@   )r9   )FFF)
NNNNNFNNNN)__name__
__module____qualname____firstlineno__src_extensionsrB   rF   r4   r8   rS   rX   rg   __static_attributes____classcell__)r>   s   @r3   r   r   i   sU    DN3OfOF:+
$& !@
 @
r@   r   )__doc__r'    r   errorsr   r   r   rH   rE   rI   rf   r   rV   r@   r3   <module>r      s    
  (   ' F' 	F M	 v&6"}
t}} }
r@   