;
Ðâ"Ic               @   sŽ  d  d l  Z  d  d l Z e j d k o d „  Z d „  Z d „  Z n e j d k o d „  Z n e j d k o- e  j d	 k o d  d
 l m Z	 d „  Z nÉ e j d k o¸ d  d l
 Z
 d  d l Z d  d l Z d „  Z e  j d k o d „  Z n
 d „  Z e  j j d ƒ p& e  j j d ƒ p e  j j d ƒ o d „  Z d „  Z qid „  Z d „  Z n d „  Z e d k o e ƒ  n d S(   i    Nu   ntc              C   sÄ   d }  t  j j |  ƒ } | d k o d S| t |  ƒ } t  j | d … j d d ƒ \ } } t | d d … ƒ d } t | d d	 … ƒ d
 } | d k o
 d } n | d k o	 | | Sd S(   uÏ   Return the version of MSVC that was used to build Python.

        For Python 2.3 and up, the version number is included in
        sys.version.  For earlier versions, assume the compiler is MSVC 6.
        u   MSC v.iÿÿÿÿi   Nu    i   iþÿÿÿi   i   g      $@i    (   u   sysu   versionu   findu   lenu   splitu   intu   None(   u   prefixu   iu   su   restu   majorVersionu   minorVersion(    (    u(   /mit/python/lib/python3.0/ctypes/util.pyu   _get_build_version   s    %
	c              C   s}   t  ƒ  }  |  d k o d S|  d k o
 d } n d |  d } d d l } | j ƒ  d d d k o | d 7} n | d	 S(
   u%   Return the name of the VC runtime dlli   u   msvcrtu   msvcr%di
   i    Nu   _d.pydu   du   .dll(   u   _get_build_versionu   Noneu   impu   get_suffixes(   u   versionu   clibnameu   imp(    (    u(   /mit/python/lib/python3.0/ctypes/util.pyu   find_msvcrt   s    	
c             C   s©   |  d k o t  ƒ  Sx t j d j t j ƒ D]r } t j j | |  ƒ } t j j | ƒ o | S| j ƒ  j	 d ƒ o q/ n | d } t j j | ƒ o | Sq/ Wd  S(   Nu   cu   mu   PATHu   .dll(   u   cu   m(   u   find_msvcrtu   osu   environu   splitu   pathsepu   pathu   joinu   existsu   loweru   endswithu   None(   u   nameu	   directoryu   fname(    (    u(   /mit/python/lib/python3.0/ctypes/util.pyu   find_library.   s     
	u   cec             C   s   |  S(   N(    (   u   name(    (    u(   /mit/python/lib/python3.0/ctypes/util.pyu   find_libraryD   s    u   posixu   darwin(   u	   dyld_findc          	   C   s^   d |  d |  d |  |  f g } x6 | D]. }  y t  |  ƒ SWq( t k
 o w( Yq( Xq( Wd  S(   Nu   lib%s.dylibu   %s.dylibu   %s.framework/%s(   u
   _dyld_findu
   ValueErroru   None(   u   nameu   possible(    (    u(   /mit/python/lib/python3.0/ctypes/util.pyu   find_libraryI   s     c       	      C   sù   d t  j |  ƒ } t j ƒ  \ } } t j | ƒ d | d |  } z1 t j | ƒ } z | j ƒ  } Wd  | j ƒ  XWd  y t j | ƒ WnA t	 k
 o5 } z | j
 t
 j k o ‚  n WYd  d  } ~ Xn XXt  j | | ƒ } | p d  S| j d ƒ S(   Nu   [^\(\)\s]*lib%s\.[^\(\)\s]*uG   if type gcc >/dev/null 2>&1; then CC=gcc; else CC=cc; fi;$CC -Wl,-t -o u    2>&1 -li    (   u   reu   escapeu   tempfileu   mkstempu   osu   closeu   popenu   readu   unlinku   OSErroru   errnou   ENOENTu   searchu   Noneu   group(	   u   nameu   expru   fdoutu   ccoutu   cmdu   fu   traceu   eu   res(    (    u(   /mit/python/lib/python3.0/ctypes/util.pyu   _findLib_gccX   s$    u   sunos5c          	   C   sn   |  p d  Sd |  } t j | ƒ }  z |  j ƒ  } Wd  |  j ƒ  Xt j d | ƒ } | p d  S| j d ƒ S(   Nu#   /usr/ccs/bin/dump -Lpv 2>/dev/null u   \[.*\]\sSONAME\s+([^\s]+)i   (   u   Noneu   osu   popenu   readu   closeu   reu   searchu   group(   u   fu   cmdu   datau   res(    (    u(   /mit/python/lib/python3.0/ctypes/util.pyu   _get_sonamer   s    
c          	   C   sn   |  p d  Sd |  } t j | ƒ }  z |  j ƒ  } Wd  |  j ƒ  Xt j d | ƒ } | p d  S| j d ƒ S(   Nu#   objdump -p -j .dynamic 2>/dev/null u   \sSONAME\s+([^\s]+)i   (   u   Noneu   osu   popenu   readu   closeu   reu   searchu   group(   u   fu   cmdu   datau   res(    (    u(   /mit/python/lib/python3.0/ctypes/util.pyu   _get_soname€   s    
u   freebsdu   openbsdu	   dragonflyc          
   C   sl   |  j  d ƒ } g  } y/ x( | o  | j d t | j ƒ  ƒ ƒ q WWn t k
 o Yn X| p
 t j g S(   Nu   .i    (   u   splitu   insertu   intu   popu
   ValueErroru   sysu   maxsize(   u   libnameu   partsu   nums(    (    u(   /mit/python/lib/python3.0/ctypes/util.pyu   _num_version“   s     %c          	   C   sŽ   t  j |  ƒ } d | | f } t j d ƒ } z | j ƒ  } Wd  | j ƒ  Xt  j | | ƒ } | p t t |  ƒ ƒ S| j	 d t
 ƒ | d S(   Nu   :-l%s\.\S+ => \S*/(lib%s\.\S+)u   /sbin/ldconfig -r 2>/dev/nullu   keyiÿÿÿÿ(   u   reu   escapeu   osu   popenu   readu   closeu   findallu   _get_sonameu   _findLib_gccu   sortu   _num_version(   u   nameu   enameu   expru   fu   datau   res(    (    u(   /mit/python/lib/python3.0/ctypes/util.pyu   find_libraryž   s    c             C   sÂ   d t  j |  ƒ } t j d ƒ } z | j ƒ  } Wd  | j ƒ  Xt  j | | ƒ } | p\ d t j } t j | ƒ } z | j ƒ  } Wd  | j ƒ  Xt  j | | ƒ } | p d  Sn | j
 d ƒ S(   Nu   /[^\(\)\s]*lib%s\.[^\(\)\s]*u   /sbin/ldconfig -p 2>/dev/nullu   ldd %s 2>/dev/nulli    (   u   reu   escapeu   osu   popenu   readu   closeu   searchu   sysu
   executableu   Noneu   group(   u   nameu   expru   fu   datau   resu   cmd(    (    u(   /mit/python/lib/python3.0/ctypes/util.pyu   _findLib_ldconfig®   s     	c             C   s   t  t |  ƒ p
 t |  ƒ ƒ S(   N(   u   _get_sonameu   _findLib_ldconfigu   _findLib_gcc(   u   name(    (    u(   /mit/python/lib/python3.0/ctypes/util.pyu   find_libraryÄ   s    c              C   s2  d d l  m }  t j d k o4 t |  j ƒ t |  j d ƒ ƒ t t d ƒ ƒ n t j d k oÊ t t d ƒ ƒ t t d ƒ ƒ t t d ƒ ƒ t j	 d	 k oP t |  j
 d
 ƒ ƒ t |  j
 d ƒ ƒ t |  j
 d ƒ ƒ t |  j
 d ƒ ƒ q.t |  j
 d ƒ ƒ t |  j
 d ƒ ƒ t t d ƒ ƒ n d  S(   Ni    (   u   cdllu   ntu   msvcrtu   posixu   mu   cu   bz2u   darwinu
   libm.dylibu   libcrypto.dylibu   libSystem.dylibu   System.framework/Systemu   libm.sou   libcrypt.sou   crypt(   u   ctypesu   cdllu   osu   nameu   printu   msvcrtu   loadu   find_libraryu   sysu   platformu   LoadLibrary(   u   cdll(    (    u(   /mit/python/lib/python3.0/ctypes/util.pyu   testÊ   s"    u   __main__(   u   sysu   osu   nameu   _get_build_versionu   find_msvcrtu   find_libraryu   platformu   ctypes.macholib.dyldu	   dyld_findu
   _dyld_findu   reu   tempfileu   errnou   _findLib_gccu   _get_sonameu
   startswithu   _num_versionu   _findLib_ldconfigu   testu   __name__(    (    (    u(   /mit/python/lib/python3.0/ctypes/util.pyu   <module>   s2   		 $					