ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     U
    &.e;                     @   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G d	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ddgdgdgddgdgddgddZejdd d	krNd
ged
< ddddddgZdZdZ	dZ
dZdZd Z ZZeZejdkrdZ fddZd.ddZdd Zd/d d!Zd0d"d#Zd$d% Zd&d' Zd(d) Zd*d+ Zd1d,d-Z  ZS )2UnixCCompilerZunixNZccz-sharedZ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                    s@   t  |||\}}}td}|r6||kr6|| |||fS )z'Remove standard library path from rpathZLIBDIR)super_fix_lib_argsr   get_config_varremove)self	librarieslibrary_dirsruntime_library_dirsZlibdir	__class__ //usr/lib64/python3.8/distutils/unixccompiler.pyr   U   s      


zUnixCCompiler._fix_lib_argsc              
   C   s   |  d ||}|\}}}t||}	| j|	 }
|r>|
d|g |rN||
d d< |r\|
| |
| | js~|d ks~t||r|r| tj	
| z| |
 W n* tk
r } zt|W 5 d }~X Y nX d S )N-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   sp   | j }tjdkr t||| }z | || |d|g |  W n* tk
rj } zt|W 5 d }~X Y nX d S )Nr   r$   )r   sysplatform_osx_supportcompiler_fixupr+   r   r   )	r   objsrcZextZcc_argsr.   r1   r   r2   r"   r"   r#   _compilex   s    

zUnixCCompiler._compiler   c              
   C   s   |  ||\}}| j||d}| ||r| tj| | | j|g | | j	  | j
rz| | j
|g  W q tk
r } zt|W 5 d }~X Y qX nt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   r@   Zoutput_libnamer;   rA   target_langoutput_filenamer2   r"   r"   r#   create_static_lib   s$    	zUnixCCompiler.create_static_libc              
   C   s  |  ||\}}| |||}|\}}}t| |||}t|ttd fsPtd|d k	rftj	||}| 
||r|| j | d|g }|	rdg|d d< |
r|
|d d< |r|| | tj| z|tjkr| jd d  }n| jd d  }|dkrr| jrrd}tj|d dkr@d}d|| kr@|d7 }q&tj|| d	kr\d}nd}| j| ||| < tjd
krt||}| ||  W n, tk
r } zt|W 5 d }~X Y nX ntd| d S )Nz%'output_dir' must be a string or Noner$   z-gr   zc++env   =Z	ld_so_aixr   r<   )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   rA   )r   Ztarget_descr@   rC   r;   r   r   r   Zexport_symbolsrA   r-   r.   Z
build_temprB   r/   Zlib_optsZld_argsZlinkerioffsetr2   r"   r"   r#   link   sZ    


zUnixCCompiler.linkc                 C   s   d| S )N-Lr"   )r   dirr"   r"   r#   library_dir_option   s    z UnixCCompiler.library_dir_optionc                 C   s   d|kpd|kS )NZgcczg++r"   )r   Zcompiler_namer"   r"   r#   _is_gcc   s    zUnixCCompiler._is_gccc                 C   s   t jtd}tjd d dkr,d| S tjd d dkrFd| S tjd d d	krz| |rnd
d| gS dd| gS | |rtddkrd| S d| S nd| S d S )NCCr   r   rQ      Zfreebsdz-Wl,-rpath=   zhp-uxz-Wl,+sz+sZGNULDZyesz-Wl,--enable-new-dtags,-Rz-Wl,-Rz-R)r(   r)   rM   r   r   r4   r5   rT   )r   rR   r   r"   r"   r#   runtime_library_dir_option   s    


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}| j |dd}tjdkr|td}td|}	|	d krrttd	}
n
|		d
}
|D ] }t
j||}t
j||}t
j||}t
j||}tjdkrL|ds|drL|dsLt
j|
|d
d  |}t
j|
|d
d  |}t
j|
|d
d  |}t
j|
|d
d  |}t
j|rb|  S t
j|rx|  S t
j|r|  S t
j|r|  S qd S )Nshared)Zlib_typedylib
xcode_stubstaticr   ZCFLAGSz-isysroot\s*(\S+)rU   rF   z/System/z/usr/z/usr/local/)r>   r4   r5   r   r   researchr6   Z_default_sysrootgroupr(   r)   rL   
startswithexists)r   dirsrY   rA   Zshared_fZdylib_fZxcode_stub_fZstatic_fZcflagsmZsysrootrR   r[   r\   r^   r]   r"   r"   r#   find_library_file  sF    




zUnixCCompiler.find_library_file)NNNNN)Nr   N)
NNNNNr   NNNN)r   )__name__
__module____qualname__Zcompiler_typeZexecutablesr4   r5   Zsrc_extensionsZobj_extensionZstatic_lib_extensionZshared_lib_extensionZdylib_lib_extensionZxcode_stub_lib_extensionZstatic_lib_formatZshared_lib_formatZdylib_lib_formatZxcode_stub_lib_formatZexe_extensionr   r3   r:   rD   rP   rS   rT   rX   rZ   rf   __classcell__r"   r"   r    r#   r   -   sb   


	      
     
                
B*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   
