ó
ØÆ÷Xc           @  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 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 d e f d „  ƒ  YZ e Z 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   newer(   t   get_config_var(   t   uses_accelerate_frameworkt   get_sgemv_fix(   t   npy_load_module(   t   *t   NPY_RELAXED_STRIDES_CHECKINGt   1t   0t   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/   /tmp/pip-build-X4mzal/numpy/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/   /tmp/pip-build-X4mzal/numpy/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/   /tmp/pip-build-X4mzal/numpy/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_complexR   R   R   R   R   (   R   R   R   R   (    (    s/   /tmp/pip-build-X4mzal/numpy/numpy/core/setup.pyR   6   s
    (   t   __name__t
   __module__R   R   R   R   (    (    (    s/   /tmp/pip-build-X4mzal/numpy/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/   /tmp/pip-build-X4mzal/numpy/numpy/core/setup.pyt   pythonlib_dir@   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/   /tmp/pip-build-X4mzal/numpy/numpy/core/setup.pyt   is_npy_no_signalG   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/   /tmp/pip-build-X4mzal/numpy/numpy/core/setup.pyt   is_npy_no_smpL   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_utilR.   t   printR&   t   nameR$   R%   t   append(   t   deflistR.   R   (    (    s/   /tmp/pip-build-X4mzal/numpy/numpy/core/setup.pyt   win32_checksW   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 ƒ xZ t D]R } ˆ j	 d d	 t
 d
 t
 d | g ƒr´ ˆ j t | ƒ j d d ƒ d f ƒ q´ q´ Wxt D]} d  } t | ƒ d k rX| 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 | ƒ rh| j d d ƒ j d d ƒ }	 ˆ j t |	 ƒ d f ƒ qhqh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/   /tmp/pip-build-X4mzal/numpy/numpy/core/setup.pyR<   h   s    c           s   t  g  |  D] } | t f ^ q
 ƒ } ˆ  j |  d ˆ d | d | ƒ} | r{ ˆ j g  |  D] } t | ƒ d f ^ qY ƒ n  | S(   NR9   R:   R;   i   (   t   dictR=   t   check_funcs_oncet   extendt	   fname2def(   t
   funcs_namet   fR:   t   st(   R?   R@   t   moredefs(    s/   /tmp/pip-build-X4mzal/numpy/numpy/core/setup.pyRB   l   s    %/c           sQ   ˆ |  ƒ sI x6 |  D]. } ˆ  | ƒ r ˆ j  t | ƒ d f ƒ q q Wd Sd Sd  S(   Ni   i    (   R6   RD   (   RE   RF   (   R<   RB   RH   (    s/   /tmp/pip-build-X4mzal/numpy/numpy/core/setup.pyt   check_funcst   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_declRD   t   OPTIONAL_STDFUNCSt   removet   OPTIONAL_HEADERSR<   t   FalseR6   t   replacet   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(   R?   RH   R@   RI   RF   t   ht   tupRJ   t   argst   mt   dect   fn(    (   R<   RB   R?   R@   RH   s/   /tmp/pip-build-X4mzal/numpy/numpy/core/setup.pyt   check_math_capabilitiesg   sB    	
$,):7	  
c           s  g  ‰ g  } y7 t  j ƒ  d d k rB t j d d d ƒˆ | f SWn 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_COMPLEXRJ   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:   R9   i   (   t   C99_COMPLEX_FUNCSRA   R=   RB   R<   R6   RD   RC   (   t   precRF   t   flistR:   (   R?   R@   t   priv(    s/   /tmp/pip-build-X4mzal/numpy/numpy/core/setup.pyt
   check_precÈ   s    %		#RK   RF   t   l(   Rl   i   (   Rm   i   (	   R&   t   unamet   warningst   warnt   check_headerR6   t   C99_COMPLEX_TYPESt
   check_typet   type2def(   R?   R@   t   pubRG   t   tRr   (    (   R?   R@   Rq   s/   /tmp/pip-build-X4mzal/numpy/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(   R6   RD   (   RF   (   Rq   R{   (    s/   /tmp/pip-build-X4mzal/numpy/numpy/core/setup.pyt	   _add_declà   s    t   isnant   isinft   signbitt   isfinites   decl_%sRJ   s   Python.hs   math.hs   NPY_%s(   RD   RU   t   check_macro_trueR6   (   R?   t   macrosR}   t   _macrosRF   t	   py_symbolt   already_declaredRG   (    (   Rq   R{   s/   /tmp/pip-build-X4mzal/numpy/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_%sRJ   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   (   s   shorts   ints   long(   s   floats   doubles   long double(   RŒ   RŽ   (   Rw   R$   t   builtin_module_namesRR   t   formatR6   RU   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/   /tmp/pip-build-X4mzal/numpy/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(   NRf   t   cpmlt   MATHLIBi    t   ,t   expR9   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ž   R@   t   mathlibs_choicest   mathlibR"   (    (    s/   /tmp/pip-build-X4mzal/numpy/numpy/core/setup.pyt   check_mathlibd  s    !c         C  s   |  j  ƒ  r d Sd Sd S(   sS   Return the define value to use for NPY_VISIBILITY_HIDDEN (may be empty
    string).s%   __attribute__((visibility("hidden")))RK   N(   t   check_compiler_gcc4(   R?   (    (    s/   /tmp/pip-build-X4mzal/numpy/numpy/core/setup.pyt   visibility_defineu  s    RK   c      7     sD  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 d f ƒ ‰ 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 d d f g ƒ t j d  d k rˆ j d t f g ƒ nB ˆ j d  d! f g ƒ ˆ j d" d f g ƒ ˆ j d# d f 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- d. f g ƒ ‰ ‡ ‡ f d/ †  } t d d d0 ƒ t d d d1 ƒ t d d d2 ƒ t d d d3 ƒ g } ˆ j d d* | | g d4 d5 ƒˆ j  d6 d7 ˆ ƒ ˆ j  d8 d7 ˆ ƒ t d d d9 ƒ 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 } ˆ j! d d* | d@ g  ƒ‡ ‡ f dA †  } 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 ƒ t d d dJ ƒ t d d dK ƒ t d d dL ƒ 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 da ƒ t d d db ƒ t d d dc ƒ t d$ d& dB ƒ t d$ d& dd ƒ t d$ d& de ƒ t d$ d& df ƒ t d$ d& dg ƒ t d$ d& dh ƒ t d$ d& di ƒ t d$ d& dj ƒ t d$ d& dk ƒ t d$ d& dl ƒ 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 ƒ g4 | | } 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 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/ } | d£ d¤ ƒ } | o5
d¥ t f | j" d¦ g  ƒ k r‹
| } | j t d d d§ ƒ t d d d¨ ƒ g ƒ t# | ƒ rˆ
| j t$ ƒ  ƒ n  n i  } ˆ j d d* | | | |	 t ˆ d© ƒ t dª ƒ g d« | | d¬ d d g d­ | ƒ‡ ‡ f d® †  } ‡ ‡ ‡ f 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& dj ƒ t d$ d& dk ƒ t d d dH ƒ t d d d` ƒ t d d d³ ƒ t ˆ d¹ ƒ t d d dº ƒ g | } ˆ j d d* | | | | |
 g d« | | d¬ d g ƒˆ j d» d* t d d d¼ ƒ g ƒˆ j d½ d* t d d d¾ ƒ g ƒˆ j d¿ d* t d d dÀ ƒ g ƒˆ j dÁ d* t d d dÂ ƒ t d d d¢ ƒ g d« t d d db ƒ t d d dc ƒ g ƒˆ j dÃ d* t d d dÄ ƒ g ƒˆ j% dÅ ƒ ˆ j% dÆ ƒ ˆ j& ƒ  ˆ S(Ç   Niÿÿÿÿ(   t   Configurationt   dot_join(   t   get_infot   coret   code_generatorst   errors   generate_umath.pyt   generate_umathRM   RL   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 ƒ  } | j d
 d d g ƒs…t }	 n t }	 t r¡| j d* ƒ n  t j d k rõt | ƒ }
 |
 d+ k râ| j d |
 d f ƒ qõt d |
 ƒ ‚ n  t j d d k r| j d, ƒ n  t  | d ƒ } xP | D]H } t! | t" ƒ rW| j# d | ƒ q.| j# d | d | d f ƒ q.W| j# d  ƒ | d! k r£| 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' | ƒ r1| t( | ƒ j) ƒ  } | r„| j | j* d ƒ ƒ q„q1q1W| j$ ƒ  t+ |  d) ƒ r´|  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_RESTRICTt   Py_UNICODE_WIDERJ   s   Python.hR
   i   t   darwint   INTEL_EXTENDED_12_BYTES_LEt   INTEL_EXTENDED_16_BYTES_LEt   MOTOROLA_EXTENDED_12_BYTES_BEt   IEEE_QUAD_LEt   IEEE_QUAD_BEt   IEEE_DOUBLE_LEt   IEEE_DOUBLE_BEt   DOUBLE_DOUBLE_BEt   DOUBLE_DOUBLE_LEs   HAVE_LDOUBLE_%ss#   Unrecognized long double format: %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 MATHLIBR9   (   s   NPY_RELAXED_STRIDES_CHECKINGi   (	   RÂ   RÃ   RÄ   RÅ   RÆ   RÇ   RÈ   RÉ   RÊ   (   RË   i   (.   R   R&   R'   t   dirnamet   existst   makedirsR   t   __file__t   get_config_cmdR   t   infoR   R²   R6   Ri   RC   R   R   R*   R$   R%   R5   R8   t   check_restrictt   check_inlineRU   R=   RY   R
   t    check_long_double_representationt
   ValueErrort   version_infot   opent
   isinstanceRS   t   writet   closeR4   t   readt
   startswithR\   t   stripR®   t   hasattrR9   t   numpy_include_dirs(   RŸ   R    t   targett   dRž   RH   t   ignoredR@   RÍ   t   PYTHON_HAS_UNICODE_WIDEt   rept   target_ft   linet   st   valuet   incl_dir(   t   cocacheR?   t
   header_dir(    s/   /tmp/pip-build-X4mzal/numpy/numpy/core/setup.pyt   generate_config_h•  sŠ    		    	#

 
c   
        sƒ  ˆ j  t | d d ƒ ƒ t | ˆ d ƒ } t j j | ƒ } t j j | ƒ s_ t j | ƒ n  t t | ƒ rlˆ 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 r=| j d ƒ n  | j d
 d d g ƒre| 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   privates   _numpyconfig.hs   Generating %st   NPY_NO_SIGNALi   t
   NPY_NO_SMPi    R
   t   PRIdPTRRJ   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    (   s   NPY_RELAXED_STRIDES_CHECKINGi   (   Rõ   i   (!   t   add_include_dirsR   R&   R'   RÏ   RÐ   RÑ   R   RÒ   RÓ   R   RÔ   R   R*   R6   R-   R²   RC   R   R   R
   RU   R´   t   C_ABI_VERSIONt   C_API_VERSIONRÚ   RÛ   RS   RÜ   RÝ   R4   RÞ   t   add_data_files(
   RŸ   R    Rã   Rä   Rž   Rå   RH   R@   t   hidden_visibilityRè   (   Rí   R?   Rî   (    s/   /tmp/pip-build-X4mzal/numpy/numpy/core/setup.pyt   generate_numpyconfig_h  sP    		#

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   scriptRf   t   h_filet   c_filet   doc_file(   t   codegen_dirR?   Rî   t   module_name(    s/   /tmp/pip-build-X4mzal/numpy/numpy/core/setup.pyR   M  s    +(    (   R  R   (   R  R?   Rî   (   R  s/   /tmp/pip-build-X4mzal/numpy/numpy/core/setup.pyt   generate_api_funcL  s    t   generate_numpy_apit   generate_ufunc_apiRð   Rñ   s   include/numpy/*.ht   npymatht
   multiarrayt   umatht   npysortt   HAVE_NPY_CONFIG_HR   i   t   aixt   _LARGE_FILESt   _FILE_OFFSET_BITSt   64t   _LARGEFILE_SOURCEt   _LARGEFILE64_SOURCEt   includes
   _signbit.ct   numpys	   *object.hs	   genapi.pyt   _dummyt   sourcess   dummymodule.ct   sept   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   (   Re   Rž   RG   t   mlibsRs   t
   posix_mlibt	   msvc_mlib(   R?   t
   subst_dict(    s/   /tmp/pip-build-X4mzal/numpy/numpy/core/setup.pyt   get_mathlib_infoŽ  s    &&
s   npy_math.c.srcs   ieee754.c.srcs   npy_math_complex.c.srcs   halffloat.ct   install_dirt   libs   npymath.ini.ins   lib/npy-pkg-configs   mlib.ini.ins   quicksort.c.srcs   mergesort.c.srcs   heapsort.c.srcs   npy_partition.h.srcs   selection.c.srcs   npy_binsearch.h.srcs   binsearch.c.srct   include_dirsc      
     sÂ   d d l  m } t d d ƒ } t ˆ | d ƒ t ˆ | d ƒ t ˆ | d ƒ t ˆ | d ƒ t ˆ | d	 ƒ t ˆ d d
 d ƒ g } ˆ  j t | | ƒ ƒ | d ƒ } | j ƒ  | j | |  ƒ d  S(   Niÿÿÿÿ(   t   get_cmdRð   R  s   scalartypes.c.srcs   arraytypes.c.srcs   nditer_templ.c.srcs   lowlevel_strided_loops.c.srcs   einsum.c.srcRñ   s   templ_common.h.srct	   build_src(   R3   R'  R   Rù   t   ensure_finalizedt   template_sources(   RŸ   R    R'  t   subpathR  t   cmd(   R?   t	   local_dir(    s/   /tmp/pip-build-X4mzal/numpy/numpy/core/setup.pyt%   generate_multiarray_templated_sourcesÆ  s    
s   arrayobject.hs   arraytypes.hs   array_assign.hs   buffer.hs   calculation.hs   cblasfuncs.hs   common.hs   convert_datatype.hs	   convert.hs   conversion_utils.hs   ctors.hs   descriptor.hs   getset.hs   hashdescr.hs   iterators.hs	   mapping.hs	   methods.hs   multiarraymodule.hs   nditer_impl.hs   numpymemoryview.hs   number.hs	   numpyos.hs
   refcount.hs   scalartypes.hs
   sequence.hs   shape.hs   ucsnarrow.hs   usertypes.hs   vdot.hs   npy_config.hs   templ_common.h.srcs   lowlevel_strided_loops.hs   mem_overlap.hs   npy_extint128.hs   _neighborhood_iterator_imp.hs   npy_endian.hs   arrayscalars.hs
   noprefix.hs   npy_interrupt.hs   npy_3kcompat.hs
   npy_math.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   _numpyconfig.h.ins   alloc.cs   arrayobject.cs   arraytypes.c.srcs   array_assign.cs   array_assign_scalar.cs   array_assign_array.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   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   numpymemoryview.cs	   numpyos.cs
   refcount.cs
   sequence.cs   shape.cs   scalarapi.cs   scalartypes.c.srcs   usertypes.cs   ucsnarrow.cs   vdot.cs   mem_overlap.ct   blas_opti    t
   HAVE_CBLASt   define_macross   cblasfuncs.cs   python_xerbla.cs   generate_numpy_api.pys   *.pyt   dependsR9   t
   extra_infoc           s¡   d d l  m } t d d ƒ } t ˆ | d ƒ t ˆ | d ƒ t ˆ | d ƒ t ˆ | d ƒ g } ˆ  j t | | ƒ ƒ | d	 ƒ } | j ƒ  | j | |  ƒ d  S(
   Niÿÿÿÿ(   R'  Rð   R  s   loops.h.srcs   loops.c.srcs   scalarmath.c.srcs   simd.inc.srcR(  (   R3   R'  R   Rù   R)  R*  (   RŸ   R    R'  R+  R  R,  (   R?   R-  (    s/   /tmp/pip-build-X4mzal/numpy/numpy/core/setup.pyt    generate_umath_templated_sourcesc  s    
c           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  RF   (   R»   t   generate_umath_pyRî   (    s/   /tmp/pip-build-X4mzal/numpy/numpy/core/setup.pyt   generate_umath_ct  s    s   umathmodule.cs   reduction.cs   funcs.inc.srcs   simd.inc.srcs   loops.h.srcs   loops.c.srcs   ufunc_object.cs   scalarmath.c.srcs   ufunc_type_resolution.cs   generate_ufunc_api.pys   ufunc_override.ht   umath_testss   umath_tests.c.srct   test_rationals   test_rational.c.srct   struct_ufunc_tests   struct_ufunc_test.c.srct   multiarray_testss   multiarray_tests.c.srct   operand_flag_testss   operand_flag_tests.c.srct   testss
   tests/data('   R3   Rµ   R¶   t   numpy.distutils.system_infoR·   t
   local_pathR   t   is_releasedRu   t   simplefiltert   MismatchCAPIWarningt   check_api_versionRû   R5   R   R®   R   Rù   Rü   t   add_define_macrosR$   R%   R   Râ   RC   t   pathst   add_extensionRA   R&   R'   R  t   add_installed_libraryt   add_npy_pkg_configt   add_libraryR¬   R   R   t   add_data_dirt   make_svn_version_py(   t   parent_packaget   top_pathRµ   R¶   R·   t   nRï   Rþ   R  R  R	  t   depsR#  t   npymath_sourcest   npysort_sourcesR.  t   multiarray_depst   multiarray_srct	   blas_infoR3  R4  R9  t	   umath_srct
   umath_deps(    (   Rí   R  R?   R»   R8  Rî   R-  R"  s/   /tmp/pip-build-X4mzal/numpy/numpy/core/setup.pyt   configuration}  sf   		rE
$	Jÿ ÿ ÿ $
	



t   __main__(   t   setupRY  (,   t
   __future__R    R   R&   R$   R   R   Ru   t   os.pathR   t   numpy.distutilsR   t   distutils.dep_utilR   t   distutils.sysconfigR   t#   numpy._build_utils.apple_accelerateR   R   t   numpy.compatR   t   setup_commonR,   R¬   R
   t   objectR   R=   Ræ   R)   R*   R-   R8   Ri   R   R   R   R²   R´   R   RY  R   t   numpy.distutils.coreR[  (    (    (    s/   /tmp/pip-build-X4mzal/numpy/numpy/core/setup.pyt   <module>   s>   
					J	)	%	e		ÿ ÿ R