ó
ØÆ÷Xc           @` s°   d  Z  d d l m Z m Z m Z d d l Z d d l Z d d l m Z	 e j
 d d k rf e Z n  e j d e j ƒ j Z e j d e j ƒ j Z d e	 f d	 „  ƒ  YZ d S(
   sŒ   distutils.extension

Provides the Extension class, used to describe C/C++ extension
modules in setup scripts.

Overridden to support f2py.

i    (   t   divisiont   absolute_importt   print_functionN(   t	   Extensioni   s   .*[.](cpp|cxx|cc)\Zs"   .*[.](f90|f95|f77|for|ftn|f|pyf)\ZR   c           B` sV   e  Z d d d d d d d d d d d d d d d d d d  „ Z d „  Z d „  Z RS(   c         C` s  t  j |  | g  d | d | d | d | d | d | d |	 d |
 d	 | d
 | ƒ
| |  _ | pa g  |  _ t |  j t ƒ r¶ d d  l } d } | j | t d d ƒ|  j j	 ƒ  |  _ n  | p¿ g  |  _
 | |  _ | p× g  |  _ | pæ g  |  _ | põ g  |  _ | pg  |  _ d  S(   Nt   include_dirst   define_macrost   undef_macrost   library_dirst	   librariest   runtime_library_dirst   extra_objectst   extra_compile_argst   extra_link_argst   export_symbolsi    s4   swig_opts is specified as a string instead of a listt
   stackleveli   (   t   old_Extensiont   __init__t   sourcest	   swig_optst
   isinstancet
   basestringt   warningst   warnt   SyntaxWarningt   splitt   dependst   languaget   f2py_optionst   module_dirst   extra_f77_compile_argst   extra_f90_compile_args(   t   selft   nameR   R   R   R   R   R   R	   R
   R   R   R   R   R   R   R   R   R   R   R   t   msg(    (    s8   /tmp/pip-build-X4mzal/numpy/numpy/distutils/extension.pyR      s4    		c         C` s.   x' |  j  D] } t t | ƒ ƒ r
 t Sq
 Wt S(   N(   R   t
   cxx_ext_ret   strt   Truet   False(   R   t   source(    (    s8   /tmp/pip-build-X4mzal/numpy/numpy/distutils/extension.pyt   has_cxx_sourcesQ   s    c         C` s(   x! |  j  D] } t | ƒ r
 t Sq
 Wt S(   N(   R   t   fortran_pyf_ext_reR$   R%   (   R   R&   (    (    s8   /tmp/pip-build-X4mzal/numpy/numpy/distutils/extension.pyt   has_f2py_sourcesW   s    N(   t   __name__t
   __module__t   NoneR   R'   R)   (    (    (    s8   /tmp/pip-build-X4mzal/numpy/numpy/distutils/extension.pyR      s&   (	(   t   __doc__t
   __future__R    R   R   t   syst   ret   distutils.extensionR   R   t   version_infoR#   R   t   compilet   It   matchR"   R(   (    (    (    s8   /tmp/pip-build-X4mzal/numpy/numpy/distutils/extension.pyt   <module>   s   	