ÿØÿàJFIFÿþ ÿÛC       ÿÛC ÿÀÿÄÿÄ"#QrÿÄÿÄ&1!A"2qQaáÿÚ ?Øy,æ/3JæÝ¹È߲؋5êXw²±ÉyˆR”¾I0ó2—PI¾IÌÚiMö¯–þrìN&"KgX:Šíµ•nTJnLK„…@!‰-ý ùúmë;ºgµŒ&ó±hw’¯Õ@”Ü— 9ñ-ë.²1<yà‚¹ïQÐU„ہ?.’¦èûbß±©Ö«Âw*VŒ) `$‰bØÔŸ’ëXÖ-ËTÜíGÚ3ð«g Ÿ§¯—Jx„–’U/ÂÅv_s(Hÿ@TñJÑãõçn­‚!ÈgfbÓc­:él[ðQe 9ÀPLbÃãCµm[5¿ç'ªjglå‡Ûí_§Úõl-;"PkÞÞÁQâ¼_Ñ^¢SŸx?"¸¦ùY騐ÒOÈ q’`~~ÚtËU¹CڒêV  I1Áß_ÿÙ ]c@`s dZddlmZmZmZddlZddlZddlZddlZddl Z ddl m Z ddl m Z ej ddkrddlmZddlmZn ddlmZddlmZdd lmZdd lmZddlZdd lmZdd lmZdd lmZmZmZddlm Z m!Z!m"Z"ddl#m$Z%ddl&m'Z'ddl(Zddl)Z)ddl*Z*ddl+Z+idd6dd6Z,e,e+j-dZ.dZ/ej+dkr-dej0j1ej2j3dgZ4gZ5gZ6dgZ7gZ8gZ9ne/dddddge.Z4gZ5dd d!d"d#d$d%gZ6dd&d'd(gZ7e/d)d*dge.Z8d+d,d!gZ9ej0j:d-re d.Z;e;r ej0j<e;ddZ=e8j>e=d-ge9j>d/d0gnnddl?Z@eAZBzy:eCejDd1ZBe@jEd2d3gd4e@jFd5eBZGWneHefk rwnmXeIeGjJdjKjLZMeGjNdkre8ej0j1d6eMg7Z8e4ej0j1d6eMg7Z4nWdeBeAk reBjOnXej0j1ejPd7e4kre4jQdej0j1ejPd7e6jRej0j1ejPd8e7jRej0j1ejPd9nge4D]ZSej0jTeSreS^qZ4ge5D]ZSej0jTeSreS^qZ5ge6D]ZSej0jTeSreS^qZ6ge7D]ZSej0jTeSr)eS^q Z7e"ZUd:ZVdd;ZWd<efd=YZXd>eXfd?YZYd@eXfdAYZZdBeZfdCYZ[dDeXfdEYZ\dFe\fdGYZ]dHeXfdIYZ^dJeXfdKYZ_dLeXfdMYZ`dNeXfdOYZadPeXfdQYZbdRecfdSYZddTedfdUYZedVedfdWYZfdXeffdYYZgdZeffd[YZhd\effd]YZid^effd_YZjd`effdaYZkdbeffdcYZlddeffdeYZmdfedfdgYZndhedfdiYZodjeofdkYZpdleofdmYZqdnedfdoYZrdperfdqYZsdrerfdsYZtdtesfduYZudverfdwYZvdxetfdyYZwdzerfd{YZxd|exfd}YZyd~exfdYZzdeyfdYZ{dexfdYZ|dezfdYZ}dedfdYZ~dedfdYZdZiZdZdedfdYZdedfdYZdedfdYZdefdYZdefdYZdefdYZdedfdYZdedfdYZdedfdYZdefdYZdefdYZdefdYZdedfdYZdedfdYZdedfdYZdedfdYZdedfdYZdefdYZdefdYZdefdYZdefdYZdefdYZdefdYZdefdYZdefdYZdefdYZdefdYZdedfdYZdedfdYZdZidd6dd6dd6dd6Zidd6dd6dd6dd6ZdZeAfdZeAdZedkr endS(sk This file defines a set of system_info classes for getting information about various resources (libraries, library directories, include directories, etc.) in the system. Currently, the following classes are available: atlas_info atlas_threads_info atlas_blas_info atlas_blas_threads_info lapack_atlas_info lapack_atlas_threads_info atlas_3_10_info atlas_3_10_threads_info atlas_3_10_blas_info, atlas_3_10_blas_threads_info, lapack_atlas_3_10_info lapack_atlas_3_10_threads_info blas_info lapack_info openblas_info blis_info blas_opt_info # usage recommended lapack_opt_info # usage recommended fftw_info,dfftw_info,sfftw_info fftw_threads_info,dfftw_threads_info,sfftw_threads_info djbfft_info x11_info lapack_src_info blas_src_info numpy_info numarray_info numpy_info boost_python_info agg2_info wx_info gdk_pixbuf_xlib_2_info gdk_pixbuf_2_info gdk_x11_2_info gtkp_x11_2_info gtkp_2_info xft_info freetype2_info umfpack_info Usage: info_dict = get_info() where is a string 'atlas','x11','fftw','lapack','blas', 'lapack_src', 'blas_src', etc. For a complete list of allowed names, see the definition of get_info() function below. Returned info_dict is a dictionary which is compatible with distutils.setup keyword arguments. If info_dict == {}, then the asked resource is not available (system_info could not find it). Several *_info classes specify an environment variable to specify the locations of software. When setting the corresponding environment variable to 'None' then the software will be ignored, even when it is available in system. Global parameters: system_info.search_static_first - search static libraries (.a) in precedence to shared ones (.so, .sl) if enabled. system_info.verbosity - output the results to stdout if enabled. The file 'site.cfg' is looked for in 1) Directory of main setup.py file being run. 2) Home directory of user running the setup.py file as ~/.numpy-site.cfg 3) System wide directory (location of this file...) The first one found is used to get system configuration options The format is that used by ConfigParser (i.e., Windows .INI style). The section ALL has options that are the default for each section. The available sections are fftw, atlas, and x11. Appropriate defaults are used if nothing is specified. The order of finding the locations of resources is the following: 1. environment variable 2. section in site.cfg 3. ALL section in site.cfg Only the first complete match is returned. Example: ---------- [ALL] library_dirs = /usr/lib:/usr/local/lib:/opt/lib include_dirs = /usr/include:/usr/local/include:/opt/include src_dirs = /usr/local/src:/opt/src # search static libraries (.a) in preference to shared ones (.so) search_static_first = 0 [fftw] fftw_libs = rfftw, fftw fftw_opt_libs = rfftw_threaded, fftw_threaded # if the above aren't found, look for {s,d}fftw_libs and {s,d}fftw_opt_libs [atlas] library_dirs = /usr/lib/3dnow:/usr/lib/3dnow/atlas # for overriding the names of the atlas libraries atlas_libs = lapack, f77blas, cblas, atlas [x11] library_dirs = /usr/X11R6/lib include_dirs = /usr/X11R6/include ---------- Authors: Pearu Peterson , February 2002 David M. Cooke , April 2002 Copyright 2002 Pearu Peterson all rights reserved, Pearu Peterson Permission to use, modify, and distribute this software is given under the terms of the NumPy (BSD style) license. See LICENSE.txt that came with this distribution for specifics. NO WARRANTY IS EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK. i(tdivisiontabsolute_importtprint_functionN(tglob(treducei(t NoOptionError(tRawConfigParser(tDistutilsError(t Distribution(tlog(t get_platform(tfind_executablet exec_commandt get_pythonexe(t is_sequencet is_stringtget_shared_lib_extension(tconfig(t get_exceptioni t32biti@t64bitcC`s]|dkrtdn|dkr+|Sg}x%|D]}|j|d|gq8W|S(sReturn a list of library paths valid on 32 or 64 bit systems. Inputs: paths : sequence A sequence of strings (typically paths) bits : int An integer, the only valid values are 32 or 64. A ValueError exception is raised otherwise. Examples: Consider a list of directories >>> paths = ['/usr/X11R6/lib','/usr/X11/lib','/usr/lib'] For a 32-bit platform, this is already valid: >>> np.distutils.system_info.libpaths(paths,32) ['/usr/X11R6/lib', '/usr/X11/lib', '/usr/lib'] On 64 bits, we prepend the '64' postfix >>> np.distutils.system_info.libpaths(paths,64) ['/usr/X11R6/lib64', '/usr/X11R6/lib', '/usr/X11/lib64', '/usr/X11/lib', '/usr/lib64', '/usr/lib'] i i@s+Invalid bit size in libpaths: 32 or 64 onlyt64(i i@(t ValueErrortextend(tpathstbitstouttp((sN/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/system_info.pytlibpathss   twin32sC:\tlibst.s/usr/local/libs/opt/libs/usr/libs/opt/local/libs/sw/libs/usr/local/includes /opt/includes /usr/includes/opt/local/include/ufsparses/opt/local/includes /sw/includes/usr/include/suitesparses/usr/local/srcs/opt/srcs/sw/srcs/usr/X11R6/libs /usr/X11/libs/usr/X11R6/includes/usr/X11/includes /usr/lib/X11s/usr/lib/*/libX11.sos/usr/lib/X11/includes/usr/include/X11twtgccs-print-multiarchtstdouttstderrs /usr/lib/tlibtincludetsrccC`sg}y t}Wntk r0tjd}nTXtjjtjjtjj|d|}tjj |r|j |nytjj d}Wnt k rn8Xtjj||}tjj |r|j |ntjj |r|j tjj|n|S(sReturns a list of files named 'fname' from 1) System-wide directory (directory-location of this module) 2) Users HOME directory (os.environ['HOME']) 3) Local directory it~( t__file__t NameErrortsystargvtostpathtjointsplittabspathtisfiletappendt expandusertKeyError(tfnamet filenamestftsysfilet user_file((sN/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/system_info.pytget_standard_files&  (  cC`si=td6td6td6td6td6td6td6td6td 6t d 6t d 6t d 6t d 6t d6td6td6td6td6td6td6td6td6td6td6td6td6td6td6td6td6td6td 6t d!6t!d"6t"d#6t#d$6t#d%6t$d&6t%d'6t&d(6t'd)6t(d*6t)d+6t*d,6t+d-6t+d.6t,d/6t,d06t-d16t.d26t.d36t/d46t/d56t0d66t0d76t1d86t1d96t2d:6t3d;6t4d<6t5d=6j6|j7t8}|j9|S(>sg notfound_action: 0 - do nothing 1 - display warning message 2 - raise error tatlast atlas_threadst atlas_blastatlas_blas_threadst lapack_atlastlapack_atlas_threadst atlas_3_10tatlas_3_10_threadstatlas_3_10_blastatlas_3_10_blas_threadstlapack_atlas_3_10tlapack_atlas_3_10_threadstmkltopenblastopenblas_lapacktblist lapack_mkltblas_mkltx11tfft_opttfftwtfftw2tfftw3tdfftwtsfftwt fftw_threadst dfftw_threadst sfftw_threadstdjbffttblastlapackt lapack_srctblas_srctnumpytf2pytNumerictnumerictnumarraytnumerixt lapack_opttblas_optt boost_pythontagg2twxtgdk_pixbuf_xlib_2sgdk-pixbuf-xlib-2.0t gdk_pixbuf_2sgdk-pixbuf-2.0tgdktgdk_2sgdk-2.0t gdk_x11_2s gdk-x11-2.0t gtkp_x11_2s gtk+-x11-2.0tgtkp_2sgtk+-2.0txftt freetype2tumfpacktamd(:t atlas_infotatlas_threads_infotatlas_blas_infotatlas_blas_threads_infotlapack_atlas_infotlapack_atlas_threads_infotatlas_3_10_infotatlas_3_10_threads_infotatlas_3_10_blas_infotatlas_3_10_blas_threads_infotlapack_atlas_3_10_infotlapack_atlas_3_10_threads_infotmkl_infot openblas_infotopenblas_lapack_infot blis_infotlapack_mkl_infot blas_mkl_infotx11_infot fft_opt_infot fftw_infot fftw2_infot fftw3_infot dfftw_infot sfftw_infotfftw_threads_infotdfftw_threads_infotsfftw_threads_infot djbfft_infot blas_infot lapack_infotlapack_src_infot blas_src_infot numpy_infot f2py_infot Numeric_infot numarray_infot numerix_infotlapack_opt_infot blas_opt_infotboost_python_infot agg2_infotwx_infotgdk_pixbuf_xlib_2_infotgdk_pixbuf_2_infotgdk_infot gdk_2_infotgdk_x11_2_infotgtkp_x11_2_infot gtkp_2_infotxft_infotfreetype2_infot umfpack_infotamd_infotgettlowert system_infotget_info(tnametnotfound_actiontcl((sN/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/system_info.pyR4s~  t NotFoundErrorcB`seZdZRS(s1Some third-party program or library is not found.(t__name__t __module__t__doc__(((sN/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/system_info.pyR~stAtlasNotFoundErrorcB`seZdZRS(s Atlas (http://math-atlas.sourceforge.net/) libraries not found. Directories to search for the libraries can be specified in the numpy/distutils/site.cfg file (section [atlas]) or by setting the ATLAS environment variable.(RRR(((sN/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/system_info.pyRstLapackNotFoundErrorcB`seZdZRS(s Lapack (http://www.netlib.org/lapack/) libraries not found. Directories to search for the libraries can be specified in the numpy/distutils/site.cfg file (section [lapack]) or by setting the LAPACK environment variable.(RRR(((sN/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/system_info.pyRstLapackSrcNotFoundErrorcB`seZdZRS(s Lapack (http://www.netlib.org/lapack/) sources not found. Directories to search for the sources can be specified in the numpy/distutils/site.cfg file (section [lapack_src]) or by setting the LAPACK_SRC environment variable.(RRR(((sN/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/system_info.pyRstBlasNotFoundErrorcB`seZdZRS(s Blas (http://www.netlib.org/blas/) libraries not found. Directories to search for the libraries can be specified in the numpy/distutils/site.cfg file (section [blas]) or by setting the BLAS environment variable.(RRR(((sN/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/system_info.pyRstBlasSrcNotFoundErrorcB`seZdZRS(s Blas (http://www.netlib.org/blas/) sources not found. Directories to search for the sources can be specified in the numpy/distutils/site.cfg file (section [blas_src]) or by setting the BLAS_SRC environment variable.(RRR(((sN/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/system_info.pyRstFFTWNotFoundErrorcB`seZdZRS(s FFTW (http://www.fftw.org/) libraries not found. Directories to search for the libraries can be specified in the numpy/distutils/site.cfg file (section [fftw]) or by setting the FFTW environment variable.(RRR(((sN/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/system_info.pyRstDJBFFTNotFoundErrorcB`seZdZRS(s DJBFFT (http://cr.yp.to/djbfft.html) libraries not found. Directories to search for the libraries can be specified in the numpy/distutils/site.cfg file (section [djbfft]) or by setting the DJBFFT environment variable.(RRR(((sN/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/system_info.pyRstNumericNotFoundErrorcB`seZdZRS(sv Numeric (http://www.numpy.org/) module not found. Get it from above location, install it, and retry setup.py.(RRR(((sN/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/system_info.pyRstX11NotFoundErrorcB`seZdZRS(sX11 libraries not found.(RRR(((sN/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/system_info.pyRstUmfpackNotFoundErrorcB`seZdZRS(s UMFPACK sparse solver (http://www.cise.ufl.edu/research/sparse/umfpack/) not found. Directories to search for the libraries can be specified in the numpy/distutils/site.cfg file (section [umfpack]) or by setting the UMFPACK environment variable.(RRR(((sN/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/system_info.pyRsRcB`seZdZdZdZdZdZiZe Z e e ddZ dZdZdZdZd Zdd Zd Zd d ZddZddZddZdZddZdZgdZgdZdZdZdZ dZ!RS(s= get_info() is the only public method. Don't use others. tALLiicC`s#i|j_g|_itjj|d6tjj|d6tjjtd6dd6tjjtd6t|j d6dd6dd 6}t ||_ g|_ |j j td |j j td |j|jdk r|j j|jd|_ nt|j tstdS( Nt library_dirst include_dirstruntime_library_dirsttrpathtsrc_dirstsearch_static_firsttextra_compile_argstextra_link_argss.numpy-site.cfgssite.cfg(t __class__tinfotlocal_prefixesR,tpathsepR.tdefault_runtime_dirstdefault_src_dirststrRt ConfigParsertcptfilesRR:tparse_config_filestsectiontNonet getbooleant isinstancetinttAssertionError(tselftdefault_lib_dirstdefault_include_dirst verbositytdefaults((sN/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/system_info.pyt__init__s$     cC`sT|jj|j|jj|jsP|jdk rP|jj|jqPndS(N(RtreadRt has_sectionRRt add_section(R((sN/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/system_info.pyRscC`s|j}|j}|j}|j|jddi}x|D]}|j||g}|dk rt||ntjd||rJ|j||g}|dk r|d=|j d|dN(RAN( RRRRRRRRHRGR(((sN/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/system_info.pyR)s        RcB`sNeZdZdZeZidd6ddgd6ddgd6d gd 6gZRS( ROR<RPRR@Rsfftw.hsrfftw.hR=RAR?N(RAN(RRRRRRRRH(((sN/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/system_info.pyRWs   RcB`sHeZdZdZeZidd6dgd6dgd6d gd6gZRS( RQtFFTW3RRsfftw3.hR=R>R?N(R>N(RRRRRRRRH(((sN/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/system_info.pyRcs   RcB`sHeZdZdZidd6ddgd6ddgd6d gd 6gZRS( ROR<RRRtdrfftwRsdfftw.hsdrfftw.hR=t SCIPY_DFFTW_HR?N(RKN(RRRRRRH(((sN/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/system_info.pyRos    RcB`sHeZdZdZidd6ddgd6ddgd6d gd 6gZRS( ROR<RSRtsrfftwRssfftw.hssrfftw.hR=t SCIPY_SFFTW_HR?N(RMN(RRRRRRH(((sN/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/system_info.pyRxs    RcB`sHeZdZdZidd6ddgd6ddgd 6d gd 6gZRS(ROR<s fftw threadsRt rfftw_threadsRTRsfftw_threads.hsrfftw_threads.hR=tSCIPY_FFTW_THREADS_HR?N(RON(RRRRRRH(((sN/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/system_info.pyRs    RcB`sHeZdZdZidd6ddgd6ddgd 6d gd 6gZRS(ROR<s dfftw threadsRtdrfftw_threadsRURsdfftw_threads.hsdrfftw_threads.hR=tSCIPY_DFFTW_THREADS_HR?N(RQN(RRRRRRH(((sN/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/system_info.pyRs    RcB`sHeZdZdZidd6ddgd6ddgd 6d gd 6gZRS(ROR<s sfftw threadsRtsrfftw_threadsRVRssfftw_threads.hssrfftw_threads.hR=tSCIPY_SFFTW_THREADS_HR?N(RSN(RRRRRRH(((sN/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/system_info.pyRs    RcB`s,eZdZdZeZdZdZRS(RWtDJBFFTcC`sxtj|||}g}x1|D])}|j|j|dg|gq"Wg|D]}tjj|rV|^qVS(NRW(RRRR/R,R-R (RRRtpre_dirsRR((sN/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/system_info.pyRs  'cC`s|j}|j}d}xz|D]r}|j|dg}|rWi|d6}Pn|j|ddtg}|r%idgd6|gd6}Pq%q%W|dkrdSx_|D]W}t|j|dd gd krt|d |gd dg|j|dSqWdS(Nsdjbfft.at extra_objectss libdjbfft.at libdjbfftRWRRsfftc8.hs fftfreq.hiRRCtSCIPY_DJBFFT_H(RXN(RRRR/R&RRR(RR+RFRRR((sN/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/system_info.pyRs*      $  (RRRRRRRR(((sN/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/system_info.pyRs  R~cB`s8eZdZdZdgZdZdZdZRS(RGtMKLROOTtmkl_rtc C`stjjdd}|dk r%|Stjjddjtj}d}tjj|rt|d:}x0|D](}|j }|rw|j |qwqwWWdQXng}xt|D]l}|jtj }xQ|D]I} | j drtj j ||j| d }|j |PqqWqWx|D]y}ttjj |dd} | ttjj |d 7} x3| D]+}tjjtjj |d rz|SqzWq0WdS( NRYtLD_LIBRARY_PATHRs/etc/ld.so.conftrRGit*smkl*R$(R,RRRR/RR-R1topenRR2tsept startswithR.tindexRR ( RtmklrootRt ld_so_confR7Rtintel_mkl_dirsR-t path_atomstmR((sN/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/system_info.pytget_mkl_rootdirs4 !    #    ! cC`s|j}|dkr(tj|nddlm}|jrMd}n'|jrn|jrnd}nd}tj|dt j j |d|gdt j j |d gdS( Ni(tcpuRtintel64t32RR$RR%( RgRRRtcpuinfoRht is_Itaniumtis_Inteltis_64bitR,R-R.(RRbRhtplt((sN/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/system_info.pyRs     cC`s|j}|j}|jd|j}|j||}|dkrOdSt|dd d gd|tjdkr}nt|ddg|j |dS( Ntmkl_libsRCt SCIPY_MKL_Ht HAVE_CBLASRRRtpthread(RqN(RrN( RRR"t_lib_mklR.RRR*R%R(RR+RFRpR((sN/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/system_info.pyRs     (RRRRRtRgRR(((sN/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/system_info.pyR~s    RcB`seZRS((RR(((sN/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/system_info.pyRsRcB`seZRS((RR(((sN/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/system_info.pyRsRrcB`sreZdZdZddgZejd dkrFdgZdgZndgZdgZe Z d Z d Z RS( R;tATLAStf77blastcblasitfreebsdtatlas_rt alapack_rRYc C`stj|||}g}x=|D]5}|j|j|dddddg|gq"Wg|D]}tjj|rb|^qbS(Nsatlas*sATLAS*tsset3dnowtsse2(RRRR/R,R-R (RRRRURR((sN/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/system_info.pyRs  cC`s|j}i}|jd|j|j}|jd|j}d}d}d}x|D]}|j||g}|j|dgg} |dk r|g|j|ddg} |j| |g}|dk rPqn|r\|}q\q\Wtj |j |dkr|}n|dkr*dS|j } |j|| dpRdg} | d} | rt j j| } t|d| gnd |d <|dk rt||t||nd|d krt||t|d dg|j|dSt||t|d dgd} tj| dd|j|dS|dd}|d d}d}dg}tjdkr|jdnxh|jD]Z}xG|D]?}t j j||||}t j j|r|}PqqW|rPqqW|dk rbt j|d}|dkrUd||df} tj| ddqbd|d 4000k) Follow the instructions in the KNOWN PROBLEMS section of the file numpy/INSTALL.txt. ********************************************************************* tf77(RN(RNi>(RR"Rt _lib_atlast _lib_lapackRR.R/R RRRR,R-R RRRRR*R%R2R)R.texistststattget_atlas_version(RR+RR~RR;RYtatlas_1RR?t lib_dirs2Rthtmessaget lapack_dirt lapack_namet lapack_libR2RR3tfntszt atlas_versiontatlas_extra_info((sN/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/system_info.pyR!s                          ( RRRRRR*R%RRRRRR(((sN/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/system_info.pyRr s      RtcB`seZddgZdZRS(RvRwc C`s |j}i}|jd|j|j}|j||g}|dkrSdS|j}|j||dp{dg}|d}|rtj j |}t |d|gnd|d  !       (0044+(RRRRRRRR(((sN/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/system_info.pyRs  s /* This file is generated from numpy/distutils/system_info.py */ void ATL_buildinfo(void); int main(void) { ATL_buildinfo(); return 0; } c K`s|jdg}|jdg}t|t|f}|tkrPt|Stt}d}i}y|jtd|d|dtj dk\}}|r+t j d|t j r+|jtd|dgd|dtj dk\}}|s+t jddd t|d d d dgq+nWntk rxH|D]@}t j d|} | rs| jd}n|dk rCPqCqCW|dkrtjjdd}n|rt|d dd|fgnt|d dg|pd|fSX|s(t j d|} | r(| jd}q(n|dkrxt j d|t j rUd}qxtjd|tjd|n|dkrt|d dgnt|d dd|fg||f} t|<| S(NRRtuse_teeis!undefined reference to `_gfortrantgfortrans3 ***************************************************** Linkage with ATLAS requires gfortran. Use python setup.py config_fc --fcompiler=gnu95 ... when building extension libraries that use ATLAS. Make sure that -lgfortran is used for C++ extensions. ***************************************************** RiRtf90RCtATLAS_REQUIRES_GFORTRANs#ATLAS_(?P\d+[.]\d+[.]\d+)_tversiont ATLAS_VERSIONt ATLAS_INFOs"\"%s\""t NO_ATLAS_INFOis?.?.?s*ATLAS version (?P\d+[.]\d+[.]\d+)sundefined symbol: ATL_buildinfos3.2.1_pre3.3.6s Status: %ds Output: %si(RN(Ri(Ri(Rttuplet_cached_atlas_versiont cmd_configRRt get_outputtatlas_version_c_textRRtretsearchtMRRRt ExceptiontgroupR,RR R( RRRRRRRtstoRftresult((sN/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/system_info.pyRqsf               RcB`seZeZdZRS(c C`std}|r#|j|dStd}|rF|j|dStd}|sgtd}n|s|td}n|std}ntjdkr|p|p| rg}g}tdd ksd tksd tksd tjkr d }nd }tjjdrb|r<|jdgn|jdg|jddgnQtjjdr|r|jdgn|jdg|jddgn|r|jd|d|dd&d'gdSnd }d }i} |r6|j dg} d(| ks$d)| kr-d }n|} n5t j t jddd }d }t| dd*g|rtd} | rt| | qt j tjddtd } | st j tjdddSt| d!d"| fgn|rwtd#} | rt| | qwt j tjddtd$}|s[t j tjdddSt| d!d%|fgn|j| dS(+NRKRIRBRAR<R;R$iti386tinteltx86_64iis0/System/Library/Frameworks/Accelerate.framework/s-msse3s -faltivecs-Wl,-frameworks-Wl,Accelerates,/System/Library/Frameworks/vecLib.framework/s -Wl,vecLibRRRCRiRrRRRiRYRZRt flapack_srcRXR[t fblas_src(Ri(RrN(RN(RN(Ri(RRR*R%R R,R-RRRRRRRRRRRRR(RRRRrR;t link_argsRt need_lapackt need_blasRRRRRR((sN/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/system_info.pyRs     "           (RRRRR(((sN/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/system_info.pyRsRcB`seZeZdZRS(c C`s td}|r#|j|dStd}|rF|j|dStd}|ri|j|dStd}|std}n|std}n|std}ntjdkr+|p|p|p| r+g}g}td d ks+d tks+d tks+d tjkr4d }nd}tjjdr|re|jdgn|jdg|jdg|jddgnatjjdr|r|jdgn|jdg|jdg|jddgn|r+|jd|d|dd#d$gdSnd}i} |rF|} n/t j t j ddd }t| dd%g|rtd} | rt| | qt j tj ddtd } | st j tj dddSt| d!d"| fgn|j| dS(&NRLRJRHRDRCR>R=R$iRRRiis0/System/Library/Frameworks/Accelerate.framework/s-msse3s -faltivecs5-I/System/Library/Frameworks/vecLib.framework/Headerss-Wl,-frameworks-Wl,Accelerates,/System/Library/Frameworks/vecLib.framework/s -Wl,vecLibRRRCRiRrRiRXR[RR(Ri(RrN(Ri(RRR*R%R R,R-RRRRRRRRRR( RRRRRrR;RRRRRR((sN/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/system_info.pyR#s        "        (RRRRR(((sN/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/system_info.pyRsRcB`s5eZdZdZdgZeZdZdZRS(RXtBLAScC`s|j}|jd|j}|j||g}|dkrFdS|j|d int main(int argc, const char *argv[]) { double a[4] = {1,2,3,4}; double b[4] = {5,6,7,8}; return cblas_ddot(4, a, 1, b, 1) > 10; }ssource.ctwtt output_dirRsa.outRRwRtextra_postargsRRX(R0t distutilst ccompilert new_compilert customizettempfiletmkdtempR,R-R.R^twritetcompileRtlink_executableRt LinkErrort CompileErrorRtshutiltrmtree( RRRRttmpdirRR&R7tobj((sN/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/system_info.pyRs8       ( RRRRRRRRR(((sN/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/system_info.pyRys   RcB`s5eZdZdZdgZeZdZdZRS(RHtOPENBLAScC`stS(N(RD(RR((sN/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/system_info.pytcheck_embedded_lapackscC`s|j}|jd|j}||jkrH|jd|j}n|j||g}|dkrmdS|j}t|||j|sdSd|d/ Riis (paths: %s)R( RR2RRtmapRRR,R-R.R/R R(R;tkwsR\R!Rta0ta1((sN/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/system_info.pyR/ s(   %-%Risc++iRRcK`sg}x|jD]\}}|dkr>|j|qn||kr|d krg|D])}|||kr]||j|^q]q||j|q||| s     7/ c C`siddl}|jd}|jddddddd td d |jd |d \}}||fS(Nisusage: %prog [-v] [info objs]s-vs --verbosetactiont store_truetdesttverboseR thelps"be verbose and print more messagesR;i(toptparset OptionParsert add_optionR0t parse_args(R+RJtparserR'R;((sN/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/system_info.pyt parseCmdLineS s c C`s|ddl}|dkr$tj}nt|\}}|jrRtjtjntjtj g}x8|D]0}|ddkr|d}n|j |qoW| }t j }x|j D]\}} |j| sqnt| t s| tkr qn|s4||kr!qn||j|=n| } d| _| j} qW|rxtjddj|ndS(Niit_infoisInfo classes not defined: %sR(tinspectRR*R+RORHR t set_thresholdtDEBUGtINFOR2tglobalsRRtisclasst issubclassRRaRRRR.( R+RQR'R;t show_onlyR(tshow_allt_gdict_RRtconfR\((sN/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/system_info.pyRY^ s8         t__main__(Rt __future__RRRR*R,RRRRt functoolsRt version_infoRRRt configparsertdistutils.errorsRtdistutils.distRtdistutils.sysconfigRR tdistutils.utilR tnumpy.distutils.exec_commandR R R tnumpy.distutils.misc_utilRRRtnumpy.distutils.command.configRRtnumpy.distutils.compatRtdistutils.ccompilerRRR%t_bitst architecturet platform_bitsRR-R.Rt EXEC_PREFIXRRRRRRRtglobbed_x11_dirR/t x11_so_dirRt subprocesstspRRR^tdevnulltPopentPIPERtOSErrorRt communicatetdecodeRttriplett returncodetcloseR3tinsertR2t_mR R&R:RRRRRRRRRRRRtobjectRRRRRRRRRRRR~RRRrRtRsRuRvRwRxRzRyR{R|R}RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR/RBR@RRORYR(((sN/opt/alt/python27/lib64/python2.7/site-packages/numpy/distutils/system_info.pytxsH           '           "# ""++++  $ JP.       $Dn{ IeZJ(4F% '*U " ""