Ñò
}#‚Jc        
   @   s  d  d k  Z  d  d k Z e ƒ  Z e ƒ  Z d d* d „  ƒ  YZ d e f d „  ƒ  YZ d d+ d „  ƒ  YZ e ƒ  Z e d e	 f ƒ Z
 d	 „  Z d
 „  Z d d „ Z d „  Z d „  Z e	 Z d Z d d d d d g Z d Z d d d d d g Z e d e ƒ e o* e d d d g ƒ e d d d g ƒ n d „  Z d  „  Z d! „  Z d" „  Z x: e d e	 f ƒ i ƒ  e d, ƒ i ƒ  @D] Z e e ƒ qxWx: e d e	 f ƒ i ƒ  e d- ƒ i ƒ  @D] Z e e ƒ qµWd& d' „ Z x> e d e	 f ƒ i ƒ  D]$ Z e d( Gd) Ge e d( d& ƒ HqîWd S(.   iÿÿÿÿNt   desetc           B   sZ   e  Z d  d	 d „  ƒ  YZ d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 RS(
   t   dimplc           B   s   e  Z d  „  Z RS(   c         C   s'   | d |  _  | d |  _ | |  _ d  S(   Ni    i   (   t   namet   valuet   members(   t   selft	   namevalueR   (    (    s   build.pyt   __init__
   s    (   t   __name__t
   __module__R   (    (    (    s   build.pyR   	   s   c         C   sŒ   t  | ƒ t j p
 t d ‚ t  | ƒ t j oX t i | ƒ } | d  j o, |  i | t ƒ  ƒ |  _ t i	 | |  ƒ qˆ | i |  _ n d  S(   Ns   deset usage error(
   t   typet   tuplet   AssertionErrort   dunivt	   get_desett   NoneR   t   sett   implt	   add_deset(   R   R   t   uset(    (    s   build.pyR      s    c         C   s
   |  i  i S(   N(   R   R   (   R   (    (    s   build.pyR      s    c         C   s
   |  i  i S(   N(   R   R   (   R   (    (    s   build.pyR      s    c         C   s
   |  i  i S(   N(   R   R   (   R   (    (    s   build.pyR      s    c         C   s`   t  | ƒ t j o# x | D] } |  i | ƒ q Wd  S|  | i |  i i <|  i i i | ƒ d  S(   N(   R
   t   listt   addt   propsR   R   R   (   R   t   xt   y(    (    s   build.pyR      s     c         C   s'   | i  |  i i =|  i i i | ƒ d  S(   N(   R   R   R   R   t   remove(   R   R   (    (    s   build.pyR   $   s    c         C   s   |  i  i i | ƒ S(   N(   R   R   t
   issuperset(   R   R   (    (    s   build.pyR   '   s    (    (
   R   R	   R   R   R   R   R   R   R   R   (    (    (    s   build.pyR       s   							t   ditemc           B   sA   e  Z e d  „ Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   s   t  ƒ  |  _ d  S(   N(   t   dictR   (   R   t
   isUniverse(    (    s   build.pyR   ,   s    c         C   s   |  i  | i ƒ  S(   N(   R   R   (   R   R   (    (    s   build.pyt   __getitem__.   s    c         C   sT   |  i  i | ƒ o |  i  | } | i |  ƒ n t | | f ƒ } | i |  ƒ d  S(   N(   R   t   has_keyR   R    R   (   R   R   R   t   s(    (    s   build.pyt   __setitem__0   s
    c         C   s   |  i  | } | i |  ƒ d  S(   N(   R   R   (   R   R   R    (    (    s   build.pyt   __delitem__6   s    c         C   s   t  t |  ƒ t | ƒ ƒ d j S(   Ni    (   t   cmpt   id(   R   t   other(    (    s   build.pyt   __eq__9   s    c         C   s   t  t |  ƒ ƒ S(   s5   Support primitive id hashing to participate in sets()(   t   hashR$   (   R   (    (    s   build.pyt   __hash__;   s    (	   R   R	   t   FalseR   R   R!   R"   R&   R(   (    (    (    s   build.pyR   +   s   				t	   duniversec           B   s#   e  Z d  „  Z d „  Z d „  Z RS(   c         C   s   t  ƒ  |  _ d  S(   N(   R   t   desets(   R   (    (    s   build.pyR   @   s    c         C   s   | |  i  | <d  S(   N(   R+   (   R   R   t   theset(    (    s   build.pyR   B   s    c         C   s   |  i  i | d  ƒ S(   N(   R+   t   getR   (   R   R   (    (    s   build.pyR   D   s    (   R   R	   R   R   R   (    (    (    s   build.pyR*   ?   s   		t   isTargetc      	   C   s¢   |  d d j o d S|  d d j o d S|  d d j o d S|  d d j o d S|  d d j o d S|  d d j o d S|  d	 d
 j o d
 Sd  Sd  S(   Niþÿÿÿs   .cs   .hiüÿÿÿs   .cpps   .hpps   .os   .aiýÿÿÿs   .so(   R   (   t   fname(    (    s   build.pyt   getFileTypeL   s    c         C   sI   |  d } t  i i | ƒ |  d <|  d o t  i i | ƒ |  d <n d S(   s    Update update time and existancet   fileNamet
   fileExistst   fileModifiedN(   t   ost   patht   existst   getmtime(   t   fmemberR/   (    (    s   build.pyt   updateFileStatus^   s    
c         C   sê   d G|  GHt  d |  f ƒ i ƒ  } t | ƒ d j o) g  } | D] } | | q? ~ d } n> t | ƒ d j o t ƒ  } n t | ƒ d j  p
 t d ‚ |  | d <| d  j o t |  ƒ } n | d  j o | | d <n t | ƒ | S(   Nt   addFileR1   i   i    i   s   fileName is not unique!t   fileType(   R    R   t   lenR   R   R   R0   R9   (   t   nR;   t   memst   _[1]R   t   m(    (    s   build.pyR:   f   s    	)

c         C   ss   t  |  d ƒ } t | d <t |  d f t f ƒ } | | d <g  } | D] } | t  | ƒ qF ~ } | i | ƒ d  S(   Ns   .elfR.   t   dept   dependencyClub(   R:   t   TrueR    R   (   R=   t   sourcesR@   t   depsR?   R    t   msrc(    (    s   build.pyt   addExew   s    

'c         C   sp   t  |  ƒ } t | d <t |  d f t f ƒ } | | d <g  } | D] } | t  | ƒ qC ~ } | i | ƒ d  S(   NR.   RA   RB   (   R:   RC   R    R   (   R=   RD   R@   RE   R?   R    RF   (    (    s   build.pyt   addLib   s    

't   gccs   -std=c99s   -Winvalid-pchs   -Walls   -Wno-long-longs	   -pedantics   -I/usr/include/SDLs   bgCore.cs   crc32.cs   bgCore.hs   crc32.hs   bgDefines.hs   libbgTree.at	   bgTreeCmds   bgTree.ct   bgTests   bgTest.cc         C   sn  t  |  d ƒ } g  } d } xX | D]P } | i d ƒ } | | i d ƒ 7} | d d j o | i | ƒ d } q" q" Wt | ƒ d j o | i | ƒ n | i ƒ  g  } | D] } | | i d d ƒ q¯ ~ } g  } | D]$ } | | d | d i d	 ƒ f qÜ ~ } g  }	 | D]M } |	 | d g  }
 | d D]$ } t | ƒ d j o |
 | q3q3~
 f q~	 } | S(
   Nt   rt    s   
s   \iÿÿÿÿi    t   :i   t    (   t   opent   rstript   appendR<   t   closet   split(   R/   t   ft   lnst   lineR   R?   t   s1t   _[2]t   s2t   _[3]t   _[4]R   t   s3(    (    s   build.pyt   parseDepends•   s"     
-8ac   	      C   sš   t  |  ƒ } | GHx‚ | D]z } | d } t | ƒ } t | d f t f ƒ | d <| d } g  } | D] } | t | ƒ qe ~ } | d i | ƒ q Wd  S(   Ni    RA   RB   i   (   R^   R:   R    RC   R   (	   R/   RE   t   lnt   tt   dtgtt   srcsR?   R    t   msrcs(    (    s   build.pyt
   addDepends§   s     

'c         C   s«   |  d i  ƒ  } t i ƒ  } t d t i t d ƒ d t } | d | |  d f 7} | t i g  } | D] } | | d qj ~ d ƒ 7} | GHt i | ƒ t	 | ƒ d  S(   NRB   RO   s    -M -MF %s -MT %s R1   (
   R   R4   t   tmpnamt   cct   stringt   joint   cFlagst   includest   systemRd   (   t   targett   srct   tmpfilet   cmdR?   R   (    (    s   build.pyt	   ccDepends²   s    "5c         C   s   |  d i  ƒ  } t d t i t d ƒ d t } | d |  d 7} | t i g  } | D] } | | d qX ~ d ƒ 7} | GHt i | ƒ d  S(   NRB   RO   s    -o %s R1   (   R   Rf   Rg   Rh   Ri   Rj   R4   Rk   (   Rl   Rm   Ro   R?   R   (    (    s   build.pyt	   ccCompile¼   s    "5R;   s   .as   .elfi    c         C   sú   g  } t  d |  f ƒ i ƒ  D] } | | q ~ } t | ƒ d j o d  Sg  } t  d |  f ƒ i ƒ  D] } | | qh ~ d } | i i d ƒ p d  Sx) | d i ƒ  D] } d | | d GHq« Wx- | d i ƒ  D] } t | d | d ƒ q× Wd  S(   NR1   i    RB   RO   i   (   R    R   R<   R   R   t   PrintDepLevel(   t   filenamet   levelR?   R   t   asetRY   t   tgtRA   (    (    s   build.pyRr   Î   s    37  R1   s   : (    (    (   s   fileTypes   .a(   s   fileTypes   .elf(   R4   Rg   R   t
   exeTargetst
   libTargetsR    R   R*   R   RC   t   targetsR0   R9   R   R:   RG   RH   t   isPosixRf   Ri   Rj   t   BGT_SRCR^   Rd   Rp   Rq   R   Rl   Rr   (    (    (    s   build.pyt   <module>   sL   		#
								
	
) )  