<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>

h fU5                 @   s   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 n  Gd	 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                   s  e  Z d  Z d Z i d d 6d g d 6d g d 6d g d 6d d g d	 6d g d
 6d d g d 6d d 6Z e j d d  d k r d g e d <n  d d d d d d g Z d Z d Z	 d Z
 d Z d Z Z Z e j d k r d Z n    f d d   Z d d d d d d  d!  Z d" d#   Z d d$ d d% d&  Z d d d d d d$ d d d d d' d( 
 Z d) d*   Z d+ d,   Z d- d.   Z d/ d0   Z d$ d1 d2  Z   S)3UnixCCompilerZunixNpreprocessorZcccompilercompiler_socompiler_cxxz-shared	linker_so
linker_exearz-crarchiverranlib   r   z.cz.Cz.ccz.cxxz.cppz.mz.oz.az.soz.dylibzlib%s%scygwinz.exec                sh   t  |  j |   j | | |  \ } } } t j d  } | r[ | | k r[ | j |  n  | | | f S)z'Remove standard library path from rpathLIBDIR)super	__class___fix_lib_argsr   get_config_varremove)self	librarieslibrary_dirsruntime_library_dirsZlibdir)r    </opt/alt/python34/lib64/python3.4/distutils/unixccompiler.pyr   S   s    zUnixCCompiler._fix_lib_argsc             C   s*  |  j  d  | |  } | \ } } } t | |  }	 |  j |	 }
 | r\ |
 j d | g  n  | ru | |
 d  d  <n  | r |
 j |  n  |
 j |  |  j s | d  k s t | |  r&| r |  j t j	 j
 |   n  y |  j |
  Wq&t k
 r"} z t |   WYd  d  } ~ Xq&Xn  d  S)Nz-or   )Z_fix_compile_argsr   r   extendappendZforcer   mkpathospathdirnamespawnr   r   )r   sourceZoutput_fileZmacrosZinclude_dirsextra_preargsextra_postargs
fixed_argsignorepp_optsZpp_argsmsgr#   r#   r$   
preprocess]   s$    $zUnixCCompiler.preprocessc       	      C   s   |  j  } t j d k r1 t j | | |  } n  y& |  j | | | d | g |  Wn1 t k
 r } z t |   WYd  d  } ~ Xn Xd  S)Nr   z-o)r   sysplatform_osx_supportcompiler_fixupr+   r   r   )	r   objsrcZextZcc_argsr.   r1   r   r2   r#   r#   r$   _compilew   s    		zUnixCCompiler._compiler   c             C   s   |  j  | |  \ } } |  j | d | } |  j | |  r |  j t j j |   |  j |  j | g | |  j	  |  j
 r y |  j |  j
 | g  Wq t k
 r } z t |   WYd  d  } ~ Xq Xq n t j d |  d  S)N
output_dirzskipping %s (up-to-date))_fix_object_argslibrary_filename
_need_linkr'   r(   r)   r*   r+   r   objectsr   r   r	   r   debug)r   r?   Zoutput_libnamer;   r@   target_langoutput_filenamer2   r#   r#   r$   create_static_lib   s    	%zUnixCCompiler.create_static_libc             C   sa  |  j  | |  \ } } |  j | | |  } | \ } } } t |  | | |  } t | t t d   f  s{ t d   n  | d  k	 r t j j	 | |  } n  |  j
 | |  rM| |  j | d | g } |	 r d g | d  d  <n  |
 r|
 | d  d  <n  | r| j |  n  |  j t j j |   y | t j k rX|  j d  d   } n |  j d  d   } | d k r|  j rd } t j j | d  d k rd } x! d | | k r| d 7} qWn  |  j | | | <n  t j d	 k rt j | |  } n  |  j | |  Wq]t k
 rI} z t |   WYd  d  } ~ Xq]Xn t j d
 |  d  S)Nz%'output_dir' must be a string or Nonez-oz-gr   zc++env   =r   zskipping %s (up-to-date))r<   r   r   
isinstancestrtype	TypeErrorr(   r)   joinr>   r?   r%   r'   r*   r   Z
EXECUTABLEr   r   r   basenamer4   r5   r6   r7   r+   r   r
   r   r@   )r   Ztarget_descr?   rB   r;   r    r!   r"   Zexport_symbolsr@   r-   r.   Z
build_temprA   r/   Zlib_optsZld_argsZlinkerir2   r#   r#   r$   link   sH    		"zUnixCCompiler.linkc             C   s   d | S)Nz-Lr#   )r   dirr#   r#   r$   library_dir_option   s    z UnixCCompiler.library_dir_optionc             C   s   d | k p d | k S)Ngcczg++r#   )r   Zcompiler_namer#   r#   r$   _is_gcc   s    zUnixCCompiler._is_gccc             C   s   t  j j t j d   } t j d  d  d k r< d | St j d  d  d k r |  j |  rr d d | g Sd d | g St j d  d	  d
 k s t j d  d  d k r d | g S|  j |  r t j d  d k r d | Sd | Sn d | Sd  S)NCCr   r   z-L   zhp-uxz-Wl,+sz+s   Zirix646Zosf1V5z-rpathGNULDyesz-Wl,--enable-new-dtags,-Rz-Wl,-Rz-R)r(   r)   rL   r   r   r4   r5   rR   )r   rO   r   r#   r#   r$   runtime_library_dir_option   s    2
z(UnixCCompiler.runtime_library_dir_optionc             C   s   d | S)Nz-lr#   )r   libr#   r#   r$   library_option  s    zUnixCCompiler.library_optionc             C   s  |  j  | d d } |  j  | d d } |  j  | d d } t j d k r t j d  } t j d |  } | d  k r d }	 q | j d	  }	 n  x5| D]-}
 t j	 j
 |
 |  } t j	 j
 |
 |  } t j	 j
 |
 |  } t j d k r|
 j d
  s|
 j d  r|
 j d  rt j	 j
 |	 |
 d	 d   |  } t j	 j
 |	 |
 d	 d   |  } t j	 j
 |	 |
 d	 d   |  } n  t j	 j |  r| St j	 j |  r| St j	 j |  r | Sq Wd  S)NZlib_typeshareddylibstaticr   CFLAGSz-isysroot\s+(\S+)/rE   z/System/z/usr/z/usr/local/)r=   r4   r5   r   r   researchgroupr(   r)   rK   
startswithexists)r   dirsrY   r@   Zshared_fZdylib_fZstatic_fZcflagsmZsysrootrO   r[   r\   r]   r#   r#   r$   find_library_file	  s4    	""%zUnixCCompiler.find_library_file)__name__
__module____qualname__Zcompiler_typeZexecutablesr4   r5   Zsrc_extensionsZobj_extensionZstatic_lib_extensionZshared_lib_extensionZdylib_lib_extensionZstatic_lib_formatZshared_lib_formatZdylib_lib_formatZexe_extensionr   r3   r:   rC   rN   rP   rR   rX   rZ   rg   r#   r#   )r   r$   r   -   sB   





	
	6*r   )__doc__r(   r4   r`   Z	distutilsr   Zdistutils.dep_utilr   Zdistutils.ccompilerr   r   r   Zdistutils.errorsr   r   r	   r
   r   r5   r6   r   r#   r#   r#   r$   <module>   s   $"