£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyÊ¦•êŽ…È®FÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~èŠ©ÊÇí`ÔÑ©úë™µ'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶ê×Ó¼ãžªéUWŸÈË%DÒÕ¬ï‘]/Åcx  ‰ï2ß]ä6G[]S£ÔÏ¯rs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ                  ¯¹ægƒÛowÐø^d™ý½ßB7áyMä9ÜÖUã
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
<html>

$Yf:                 @   s   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 Gd d	   d	 e  Z d S)
    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 d d g d d g d d g d d d	 g d
 d g d d d g d d i Z e j d d  d k r d 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 r d Z   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 d0 d1   Z d% d2 d3  Z   S)4UnixCCompilerZunixpreprocessorNcompilerZcccompiler_socompiler_cxx	linker_soz-shared
linker_exearchiverarz-crranlib   r   z.cz.Cz.ccz.cxxz.cppz.mz.oz.az.soz.dylibz.tbdzlib%s%scygwinz.exec                se   t  |  j |   j | | |  \ } } } t j d  } | rX | | k rX | j |  | | | f S)NLIBDIR)super	__class___fix_lib_argsr   get_config_varremove)self	librarieslibrary_dirsruntime_library_dirsZlibdir)r    2/opt/alt/python35/lib64/python3.5/unixccompiler.pyr   U   s    zUnixCCompiler._fix_lib_argsc             C   s  |  j  d  | |  } | \ } } } t | |  }	 |  j |	 }
 | rY |
 j d | g  | ro | |
 d  d  <| r |
 j |  |
 j |  |  j s | d  k s t | |  r| r |  j t j	 j
 |   y |  j |
  Wn1 t k
 r} z t |   WYd  d  } ~ Xn Xd  S)Nz-or   )Z_fix_compile_argsr   r   extendappend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 r. t j | | |  } 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srcextZcc_argsr/   r2   r   r3   r#   r#   r$   _compiley   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 Xn 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   rA   Zoutput_libnamer=   rB   target_langoutput_filenamer3   r#   r#   r$   create_static_lib   s    	"zUnixCCompiler.create_static_libc             C   sI  |  j  | |  \ } } |  j | | |  } | \ } } } t |  | | |  } t | t t d   f  sx t d   | d  k	 r t j j	 | |  } |  j
 | |  r5| |  j | d | g } |	 r d g | d  d  <|
 r |
 | d  d  <| r| j |  |  j t j j |   y | t j k rI|  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W|  j | | | <t j d	 k rt j | |  } |  j | |  WqEt k
 r1} z t |   WYd  d  } ~ XqE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@   rA   r%   r(   r+   r   Z
EXECUTABLEr   r   r   basenamer5   r6   r7   r8   r,   r   r
   r   rB   )r   Ztarget_descrA   rD   r=   r    r!   r"   Zexport_symbolsrB   r.   r/   Z
build_temprC   r0   Zlib_optsZld_argsZlinkerir3   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] d | St j d  d  d	 k r |  j |  r 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freebsdz-Wl,-rpath=   zhp-uxz-Wl,+sz+sZirix646Zosf1V5z-rpathGNULDyesz-Wl,--enable-new-dtags,-Rz-Wl,-Rz-R)r)   r*   rN   r   r   r5   r6   rT   )r   rQ   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 } |  j  | d d } t j d k r t j d  } t j d |  }	 |	 d  k r d	 }
 n |	 j d
  }
 x| D]w} t j	 j
 | |  } t j	 j
 | |  } t j	 j
 | |  } t j	 j
 | |  } t j d k r| j d  sF| j d  r| j d  rt j	 j
 |
 | d
 d   |  } t j	 j
 |
 | d
 d   |  } t j	 j
 |
 | d
 d   |  } t j	 j
 |
 | d
 d   |  } t j	 j |  r| St j	 j |  r| St j	 j |  r| St j	 j |  r | Sq Wd  S)NZlib_typeshareddylib
xcode_stubstaticr   CFLAGSz-isysroot\s+(\S+)/rG   z/System/z/usr/z/usr/local/)r?   r5   r6   r   r   researchgroupr)   r*   rM   
startswithexists)r   dirsr[   rB   Zshared_fZdylib_fZxcode_stub_fZstatic_fZcflagsmZsysrootrQ   r]   r^   r`   r_   r#   r#   r$   find_library_file  s>    	""""zUnixCCompiler.find_library_file)__name__
__module____qualname__Zcompiler_typeZexecutablesr5   r6   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   r4   r<   rE   rP   rR   rT   rZ   r\   rj   r#   r#   )r   r$   r   -   sF   				
	6,r   )r)   r5   rc   Z	distutilsr   Zdistutils.dep_utilr   Zdistutils.ccompilerr   r   r   Zdistutils.errorsr   r   r	   r
   r   r6   r7   r   r#   r#   r#   r$   <module>   s   $"