Ñò
6»‚Uc        !   @   s&  d  d k  l Z d  d k l Z d  d k l Z d  d k l Z d  d k	 l
 Z
 d  d k l Z d  d k Z d  d k Z d  d k Z d  d k l Z y d  d k l Z Wn e j
 o e Z n Xy d  d	 k l Z Wn@ e j
 o4 d  d
 k l Z e d ƒ [ d  d k l Z n Xe Z e Z d Z e i d j o
 e Z nN e i d j o= y# d  d k  Z  e! e  d ƒ Z Z Wq”e j
 o q”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_ext(   t	   copy_file(   t   new_compiler(   t   customize_compiler(   t   DistutilsError(   t   logN(   t   Library(   t   _CONFIG_VARS(   t   get_config_vart   LDSHARED(   t   _config_varst   sharedt   darwint   ntt   RTLD_NOWc         C   s   t  o |  Sd  S(   t    (   t	   have_rtld(   t   s(    (    s@   /usr/lib/python2.6/site-packages/setuptools/command/build_ext.pyt   <lambda>+   s    R    c           B   s€   e  Z d  „  Z d „  Z d „  Z d „  Z 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/site-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/site-packages/setuptools/command/build_ext.pyR   6   s     
 

c         C   s´   t  i |  | ƒ } | |  i j oŽ |  i | } t | t ƒ o, t i i | ƒ \ } } |  i i	 | t
 ƒ St o: | i o0 t i i | ƒ \ } } t i i | d | ƒ Sn | 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/site-packages/setuptools/command/build_ext.pyR!   L   s    c         C   s,   t  i |  ƒ d  |  _ g  |  _ h  |  _ d  S(   N(   R   t   initialize_optionst   NoneR8   t   shlibsR5   (   R   (    (    s@   /usr/lib/python2.6/site-packages/setuptools/command/build_ext.pyR?   X   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_listR6   R   RA   t   setup_shlib_compilerR   R    t
   _full_nameR5   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   ltdt   nsR/   t   libdir(    (    s@   /usr/lib/python2.6/site-packages/setuptools/command/build_ext.pyRB   ^   s2    '

 
 	 		$!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   RQ   R   RR   R8   t   syst   platformR   t   copyR   t   cleart   updatet   include_dirsR@   t   set_include_dirst   definet   define_macrot   undeft   undefine_macrot	   librariest   set_librariesRJ   t   set_library_dirst   rpatht   set_runtime_library_dirst   link_objectst   set_link_objectst   link_shared_objectt   __get__(   R   RQ   t   tmpR    t   valuet   macro(    (    s@   /usr/lib/python2.6/site-packages/setuptools/command/build_ext.pyRD   {   s>    %





 
 c         C   s(   t  | t ƒ o | i St i |  | ƒ S(   N(   R6   R   t   export_symbolsR   t   get_export_symbols(   R   R-   (    (    s@   /usr/lib/python2.6/site-packages/setuptools/command/build_ext.pyRm   £   s    c         C   sˆ   | i  ƒ  |  i } zd t | t ƒ o |  i |  _ n t i |  | ƒ | i o& |  i d ƒ i	 } |  i
 | | ƒ n Wd  | |  _ Xd  S(   NR   (   t   _convert_pyx_sources_to_langRQ   R6   R   R8   R   t   build_extensionR)   R   R(   R*   (   R   R-   t	   _compilert   cmd(    (    s@   /usr/lib/python2.6/site-packages/setuptools/command/build_ext.pyRo   ¨   s    
	
c            sv   t  i g  } |  i D] } | | i q ~ ƒ ‰ d i | i i d ƒ d  d g ƒ ‰  t ‡  ‡ f d †  | i Dƒ ƒ S(   s?   Return true if 'ext' links to a dynamic lib in the same packageR   iÿÿÿÿR   c         3   s#   x |  ] } ˆ  | ˆ j Vq Wd  S(   N(    (   t   .0t   libname(   t   pkgt   libnames(    s@   /usr/lib/python2.6/site-packages/setuptools/command/build_ext.pys	   <genexpr>¼   s   	 (   t   dictt   fromkeysRA   RE   R#   R"   t   anyR`   (   R   R-   RM   t   lib(    (   Rt   Ru   s@   /usr/lib/python2.6/site-packages/setuptools/command/build_ext.pyRF   µ   s    0&c         C   s   t  i |  ƒ |  i ƒ  S(   N(   R   t   get_outputst   _build_ext__get_stubs_outputs(   R   (    (    s@   /usr/lib/python2.6/site-packages/setuptools/command/build_ext.pyRz   ¾   s    c            sE   ‡  f d †  ˆ  i  Dƒ } t i | ˆ  i ƒ  ƒ } t d „  | Dƒ ƒ S(   Nc         3   sE   x> |  ]7 } | i  o' t i i ˆ  i | i i d  ƒ Œ Vq q Wd S(   R   N(   R)   R%   R&   R#   R(   RE   R"   (   Rr   R-   (   R   (    s@   /usr/lib/python2.6/site-packages/setuptools/command/build_ext.pys	   <genexpr>Ä   s   	c         s   s#   x |  ] \ } } | | Vq Wd  S(   N(    (   Rr   t   baset   fnext(    (    s@   /usr/lib/python2.6/site-packages/setuptools/command/build_ext.pys	   <genexpr>Ê   s   	 (   R   t	   itertoolst   productt!   _build_ext__get_output_extensionst   list(   R   t   ns_ext_basest   pairs(    (   R   s@   /usr/lib/python2.6/site-packages/setuptools/command/build_ext.pyt   __get_stubs_outputsÁ   s    c         c   s*   d Vd V|  i  d ƒ i o	 d Vn d  S(   Ns   .pys   .pycR   s   .pyo(   R   t   optimize(   R   (    (    s@   /usr/lib/python2.6/site-packages/setuptools/command/build_ext.pyt   __get_output_extensionsÌ   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_compileR…   i    RR   R   t   install_lib(   R   t   infoRE   R%   R&   R#   R"   t   existsR   R   t   opent   writet   if_dlR'   RH   t   closet   distutils.utilRˆ   R,   R   R…   t   unlink(   R   t
   output_dirR-   t   compilet	   stub_filet   fRˆ   R…   (    (    s@   /usr/lib/python2.6/site-packages/setuptools/command/build_ext.pyR*   Ò   sP    
			(   t   __name__t
   __module__R   R   R!   R?   RB   RD   Rm   Ro   RF   Rz   R{   R€   RG   R*   (    (    (    s@   /usr/lib/python2.6/site-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’   R`   RJ   RL   Rl   t   debugt   extra_preargst   extra_postargst
   build_tempt   target_lang(    (    s@   /usr/lib/python2.6/site-packages/setuptools/command/build_ext.pyRg     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   xRy   i   (	   R@   t   AssertionErrorR%   R&   R"   R7   R9   t
   startswitht   create_static_lib(   R   Rš   R›   R’   R`   RJ   RL   Rl   Rœ   R   Rž   RŸ   R    R/   R'   R-   (    (    s@   /usr/lib/python2.6/site-packages/setuptools/command/build_ext.pyRg     s    (%   t   distutils.command.build_extR    t   _du_build_extt   distutils.file_utilR   t   distutils.ccompilerR   t   distutils.sysconfigR   t   distutils.errorsR   t	   distutilsR   R%   RU   R~   t   setuptools.extensionR   t   Cython.Distutils.build_extR   t   ImportErrort	   sysconfigR   R   R
   RG   R   R;   R:   RV   R,   R    t   dlt   hasattrRŽ   R@   Rg   (    (    (    s@   /usr/lib/python2.6/site-packages/setuptools/command/build_ext.pyt   <module>   sV   

		Ô			