Ñò
]%ÊJc           @   sÚ  d  d k  l Z y d  d k l Z Wn e j
 o e Z n Xd  d k Z d  d k Z d  d k l	 Z	 d  d k
 l Z d  d k l Z d  d k l Z l Z e d ƒ d  d k l Z d  d	 k l Z d  d
 k Te Z e Z d Z e i d j o
 e Z nK e i d j o: y  d  d k l Z e Z e Z WqHe j
 o qHXn d „  Z d e f d „  ƒ  YZ e p e i d j o+ d d d d d d d d d d d „
 Z  n. d Z d d d d d d d d d d d „
 Z  d S(   iÿÿÿÿ(   t	   build_extN(   t	   copy_file(   t   Library(   t   new_compiler(   t   customize_compilert   get_config_vart   LDSHARED(   t   _config_vars(   t   log(   t   *t   sharedt   darwint   nt(   t   RTLD_NOWc         C   s   t  o |  Sd S(   Nt    (   t	   have_rtld(   t   s(    (    s@   /usr/lib/python2.6/dist-packages/setuptools/command/build_ext.pyt   if_dl    s    R    c           B   s™   e  Z d  „  Z d „  Z e e j	 o e e d ƒ o d „  Z n d „  Z d „  Z	 d „  Z
 d „  Z d „  Z d	 „  Z d
 „  Z d „  Z e d „ Z RS(   c         C   sB   |  i  d } |  _  t i |  ƒ | |  _  | o |  i ƒ  n d S(   s;   Build extensions in build directory, then copy if --inplacei    N(   t   inplacet
   _build_extt   runt   copy_extensions_to_source(   t   selft   old_inplace(    (    s@   /usr/lib/python2.6/dist-packages/setuptools/command/build_ext.pyR   +   s
    	c   
   	   C   sü   |  i  d ƒ } xæ |  i D]Û } |  i | i ƒ } |  i | ƒ } | i d ƒ } d i | d  ƒ } | i | ƒ } t i	 i | t i	 i
 | ƒ ƒ } t i	 i |  i | ƒ }	 t |	 | d |  i d |  i ƒ| i o! |  i | p t i | t ƒ q q Wd  S(   Nt   build_pyt   .iÿÿÿÿt   verboset   dry_run(   t   get_finalized_commandt
   extensionst   get_ext_fullnamet   namet   get_ext_filenamet   splitt   joint   get_package_dirt   ost   patht   basenamet	   build_libR   R   R   t   _needs_stubt
   write_stubt   curdirt   True(
   R   R   t   extt   fullnamet   filenamet   modpatht   packaget   package_dirt   dest_filenamet   src_filename(    (    s@   /usr/lib/python2.6/dist-packages/setuptools/command/build_ext.pyR   3   s    
 !

t   pyrex_sourcesc         G   s,   t  i |  | ƒ p | } t i |  | | Œ S(   N(   R   t   swig_sourcest   _du_build_ext(   R   t   sourcest	   otherargs(    (    s@   /usr/lib/python2.6/dist-packages/setuptools/command/build_ext.pyR5   K   s    c         C   s¹   t  i |  | ƒ } | |  i j o | S|  i | } t | t ƒ o, t i i | ƒ \ } } |  i i	 | t
 ƒ St o: | i o0 t i i | ƒ \ } } t i i | d | ƒ S| Sd  S(   Ns   dl-(   R   R    t   ext_mapt
   isinstanceR   R$   R%   t   splitextt   shlib_compilert   library_filenamet   libtypet	   use_stubst   _links_to_dynamicR!   R"   (   R   R-   R.   R,   t   fnt   d(    (    s@   /usr/lib/python2.6/dist-packages/setuptools/command/build_ext.pyR    S   s    c         C   s,   t  i |  ƒ d  |  _ g  |  _ h  |  _ d  S(   N(   R   t   initialize_optionst   NoneR<   t   shlibsR9   (   R   (    (    s@   /usr/lib/python2.6/dist-packages/setuptools/command/build_ext.pyRC   a   s    		c      	   C   sÙ  t  i |  ƒ |  i p g  |  _ |  i |  i ƒ g  } |  i D]! } t | t ƒ o | | q> q> ~ |  _ |  i o |  i ƒ  n x& |  i D] } |  i | i	 ƒ | _
 q Wx&|  i D]} | i
 } | |  i | <| |  i | i d ƒ d <|  i o |  i | ƒ p t } | _ | o t o t | t ƒ | _ |  i | ƒ } | _ t i i t i i |  i | ƒ ƒ } | o$ | | i j o | i i | ƒ n | o1 t o* t i | i j o | i i t i ƒ q¶ q¶ Wd  S(   NR   iÿÿÿÿ(   R   t   finalize_optionsR   t   check_extensions_listR:   R   RE   t   setup_shlib_compilerR   R   t
   _full_nameR9   R!   t   links_to_dynamict   FalseR@   R?   R(   R    t
   _file_nameR$   R%   t   dirnameR"   R'   t   library_dirst   appendR*   t   runtime_library_dirs(   R   t   _[1]R,   R-   t   ltdR.   t   libdir(    (    s@   /usr/lib/python2.6/dist-packages/setuptools/command/build_ext.pyRF   g   s.    '

 
 	'!$!c      	   C   sÙ  t  d |  i d |  i d |  i ƒ } |  _ t i d j oW t i ƒ  } z, d t d <d t d <d	 t d
 <t	 | ƒ Wd  t i
 ƒ  t i | ƒ Xn t	 | ƒ |  i d  j	 o | i |  i ƒ n |  i d  j	 o. x+ |  i D] \ } } | i | | ƒ qÚ Wn |  i d  j	 o% x" |  i D] } | i | ƒ qWn |  i d  j	 o | i |  i ƒ n |  i d  j	 o | i |  i ƒ n |  i d  j	 o | i |  i ƒ n |  i d  j	 o | i |  i ƒ n t i | ƒ | _ d  S(   Nt   compilerR   t   forceR   s0   gcc -Wl,-x -dynamiclib -undefined dynamic_lookupR   s    -dynamiclibt   CCSHAREDs   .dylibt   SO(   R   RT   R   RU   R<   t   syst   platformR   t   copyR   t   cleart   updatet   include_dirsRD   t   set_include_dirst   definet   define_macrot   undeft   undefine_macrot	   librariest   set_librariesRN   t   set_library_dirst   rpatht   set_runtime_library_dirst   link_objectst   set_link_objectst   link_shared_objectt   __get__(   R   RT   t   tmpR   t   valuet   macro(    (    s@   /usr/lib/python2.6/dist-packages/setuptools/command/build_ext.pyRH   ƒ   s>    %





 
 c         C   s(   t  | t ƒ o | i St i |  | ƒ S(   N(   R:   R   t   export_symbolsR   t   get_export_symbols(   R   R,   (    (    s@   /usr/lib/python2.6/dist-packages/setuptools/command/build_ext.pyRp   ¬   s    c         C   sx   |  i  } z^ t | t ƒ o |  i |  _  n t i |  | ƒ | i o  |  i |  i d ƒ i	 | ƒ n Wd  | |  _  Xd  S(   NR   (
   RT   R:   R   R<   R   t   build_extensionR(   R)   R   R'   (   R   R,   t	   _compiler(    (    s@   /usr/lib/python2.6/dist-packages/setuptools/command/build_ext.pyRq   ±   s    	
c         C   s„   t  i g  } |  i D] } | | i q ~ ƒ } d i | i i d ƒ d  d g ƒ } x' | i D] } | | | j o t Sq` Wt S(   s?   Return true if 'ext' links to a dynamic lib in the same packageR   iÿÿÿÿR   (	   t   dictt   fromkeysRE   RI   R"   R!   Rc   R+   RK   (   R   R,   RQ   t   libt   libnamest   pkgt   libname(    (    s@   /usr/lib/python2.6/dist-packages/setuptools/command/build_ext.pyRJ   ¾   s    0&
  	c         C   s©   t  i |  ƒ } |  i d ƒ i } x |  i D]v } | i of t i i |  i	 | i
 i d ƒ Œ } | i | d ƒ | i | d ƒ | o | i | d ƒ q¡ q+ q+ W| S(   NR   R   s   .pys   .pycs   .pyo(   R   t   get_outputsR   t   optimizeR   R(   R$   R%   R"   R'   RI   R!   RO   (   R   t   outputsRz   R,   t   base(    (    s@   /usr/lib/python2.6/dist-packages/setuptools/command/build_ext.pyRy   É   s    
 
$c         C   sÀ  t  i d | i | ƒ t i i | | i i d ƒ Œ d } | o' t i i | ƒ o t | d ƒ ‚ n |  i	 p˜ t
 | d ƒ } | i d i d d d	 t d
 ƒ d t i i | i ƒ d d d t d ƒ d d d t d ƒ d d t d ƒ d d d g ƒ ƒ | i ƒ  n | oª d d k l } | | g d d d t d |  i	 ƒ|  i d  ƒ i } | d j o& | | g d | d t d |  i	 ƒn t i i | ƒ o |  i	 o t i | ƒ q¼n d  S(!   Ns    writing stub loader for %s to %sR   s   .pys    already exists! Please delete.t   ws   
s   def __bootstrap__():s-      global __bootstrap__, __file__, __loader__s%      import sys, os, pkg_resources, imps   , dls:      __file__ = pkg_resources.resource_filename(__name__,%r)s      del __bootstrap__s       if '__loader__' in globals():s          del __loader__s#      old_flags = sys.getdlopenflags()s      old_dir = os.getcwd()s      try:s(        os.chdir(os.path.dirname(__file__))s$        sys.setdlopenflags(dl.RTLD_NOW)s(        imp.load_dynamic(__name__,__file__)s      finally:s"        sys.setdlopenflags(old_flags)s        os.chdir(old_dir)s   __bootstrap__()R   iÿÿÿÿ(   t   byte_compileRz   i    RU   R   t   install_lib(   R   t   infoRI   R$   R%   R"   R!   t   existst   DistutilsErrorR   t   opent   writeR   R&   RL   t   closet   distutils.utilR~   R+   R   Rz   t   unlink(   R   t
   output_dirR,   t   compilet	   stub_filet   fR~   Rz   (    (    s@   /usr/lib/python2.6/dist-packages/setuptools/command/build_ext.pyR)   Õ   sJ    %
			(   t   __name__t
   __module__R   R   R   R6   t   hasattrR5   R    RC   RF   RH   Rp   Rq   RJ   Ry   RK   R)   (    (    (    s@   /usr/lib/python2.6/dist-packages/setuptools/command/build_ext.pyR    *   s   						)				i    c         C   s8   |  i  |  i | | | | | | | | |	 |
 | | ƒ d  S(   N(   t   linkt   SHARED_LIBRARY(   R   t   objectst   output_libnameRˆ   Rc   RN   RP   Ro   t   debugt   extra_preargst   extra_postargst
   build_tempt   target_lang(    (    s@   /usr/lib/python2.6/dist-packages/setuptools/command/build_ext.pyRj     s
    t   staticc         C   sˆ   | d  j p t ‚ t i i | ƒ \ } } t i i | ƒ \ } } |  i d ƒ i d ƒ o | d } n |  i | | | | | ƒ d  S(   Nt   xRu   i   (	   RD   t   AssertionErrorR$   R%   R!   R;   R=   t
   startswitht   create_static_lib(   R   R‘   R’   Rˆ   Rc   RN   RP   Ro   R“   R”   R•   R–   R—   R.   R&   R,   (    (    s@   /usr/lib/python2.6/dist-packages/setuptools/command/build_ext.pyRj     s    (!   t   distutils.command.build_extR    R6   t   Pyrex.Distutils.build_extR   t   ImportErrorR$   RX   t   distutils.file_utilR   t   setuptools.extensionR   t   distutils.ccompilerR   t   distutils.sysconfigR   R   R   t	   distutilsR   t   distutils.errorsRK   R   R?   R>   RY   R+   R   t   dlR   R   RD   Rj   (    (    (    s@   /usr/lib/python2.6/dist-packages/setuptools/command/build_ext.pyt   <module>   sJ   



		
Ô					