ó
Eˆz]c           @  sÏ  d  d l  m Z m Z d  d l Z d  d l Z d  d l 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 d  d l m Z d  d l m Z d  d l m Z m Z d  d	 l m Z d  d
 l Te j j d d ƒ d k Z e j j d d ƒ d k Z e oe Z d e f d „  ƒ  YZ d „  Z d „  Z  d „  Z! d „  Z" d „  Z# d „  Z$ d „  Z% d „  Z& d „  Z' d „  Z( d e) d „ Z* e+ d k rËd  d l, m- Z- e- d e* ƒ n  d S(    iÿÿÿÿ(   t   divisiont   print_functionN(   t   join(   t   log(   t   get_info(   t   newer(   t   get_config_var(   t   uses_accelerate_frameworkt   get_sgemv_fix(   t   npy_load_module(   t   *t   NPY_RELAXED_STRIDES_CHECKINGt   1t   0t   NPY_RELAXED_STRIDES_DEBUGt   CallOnceOnlyc           B  s,   e  Z d  „  Z d „  Z d „  Z d „  Z RS(   c         C  s   d  |  _ d  |  _ d  |  _ d  S(   N(   t   Nonet   _check_typest   _check_ieee_macrost   _check_complex(   t   self(    (    s/   lib/python2.7/site-packages/numpy/core/setup.pyt   __init__)   s    		c         O  sR   |  j  d  k r3 t | | Ž  } t j | ƒ |  _  n t j t j |  j  ƒ ƒ } | S(   N(   R   R   t   check_typest   picklet   dumpst   copyt   deepcopyt   loads(   R   t   at   kwt   out(    (    s/   lib/python2.7/site-packages/numpy/core/setup.pyR   .   s
    c         O  sR   |  j  d  k r3 t | | Ž  } t j | ƒ |  _  n t j t j |  j  ƒ ƒ } | S(   N(   R   R   t   check_ieee_macrosR   R   R   R   R   (   R   R   R   R   (    (    s/   lib/python2.7/site-packages/numpy/core/setup.pyR   6   s
    c         O  sR   |  j  d  k r3 t | | Ž  } t j | ƒ |  _  n t j t j |  j  ƒ ƒ } | S(   N(   R   R   t   check_complexR   R   R   R   R   (   R   R   R   R   (    (    s/   lib/python2.7/site-packages/numpy/core/setup.pyR    >   s
    (   t   __name__t
   __module__R   R   R   R    (    (    (    s/   lib/python2.7/site-packages/numpy/core/setup.pyR   (   s   			c           C  s3   t  j d k r% t j j t  j d ƒ St d ƒ Sd S(   s    return path where libpython* is.t   win32t   libst   LIBDIRN(   t   syst   platformt   ost   pathR   t   prefixR   (    (    (    s/   lib/python2.7/site-packages/numpy/core/setup.pyt   pythonlib_dirF   s    c           C  s   t  j d k S(   sT   Return True if the NPY_NO_SIGNAL symbol must be defined in configuration
    header.R#   (   R&   R'   (    (    (    s/   lib/python2.7/site-packages/numpy/core/setup.pyt   is_npy_no_signalM   s    c           C  s   d t  j k S(   sx   Return True if the NPY_NO_SMP symbol must be defined in public
    header (when SMP support cannot be reliably enabled).t	   NPY_NOSMP(   R(   t   environ(    (    (    s/   lib/python2.7/site-packages/numpy/core/setup.pyt   is_npy_no_smpR   s    	c         C  s~   d d l  m } | ƒ  } t d | t j t j f ƒ | d k rR |  j d ƒ n  | d k sj | d k rz |  j d ƒ n  d  S(   Niÿÿÿÿ(   t   get_build_architectures3   BUILD_ARCHITECTURE: %r, os.name=%r, sys.platform=%rt   AMD64t   DISTUTILS_USE_SDKt   Intelt   FORCE_NO_LONG_DOUBLE_FORMATTING(   t   numpy.distutils.misc_utilR0   t   printR(   t   nameR&   R'   t   append(   t   deflistR0   R   (    (    s/   lib/python2.7/site-packages/numpy/core/setup.pyt   win32_checks]   s    	c           së  ‡ ‡ f d †  ‰  ‡ ‡ ‡ f d †  ‰ ‡  ‡ ‡ f d †  } ˆ t  ƒ sa t d t t  ƒ ƒ ‚ n  x? t D]7 } ˆ j t | ƒ d d d g ƒrh t j | ƒ qh qh W| t ƒ xr t D]j } ˆ j	 d d	 t
 d
 t
 d | g ƒr´ | j d d ƒ j t j j d ƒ } ˆ j t | ƒ d f ƒ q´ q´ Wxt D]} d  } t | ƒ d k rp| d | d t | d ƒ } } }	 nƒ t | ƒ d k r¼| d | d | d g t | d ƒ f \ } } } }	 n7 | d | d | d g t | d ƒ f \ } } } }	 ˆ j	 | d	 t
 d
 t d | d | ƒr)ˆ j |	 d f ƒ q)q)WxB t D]: \ }
 } ˆ j |
 | ƒ r;ˆ j t | ƒ d f ƒ q;q;WxW t D]O } ˆ j | ƒ r€| j d d ƒ j d d ƒ }	 ˆ j t |	 ƒ d f ƒ q€q€W| t ƒ | t ƒ d  S(   Nc           s   ˆ  j  |  d ˆ d t d t ƒS(   Nt	   librariest   declt   call(   t
   check_funct   True(   t	   func_name(   t   configt   mathlibs(    s/   lib/python2.7/site-packages/numpy/core/setup.pyR>   n   s    c           s   t  g  |  D] } | t f ^ q
 ƒ } ˆ  j |  d ˆ d | d | ƒ} | r{ ˆ j g  |  D] } t | ƒ d f ^ qY ƒ n  | S(   NR;   R<   R=   i   (   t   dictR?   t   check_funcs_oncet   extendt	   fname2def(   t
   funcs_namet   fR<   t   st(   RA   RB   t   moredefs(    s/   lib/python2.7/site-packages/numpy/core/setup.pyRD   r   s    %/c           sQ   ˆ |  ƒ sI x6 |  D]. } ˆ  | ƒ r ˆ j  t | ƒ d f ƒ q q Wd Sd Sd  S(   Ni   i    (   R8   RF   (   RG   RH   (   R>   RD   RJ   (    s/   lib/python2.7/site-packages/numpy/core/setup.pyt   check_funcsz   s     sN   One of the required function to build numpy is not available (the list is %s).t   headerss   Python.hs   math.ht    R<   R=   t   .t   _i   i   i    i   t	   call_argst   (t   )(   t   MANDATORY_FUNCSt   SystemErrort   strt   OPTIONAL_STDFUNCS_MAYBEt
   check_declRF   t   OPTIONAL_STDFUNCSt   removet   OPTIONAL_HEADERSR>   t   Falset   replaceR(   R)   t   sepR8   t   OPTIONAL_INTRINSICSR   t   lenR?   t   OPTIONAL_FUNCTION_ATTRIBUTESt   check_gcc_function_attributet   OPTIONAL_VARIABLE_ATTRIBUTESt   check_gcc_variable_attributet   C99_FUNCS_SINGLEt   C99_FUNCS_EXTENDED(   RA   RJ   RB   RK   RH   t   ht   tupRL   t   argst   mt   dect   fn(    (   R>   RD   RA   RB   RJ   s/   lib/python2.7/site-packages/numpy/core/setup.pyt   check_math_capabilitiesm   sD    	
$$ ):7	  
c           s  g  ‰ g  } y7 t  j ƒ  d d k rB t j d d d ƒˆ | f SWn t k
 rV n Xˆ  j d ƒ } | rˆ j d ƒ | j d ƒ xL t D]D } ˆ  j | d
 d g ƒ} | r | j d t	 | ƒ d f ƒ q q W‡  ‡ ‡ f d †  } | d ƒ | d ƒ | d ƒ n  ˆ | f S(   Ni    t   Interixs+   Disabling broken complex support. See #1365t
   stackleveli   s	   complex.ht   HAVE_COMPLEX_Hi   t   NPY_USE_C99_COMPLEXRL   s   NPY_HAVE_%sc      	     sä   g  t  D] } | |  ^ q } t g  | D] } | t f ^ q' ƒ } ˆ  j | d | d | d ˆ ƒs´ xz | D]C } ˆ  j | d t d t d ˆ ƒrj ˆ j t | ƒ d f ƒ qj qj Wn, ˆ j g  | D] } t | ƒ d f ^ qÁ ƒ d  S(   NR=   R<   R;   i   (   t   C99_COMPLEX_FUNCSRC   R?   RD   R>   R8   RF   RE   (   t   precRH   t   flistR<   (   RA   RB   t   priv(    s/   lib/python2.7/site-packages/numpy/core/setup.pyt
   check_precÏ   s    %		#RM   RH   t   l(   Ro   i   (   Rp   i   (
   R(   t   unamet   warningst   warnt	   Exceptiont   check_headerR8   t   C99_COMPLEX_TYPESt
   check_typet   type2def(   RA   RB   t   pubRI   t   tRu   (    (   RA   RB   Rt   s/   lib/python2.7/site-packages/numpy/core/setup.pyR    ¸   s*    $

c           s
  g  ‰  g  ‰ g  } ‡  ‡ f d †  } d d d d g } xˆ | D]€ } t  d | ƒ } |  j | d d d	 g ƒ} | r° |  j | d d d	 g ƒr½ ˆ j d
 t  d | ƒ ƒ q½ q= | j | ƒ q= Wx< | D]4 } |  j | d d d	 g ƒ} | rÈ | | ƒ qÈ qÈ Wˆ  ˆ f S(   Nc           s6   ˆ  j  t d |  ƒ ƒ ˆ j  d t d |  ƒ ƒ d  S(   Ns   decl_%ss   NPY_%s(   R8   RF   (   RH   (   Rt   R   (    s/   lib/python2.7/site-packages/numpy/core/setup.pyt	   _add_declç   s    t   isnant   isinft   signbitt   isfinites   decl_%sRL   s   Python.hs   math.hs   NPY_%s(   RF   RW   t   check_macro_trueR8   (   RA   t   macrosR   t   _macrosRH   t	   py_symbolt   already_declaredRI   (    (   Rt   R   s/   lib/python2.7/site-packages/numpy/core/setup.pyR   á   s&    !c      
   C  s  g  } g  } i
 d g d 6d g d 6d d g d 6d g d 6d g d 6d	 d
 d g d 6d d g d 6d g d 6d g d 6d d g d 6} |  j  d ƒ } | sÐ d } d t j k r¸ d } n  t d j | ƒ ƒ ‚ n  |  j  d ƒ } | r| j d( ƒ | j d) ƒ n  |  j  d ƒ } | r4| j d* ƒ | j d+ ƒ n  x¹ d, D]± }	 |  j d t |	 ƒ d d g ƒ} | r“| j d t |	 ƒ d t |	 ƒ f ƒ q;|  j |	 d | |	 ƒ} | d  k rÜ| j d t |	 ƒ d! | f ƒ q;t d" |	 ƒ ‚ q;WxAd- D]9}	 |  j d t |	 ƒ d d g ƒ}
 |  j |	 d | |	 ƒ} | d  k r | j d t |	 ƒ d! | f ƒ |
 r°|	 d k r°| j d t |	 ƒ d! | f ƒ q°n t d" |	 ƒ ‚ d# |	 |	 f } |  j | d g  | |	 D] } d | ^ q×ƒ} | d  k r | j d$ t |	 ƒ d! | f ƒ q÷t d" | ƒ ‚ q÷Wx d. D]• }	 |  j |	 d d g d% t	 ƒ  g d | |	 ƒ} | d  k rÀ| j d t |	 ƒ d! | f ƒ | j d t |	 ƒ d! | f ƒ q;t d" |	 ƒ ‚ q;W|  j d d d g ƒr×|  j d d d g d% t	 ƒ  g d | d ƒ} | d  k rk| j d t d ƒ d! | f ƒ | j d t d ƒ d! | f ƒ n t d" d ƒ ‚ |  j d d | d ƒ} | d  k rÄ| j d t d ƒ d! | f ƒ q×t d" d ƒ ‚ n  |  j d& d d g ƒsþt
 d' ƒ ‚ n  | | f S(/   Ni   t   shorti   t   inti   t   longt   floatt   doublei   i   s   long doublet   Py_intptr_tt   PY_LONG_LONGs	   long longt   off_ts   Python.ht   pythont   __pypy__t   pypysI   Cannot compile 'Python.h'. Perhaps you need to install {0}-dev|{0}-devel.s   endian.ht   HAVE_ENDIAN_Hi   t   NPY_HAVE_ENDIAN_Hs   sys/endian.ht   HAVE_SYS_ENDIAN_Ht   NPY_HAVE_SYS_ENDIAN_Hs	   SIZEOF_%sRL   s   NPY_SIZEOF_%st   expectedi    s   %ds   Checking sizeof (%s) failed !s   struct {%s __x; %s __y;}s   NPY_SIZEOF_COMPLEX_%st   library_dirst   CHAR_BITsC   Config wo CHAR_BIT is not supported, please contact the maintainers(   R–   i   (   R—   i   (   R˜   i   (   R™   i   (   R‹   RŒ   R   (   RŽ   R   s   long double(   R   R’   (   R{   R&   t   builtin_module_namesRT   t   formatR8   RW   t   sym2deft   check_type_sizeR+   t   RuntimeError(   t
   config_cmdt   extt	   build_dirt   private_definest   public_definesRš   t   resultR“   t   rest   typeRŠ   t   complex_deft   x(    (    s/   lib/python2.7/site-packages/numpy/core/setup.pyR     sŒ    $$!	"*$!'$$!$!$$c      	   C  s›   g  } g  d g d g g } t  j j d ƒ } | rO | j d | j d ƒ ƒ n  xE | D]1 } |  j d d | d t d	 t ƒrV | } PqV qV Wt d
 ƒ ‚ | S(   NRi   t   cpmlt   MATHLIBi    t   ,t   expR;   R<   R=   sK   math library missing; rerun setup.py after setting the MATHLIB env variable(   R(   R.   t   gett   insertt   splitR>   R?   t   EnvironmentError(   R¢   RB   t   mathlibs_choicest   mathlibR$   (    (    s/   lib/python2.7/site-packages/numpy/core/setup.pyt   check_mathlibk  s    !c         C  s$   d } |  j  | d ƒ r | Sd Sd S(   sS   Return the define value to use for NPY_VISIBILITY_HIDDEN (may be empty
    string).s%   __attribute__((visibility("hidden")))t   hidemeRM   N(   Ra   (   RA   t   hide(    (    s/   lib/python2.7/site-packages/numpy/core/setup.pyt   visibility_define|  s    RM   c      1     st  d d l  m } m } d d l m } | d |  | ƒ ‰ ˆ j } t | d ƒ ‰ t ˆ ƒ ro t j	 d t
 ƒ n  t t ˆ ƒ t ˆ d ƒ ‰ | ˆ j d ƒ } t d	 j | j d
 ƒ ƒ ˆ dë ƒ ‰ d ‰ t ƒ  ‰  ‡  ‡ ‡ f d †  } ‡  ‡ ‡ f d †  } ‡ ‡ ‡ f d †  }	 |	 d ƒ }
 |	 d ƒ } ˆ j t | d d ƒ ƒ ˆ j t | d ƒ ƒ ˆ j t | ƒ ƒ ˆ j d ƒ ˆ j t d d ƒ ƒ ˆ j t d d ƒ ƒ ˆ j t d d ƒ ƒ ˆ j t d d ƒ ƒ ˆ j t d d ƒ ƒ ˆ j dì g ƒ ˆ j dí g ƒ t j d  d  k r*ˆ j dî g ƒ n0 ˆ j dï g ƒ ˆ j dð g ƒ ˆ j dñ g ƒ ˆ j j ˆ j d& ƒ ƒ t d d d' ƒ t d& d( d) ƒ t ˆ d* ƒ g } ˆ j d+ d, t d d- ƒ | | |
 g ƒt d. t j j f dò g ƒ ‰ ‡ ‡ f d1 †  } t d d d2 ƒ t d d d3 ƒ t d d d4 ƒ t d d d5 ƒ t d d d6 ƒ g } t j ƒ  j d7 ƒ ost j  ƒ  j d8 ƒ } ˆ j! d d, | | g d9 d: d; i g  d< 6| r®d= g n g  d> 6ƒˆ j" d? d@ ˆ ƒ ˆ j" dA d@ ˆ ƒ t d d dB ƒ t d d dC ƒ t d d dD ƒ t d d dE ƒ t d d dF ƒ t d d dG ƒ t d d dH ƒ t d d dI ƒ g } ˆ j# d d, | d< g  ƒt d d dJ ƒ t d d dK ƒ g } ˆ j# dL d, | d< g  ƒˆ j dM d, t d d dN ƒ t d d dO ƒ g dP t d d dQ ƒ t d d dR ƒ g dS d g ƒt d d dT ƒ t d d dU ƒ t d d dV ƒ t d d dW ƒ t d d dQ ƒ t d d dX ƒ t d d dY ƒ t d d dZ ƒ t d d dR ƒ t d d d[ ƒ t d d d\ ƒ t d d d] ƒ t d d d^ ƒ t d d d_ ƒ t d d d` ƒ t d d da ƒ g } t d d db ƒ t d d dO ƒ t d d dc ƒ t d d d] ƒ t d d dd ƒ t d d de ƒ t d d df ƒ g } | dg dh ƒ } | rödó | j$ dj g  ƒ k rö| } | j t d d dk ƒ t d d dl ƒ g ƒ t% | ƒ rü| j t& ƒ  ƒ qün i  } t d d dm ƒ t d d dn ƒ t d d do ƒ t d d dp ƒ t d d dq ƒ t d d dr ƒ t d d ds ƒ t d d dt ƒ t d d du ƒ t d d dv ƒ t d d dw ƒ t d d dx ƒ t d d dy ƒ t d d dz ƒ t d d d{ ƒ t d d d| ƒ t d d d} ƒ t d d d~ ƒ t d d d ƒ t d d d€ ƒ t d d d ƒ t d d d‚ ƒ t d d dƒ ƒ t d d d„ ƒ t d d d… ƒ t d d d† ƒ t d d d‡ ƒ t d d dˆ ƒ t d& d( dm ƒ t d& d( d‰ ƒ t d& d( dŠ ƒ t d& d( d‹ ƒ t d& d( dŒ ƒ t d& d( d ƒ t d& d( dŽ ƒ t d& d( d ƒ t d& d( d ƒ t d& d( d‘ ƒ t d& d( d’ ƒ t d& d( d“ ƒ t d& d( d” ƒ t d& d( d• ƒ t d& d( d– ƒ t d& d( d— ƒ g, | } t d d d˜ ƒ t d d d™ ƒ t d d dš ƒ t d d d› ƒ t d d dœ ƒ t d d d ƒ t d d dž ƒ t d d dŸ ƒ t d d d  ƒ t d d d¡ ƒ t d d d¢ ƒ t d d d£ ƒ t d d d¤ ƒ t d d d¥ ƒ t d d d¦ ƒ t d d d§ ƒ t d d d¨ ƒ t d d d© ƒ t d d dª ƒ t d d d« ƒ t d d d¬ ƒ t d d d­ ƒ t d d d® ƒ t d d d¯ ƒ t d d d° ƒ t d d d± ƒ t d d d² ƒ t d d d³ ƒ t d d d´ ƒ t d d dµ ƒ t d d d¶ ƒ t d d d· ƒ t d d d¸ ƒ t d d d¹ ƒ t d d dº ƒ t d d d» ƒ t d d d¼ ƒ t d d d½ ƒ t d d d¾ ƒ t d d d¿ ƒ t d d dÀ ƒ t d d dÁ ƒ t d d dÂ ƒ t d d dÃ ƒ t d d dÄ ƒ t d d dÅ ƒ g. } t d d dÆ ƒ t d d dÇ ƒ g } ‡ ‡ ‡ f dÈ †  } t d d dÉ ƒ t d d dÊ ƒ g } t d d dË ƒ t d d dÌ ƒ t d d dÍ ƒ t d d dÎ ƒ t d d dÏ ƒ t d d dÐ ƒ t d d dÑ ƒ t d d dÒ ƒ t d d dÓ ƒ t d d dÔ ƒ t d d dÕ ƒ t d d dÖ ƒ g } ˆ t d& d( d× ƒ t d& d( d ƒ t d d dr ƒ t d d d€ ƒ t d d d] ƒ t d d dÎ ƒ t d d dØ ƒ t ˆ dÙ ƒ g	 } g  } ˆ j# dÚ d, | d< g  d> | dP | | dÛ t' ˆ dj t' ˆ j( ƒ  dj g  ƒ ƒ ƒˆ j dÜ d, | | | | | | |
 t ˆ dÝ ƒ t dÞ ƒ | | g | dß g  dP | | | | dS dÚ d d dL g dà | ƒˆ j dá d, t d d dâ ƒ g ƒˆ j dã d, t d d dä ƒ g dS dL g dà | ƒˆ j då d, t d d dæ ƒ g ƒˆ j dç d, t d d dè ƒ g ƒˆ j) dé ƒ ˆ j) dê ƒ ˆ j* ƒ  ˆ S(ô   Niÿÿÿÿ(   t   Configurationt   dot_join(   R   t   coret   code_generatorst   errors   generate_umath.pyt   generate_umathRO   RN   s   .pyt   Ui   s   include/numpyc           sª  t  | ˆ d ƒ } t j j | ƒ } t j j | ƒ sF t j | ƒ n  t t | ƒ rÖˆ j ƒ  } t	 j
 d | ƒ ˆ  j | |  | ƒ \ } } t | ƒ } | j d d j  | ƒ f ƒ t | | | ƒ | j ˆ  j | ƒ d ƒ | j ˆ  j | | ƒ d ƒ t ƒ  r| j d ƒ n  t j d k s2t j d k r?t | ƒ n  | j d	 | j ƒ  f ƒ | j ƒ  } t rz| j d ƒ n  t r| j d ƒ n  t | ƒ }	 | j d |	 d f ƒ t j d d k rÖ| j d ƒ n  t | d ƒ }
 xP | D]H } t | t ƒ r|
 j  d | ƒ qì|
 j  d | d | d f ƒ qìW|
 j  d ƒ | d k ra|
 j  d ƒ n |
 j  d | ƒ |
 j  d ƒ |
 j  d ƒ |
 j! ƒ  t" d | ƒ t | ƒ }
 t" |
 j# ƒ  ƒ |
 j! ƒ  t" d ƒ nz g  } t | ƒ }
 x[ |
 D]S } d } | j$ | ƒ rï| t% | ƒ j& ƒ  } | rB| j | j' d ƒ ƒ qBqïqïW|
 j! ƒ  t( |  d ƒ rr|  j) j | ƒ n  t j j | ƒ } | ˆ j* k r¦ˆ j* j | ƒ n  | S(    Ns   config.hs   Generating %sR­   R®   i    t   __NPY_PRIVATE_NO_SIGNALR#   t   ntt   NPY_RESTRICTR   i   R   s   HAVE_LDOUBLE_%si   t   NPY_PY3Kt   ws   #define %s
s   #define %s %s
s   #ifndef __cplusplus
t   inlines   /* #undef inline */
s   #define inline %s
s   #endif
ss   
#ifndef _NPY_NPY_CONFIG_H_
#error config.h should never be included directly, include npy_config.h instead
#endif
s   File:t   EOFs   #define MATHLIBR;   (   R   i   (   R   i   (   RÄ   i   (+   R   R(   R)   t   dirnamet   existst   makedirsR   t   __file__t   get_config_cmdR   t   infoR   R¶   R8   Rl   RE   R   R    R,   R&   R'   R7   R:   t   check_restrictt   check_inlineR   R   t    check_long_double_representationt   version_infot   opent
   isinstanceRU   t   writet   closeR6   t   readt
   startswithR_   t   stripR²   t   hasattrR;   t   numpy_include_dirs(   R£   R¤   t   targett   dR¢   RJ   t   ignoredRB   RÆ   t   rept   target_ft   linet   st   valuet   incl_dir(   t   cocacheRA   t
   header_dir(    s/   lib/python2.7/site-packages/numpy/core/setup.pyt   generate_config_h  sx    	#

 
c   
        s²  ˆ j  t | d d ƒ ƒ ˆ j  t | d d ƒ ƒ t | ˆ d ƒ } t j j | ƒ } t j j | ƒ sx t j | ƒ n  t t | ƒ r›ˆ j	 ƒ  } t
 j d | ƒ ˆ  j | |  | ƒ \ } } t ƒ  r× | j d ƒ n  t ƒ  rð | j d ƒ n | j d ƒ t | ƒ } | j ˆ  j | ƒ d ƒ | j ˆ  j | | ƒ d ƒ t rV| j d ƒ n  t rl| j d ƒ n  | j d d d g ƒr”| j d ƒ n  t | ƒ } | j d | f ƒ | j d d t f ƒ | j d d t f ƒ t | d ƒ }	 xP | D]H } t | t ƒ r |	 j d | ƒ q÷|	 j d | d	 | d f ƒ q÷W|	 j d ƒ |	 j ƒ  t d | ƒ t | ƒ }	 t |	 j  ƒ  ƒ |	 j ƒ  t d ƒ n  ˆ j! ˆ | f ƒ | S(    s@   Depends on config.h: generate_config_h has to be called before !t   srct   commont   npymaths   _numpyconfig.hs   Generating %st   NPY_NO_SIGNALi   t
   NPY_NO_SMPi    R   R   t   PRIdPTRRL   s
   inttypes.ht   NPY_USE_C99_FORMATSt   NPY_VISIBILITY_HIDDENt   NPY_ABI_VERSIONs   0x%.8Xt   NPY_API_VERSIONRÅ   s   #define %s
s   #define %s %s
sD   
#ifndef __STDC_FORMAT_MACROS
#define __STDC_FORMAT_MACROS 1
#endif
s   File: %sRÇ   (   Rê   i   (   Rë   i   (   Rë   i    (   R   i   (   R   i   (   Rí   i   ("   t   add_include_dirsR   R(   R)   RÈ   RÉ   RÊ   R   RË   RÌ   R   RÍ   R   R,   R8   R/   R¶   RE   R   R    R   R   RW   R¹   t   C_ABI_VERSIONt   C_API_VERSIONRÒ   RÓ   RU   RÔ   RÕ   R6   RÖ   t   add_data_files(
   R£   R¤   RÛ   RÜ   R¢   RÝ   RJ   RB   t   hidden_visibilityRß   (   Rä   RA   Rå   (    s/   lib/python2.7/site-packages/numpy/core/setup.pyt   generate_numpyconfig_h  sV    		#

c           s   ‡ ‡ ‡ ‡  f d †  } | S(   Nc           sž   t  ˆ  ˆ d ƒ } t j j d ˆ  ƒ zG t ˆ ƒ } t j d | ƒ | j t j j  | ˆ ƒ ƒ \ } } } Wd  t j d =Xˆ j	 ˆ | f ˆ | f ƒ | f S(   Ns   .pyi    s   executing %s(
   R   R&   R)   R±   t
   __import__R   RÍ   t   generate_apiR(   Rô   (   R£   R¤   t   scriptRi   t   h_filet   c_filet   doc_file(   t   codegen_dirRA   Rå   t   module_name(    s/   lib/python2.7/site-packages/numpy/core/setup.pyRø   O  s    +(    (   Rþ   Rø   (   Rý   RA   Rå   (   Rþ   s/   lib/python2.7/site-packages/numpy/core/setup.pyt   generate_api_funcN  s    t   generate_numpy_apit   generate_ufunc_apiRç   Rè   s   include/numpy/*.hRé   t
   multiarrayt   umatht   npysortt   mkl_defst   NPY_INTERNAL_BUILDR   t   HAVE_NPY_CONFIG_Hi   t   aixt   _LARGE_FILESt   _FILE_OFFSET_BITSt   64t   _LARGEFILE_SOURCEt   _LARGEFILE64_SOURCEt   includes
   _signbit.ct   numpys	   *object.hs	   genapi.pyt   _dummyt   sourcess   dummymodule.cR]   t   pkgnames
   numpy.corec            s    ˆ  j  ƒ  } | j d ƒ } | s0 t d ƒ ‚ n  t | ƒ } d j g  | D] } d | ^ qI ƒ } d j g  | D] } d | ^ qo ƒ } | ˆ d <| ˆ d <d  S(   Ns   int main(void) { return 0;}s0   Broken toolchain: cannot link a simple C programt    s   -l%ss   %s.libt   posix_mathlibt   msvc_mathlib(   RÌ   t   try_linkR¡   R¶   R   (   Rh   R¢   RI   t   mlibsRv   t
   posix_mlibt	   msvc_mlib(   RA   t
   subst_dict(    s/   lib/python2.7/site-packages/numpy/core/setup.pyt   get_mathlib_info’  s    &&
s   npy_math_internal.h.srcs
   npy_math.cs   ieee754.c.srcs   npy_math_complex.c.srcs   halffloat.ct   Windowst   MSt   install_dirt   libt
   build_infot   include_dirss   /GL-t   extra_compiler_argss   npymath.ini.ins   lib/npy-pkg-configs   mlib.ini.ins   npy_sort.h.srcs   quicksort.c.srcs   mergesort.c.srcs   heapsort.c.srcs   npy_partition.h.srcs   selection.c.srcs   npy_binsearch.h.srcs   binsearch.c.srcs	   mkl_cpy.hs	   mkl_cpy.ct   mkl_cpt   _multiarray_testss   _multiarray_tests.c.srcs   mem_overlap.ct   dependss   mem_overlap.hs   npy_extint128.hR;   s   array_assign.hs   binop_override.hs   cblasfuncs.hs   lowlevel_strided_loops.hs   npy_cblas.hs   npy_config.hs   npy_ctypes.hs   npy_import.hs   npy_longdouble.hs   templ_common.h.srcs   ucsnarrow.hs   ufunc_override.hs   umathmodule.hs	   numpyos.hs   array_assign.cs   npy_longdouble.cs   ucsnarrow.cs   ufunc_override.cs	   numpyos.ct   blas_opti    t
   HAVE_CBLASt   define_macross   cblasfuncs.cs   python_xerbla.cs   arrayobject.hs   arraytypes.hs   arrayfunction_override.hs   buffer.hs   calculation.hs   common.hs   convert_datatype.hs	   convert.hs   conversion_utils.hs   ctors.hs   descriptor.hs	   dragon4.hs   getset.hs   hashdescr.hs   iterators.hs	   mapping.hs	   methods.hs   multiarraymodule.hs   nditer_impl.hs   number.hs
   refcount.hs   scalartypes.hs
   sequence.hs   shape.hs
   strfuncs.hs
   typeinfo.hs   usertypes.hs   vdot.hs   _neighborhood_iterator_imp.hs   npy_endian.hs   arrayscalars.hs
   noprefix.hs   npy_interrupt.hs   npy_3kcompat.hs   halffloat.hs   npy_common.hs   npy_os.hs   utils.hs   ndarrayobject.hs	   npy_cpu.hs   numpyconfig.hs   ndarraytypes.hs   npy_1_7_deprecated_api.hs   alloc.cs   arrayobject.cs   arraytypes.c.srcs   array_assign_scalar.cs   array_assign_array.cs   arrayfunction_override.cs   buffer.cs   calculation.cs   compiled_base.cs   common.cs	   convert.cs   convert_datatype.cs   conversion_utils.cs   ctors.cs
   datetime.cs   datetime_strings.cs   datetime_busday.cs   datetime_busdaycal.cs   descriptor.cs	   dragon4.cs   dtype_transfer.cs   einsum.c.srcs   flagsobject.cs   getset.cs   hashdescr.cs   item_selection.cs   iterators.cs   lowlevel_strided_loops.c.srcs	   mapping.cs	   methods.cs   multiarraymodule.cs   nditer_templ.c.srcs   nditer_api.cs   nditer_constr.cs   nditer_pywrap.cs   number.cs
   refcount.cs
   sequence.cs   shape.cs   scalarapi.cs   scalartypes.c.srcs
   strfuncs.cs   temp_elide.cs
   typeinfo.cs   usertypes.cs   vdot.cs   aligned_alloc.hs   aligned_alloc.cc           sš   t  | ˆ d ƒ } t j j | ƒ } t j j | ƒ sF t j | ƒ n  ˆ } t | | ƒ r– t | d ƒ } | j ˆ  j	 ˆ  j
 ˆ  j ƒ ƒ | j ƒ  n  g  S(   Ns   __umath_generated.cRÅ   (   R   R(   R)   RÈ   RÉ   RÊ   R   RÒ   RÔ   t	   make_codet   defdictRË   RÕ   (   R£   R¤   RÛ   t   dirRù   RH   (   R¿   t   generate_umath_pyRå   (    s/   lib/python2.7/site-packages/numpy/core/setup.pyt   generate_umath_c  s    s   loops.c.srcs   loops.h.srcs   umathmodule.cs   reduction.cs   funcs.inc.srcs   simd.inc.srcs   matmul.h.srcs   matmul.c.srcs   ufunc_object.cs   extobj.cs   cpuid.cs   scalarmath.c.srcs   ufunc_type_resolution.cs
   override.cs
   npy_math.hs
   override.hs   generate_ufunc_api.pyt   loopsR‡   t   _multiarray_umaths   generate_numpy_api.pys   *.pyt   extra_compile_argst
   extra_infot   _umath_testss   _umath_tests.c.srct   _rational_testss   _rational_tests.c.srct   _struct_ufunc_testss   _struct_ufunc_tests.c.srct   _operand_flag_testss   _operand_flag_tests.c.srct   testss
   tests/data(   s   .pyRÀ   i   (   R  R   (   R  R   (   R	  N(   R
  R  (   R  R   (   R  R   (   R  s
   numpy.core(   R'  N(+   R5   Rº   R»   t   numpy.distutils.system_infoR   t
   local_pathR   t   is_releasedRx   t   simplefiltert   MismatchCAPIWarningt   check_api_versionRó   R7   R	   R²   R   Rñ   Rô   t   add_define_macrosR&   R'   R   RÚ   RE   t   pathst   add_extensionRC   R(   R)   R]   R×   t   python_compilert   add_installed_libraryt   add_npy_pkg_configt   add_libraryR°   R   R   t   getattrt   get_distributiont   add_data_dirt   make_svn_version_py(   t   parent_packaget   top_pathRº   R»   R   t	   local_dirt   nRæ   Rö   Rÿ   R   R  t   depsR  t   npymath_sourcest   is_msvct   npysort_sourcest   mkl_cp_sourcest   common_depst
   common_srct	   blas_infoR1  t   multiarray_depst   multiarray_srct   aligned_alloc_sourcesR-  t	   loops_srct	   umath_srct
   umath_depst   eca(    (   Rä   Rý   RA   R¿   R,  Rå   R  s/   lib/python2.7/site-packages/numpy/core/setup.pyt   configuration…  s
   		hI

	
%
>	
t   __main__(   t   setupR[  (.   t
   __future__R    R   R(   R&   R   R   Rx   R'   t   os.pathR   t   numpy.distutilsR   R7  R   t   distutils.dep_utilR   t   distutils.sysconfigR   t#   numpy._build_utils.apple_accelerateR   R   t   numpy.compatR	   t   setup_commonR.   R°   R   R   t   objectR   R+   R,   R/   R:   Rl   R    R   R   R¶   R¹   R   R[  R!   t   numpy.distutils.coreR]  (    (    (    s/   lib/python2.7/site-packages/numpy/core/setup.pyt   <module>   sD   
					K	)	%	e			ÿ ÿ p