ó
©¶"Pc           @   s  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 m Z d  d l m	 Z	 m
 Z
 m Z m Z m Z d  d l j Z d  d l j Z d  d l j Z d  d l Z d  d l Z e j d ƒ Z d „  Z d „  Z d „  Z d „  Z d	 „  Z d S(
   iÿÿÿÿN(   t   HOMEPATHt   PLATFORM(   t   is_wint   is_unixt	   is_darwint   is_py24t   get_versions   PyInstaller.configurec         C   sÚ   d |  d <d  St  j d ƒ d d l m } t j ƒ  } t j } z{ t j t j	 j
 t d d ƒ ƒ | d d	 g ƒ } | j j d	 d ƒ r¤ d
 |  d <t  j d ƒ n d |  d <t  j d ƒ Wd  t j | ƒ | t _ Xd  S(   Ni    t   useCrypts    trying to build crypt support...iÿÿÿÿ(   t	   run_setupt   sourcet   cryptos   setup.pyt   installi   s   ... crypto support availables!   ... error building crypto support(   t   loggert   infot   distutils.coreR   t   ost   getcwdt   syst   argvt   chdirt   patht   joinR    t   have_runt   get(   t   configR   t   cwdt   argst   dist(    (    sF   /home/salopaasi/Documents/Moo/pyinstaller-2.0/PyInstaller/configure.pyt
   test_Crypt)   s     



c         C   sO  d |  d <t  s d  St j d ƒ y& d d  l } d d l m } m } Wn$ t k
 rm } t j d | ƒ d  SXt j	 j
 t d d t d	 ƒ } t j	 j | ƒ s¼ d |  d <t j d
 | ƒ d  St j	 j
 t j d ƒ d ƒ } t j | | ƒ y | j | d ƒ } Wn t j d ƒ n( X| j | d ƒ d |  d <t j d ƒ t j | ƒ d  S(   Ni    t   hasRsrcUpdates6   Testing for ability to set icons, version resources...iÿÿÿÿ(   t   icont   versioninfos$   ... resource update unavailable - %st   supportt   loaders   runw.exes.   ... resource update unavailable - %s not foundt   TEMPs   me_test_exe.tmpsE   ... resource update unavailable - win32api.BeginUpdateResource failedi   s   ... resource update available(   R   R   R   t   win32apit   PyInstaller.utilsR   R   t   ImportErrorR   R   R   R    R   t   existst   errort   compatt   getenvt   shutilt   copyfilet   BeginUpdateResourcet   EndUpdateResourcet   remove(   R   R#   R   R   t   detailt   test_exet   rw_test_exet   hexe(    (    sF   /home/salopaasi/Documents/Moo/pyinstaller-2.0/PyInstaller/configure.pyt   test_RsrcUpdateC   s2    


c         C   s_  t  j d ƒ d } | r= t j j t j j | | ƒ ƒ } n  d } y‹ t j | d ƒ j ƒ  j	 ƒ  } | rÍ | d j
 ƒ  d } t t t | j
 d ƒ ƒ ƒ } t rÍ t rÍ | d k  rÍ t  j d ƒ d } qÍ n  WnQ t k
 r!} t | t ƒ r| j d	 k rq"t  j d
 ƒ t  j d | ƒ n X| r1d } n d } t  j d | ƒ | |  d <| |  d <d  S(   Ns   Testing for UPX ...t   upxi    s   -Vi   t   .i\   s;   UPX is too old! Python 2.4 under Windows requires UPX 1.92+i   s*   An exception occured when testing for UPX:s     %rt	   availables   not availables
   UPX is %s.t   hasUPXt   upx_dir(   i   i\   (   R   t   debugR   R   t   normpathR   R(   t   exec_commandt   stript
   splitlinest   splitt   tuplet   mapt   intR   R   R'   t	   Exceptiont
   isinstancet   OSErrort   errnoR   (   R   R8   t   cmdR7   t   verst   vt   et   is_available(    (    sF   /home/salopaasi/Documents/Moo/pyinstaller-2.0/PyInstaller/configure.pyt   test_UPXe   s0    $	
c         C   sŠ  t  j d ƒ d d  l } | j j j t j j t	 j
 | j ƒ ƒ t j j t d ƒ g ƒ } | j d ƒ | j d } t j | j | j d f g ƒ } xÖ t | ƒ D]È \ } \ } } } | j | } g  }	 x | j D]… \ }
 } } } | sÕ | j |
 | ƒ } xX | D]M } | j | } t | | j j j ƒ s|	 j | j | j | j f ƒ qqWqÕ qÕ W| j |	 ƒ q£ W| j ƒ  | j |  d <d  S(   Ns   Computing PYZ dependenciesiÿÿÿÿR    t   archivet   PYMODULEt   PYZ_dependencies(   R   R9   t   PyInstaller.loadert   dependt
   imptrackert   ImportTrackerR   R   t   dirnamet   inspectt   getsourcefileR!   R   R    t	   analyze_rt   modulest   buildt   TOCt   __name__t   __file__t	   enumeratet   importst   analyze_oneRC   t   BuiltinModulet   appendt   typt   extendt   reverset   data(   R   t   PyInstallert   at   modt   toct   it   nmt   fnmRa   t   tmpt
   importednmt	   isdelayedt   isconditionalt   levelt   realnmst   realnmt   imported(    (    sF   /home/salopaasi/Documents/Moo/pyinstaller-2.0/PyInstaller/configure.pyt   find_PYZ_dependencies„   s*    !"-
c         K   sx   t  r< t j ƒ  d k r< t j d t j ƒ t j d ƒ n  i d d 6} t	 | ƒ t
 | ƒ t | |  ƒ t | ƒ | S(   Nt   64bitsÞ   You are running 64-bit Python: created binaries will only work on Mac OS X 10.6+.
If you need 10.4-10.5 compatibility, run Python as a 32-bit binary with this command:

    VERSIONER_PYTHON_PREFER_32_BIT=yes arch -i386 %s
i   i   t	   useELFEXE(   R   R(   t   architectureR   t   warnR   t
   executablet   timet   sleepR   R3   RK   Rt   (   R8   t   kwR   (    (    sF   /home/salopaasi/Documents/Moo/pyinstaller-2.0/PyInstaller/configure.pyt
   get_configŸ   s    	


(   R   R   R*   t   reRz   RT   Re   R    R   R   R   R   R   R   t   PyInstaller.buildRX   t   PyInstaller.compatR(   t   PyInstaller.logt   logt   loggingt   PyInstaller.depend.modulest   PyInstaller.depend.imptrackert	   getLoggerR   R   R3   RK   Rt   R}   (    (    (    sF   /home/salopaasi/Documents/Moo/pyinstaller-2.0/PyInstaller/configure.pyt   <module>   s$   (		"		