
<4Ic           @   sm  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 Z d  d l Z d  d l Z d  d l m	 Z	 m
 Z
 m Z d  d l m Z d  d l m Z m Z m Z m Z d  d l Td  d l Z e j d  Z d   Z d dD d	     YZ d
   Z d e j f d     YZ d   Z d   Z d   Z d   Z d   Z d   Z d   Z  d   Z! d   Z" d   Z# d   Z$ d   Z% d   Z& d   Z' d   Z( d   Z) d   Z* d   Z+ i
 d d  6d! d" 6d! d# 6d$ d% 6d$ d& 6d' d( 6d) d* 6d+ d, 6d- d. 6d/ d0 6Z, d1   Z- e d2 d3  e  e d4 d5  e  e d6 d7 d8 d9 d: d;  e  e d6 d7  e  e d<  e  e d8 d9 d: d;  e  e d<  e  e d6 d7 d8 d9 d: d;  e   e d= d>  e   e d: d;  e!  e d= d>  e!  e d2 d3  e"  e d?  e"  e d2 d3  e#  e e$  e d6 d: d8  e$  e d<  e$  e d2 d3  e%  e d@  e%  e dA  e&  e dB d@  e&  e d6 d: d8  e'  e dC  e'  e d6 d: d8  e(  e d>  e(  e e)  e d>  e)  e e*  e dA  e+  e d<  e+  e e-  e d2 d3  e-  e d5 d4  e-  d S(E   iN(   t   errort   debugt   warn(   t   md5(   t   taskgent   aftert   beforet   feature(   t   *s   \d+\.\d+(\.?\d+)*c         C   s}   |  j  } t j d |  } | ro t j |  } | ro | j d  | | <|  j d d d | |  | | Sn  t d  d  S(   Ns   %s -dumpversioni    t   compilert   versioni   s(   could not determine the compiler version(   t   envt   Utilst
   cmd_outputt   get_version_ret   searcht   groupt   check_messageR   (   t   conft   cct   version_vart   vt   outputt   match(    (    st   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Tools/ccroot.pyt   get_cc_version   s    	t   DEBUG_LEVELSc           B   s;   e  Z d  Z d Z d Z d Z d Z e e e e e g Z RS(   t
   ultradebugR   t   releaset	   optimizedt   custom(   t   __name__t
   __module__t
   ULTRADEBUGt   DEBUGt   RELEASEt	   OPTIMIZEDt   CUSTOMt   ALL(    (    (    st   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Tools/ccroot.pyR      s   c         C   sL  t  d  g  } g  } g  } x |  j D]} t j d |  j d d |  j  } | j | |  j  t j r t  d t	 |  t	 | j
  t	 | j  f  t  d t	 |  t	 | j  f  n  xI | j
 D]> } t |  | k r q n  | j t |   | j |  q Wx- | j D]" } | | k r| j |  qqWq& W| | j f S(   Ns5   ccroot: _scan_preprocessor(self, node, env, path_lst)t	   nodepathst	   INC_PATHSt   definess   deps: nodes found for %s: %s %ss   deps: deps found for %s: %s(   R   t   inputst   preproct   c_parserR   R(   t   startt   Logst   verboset   strt   nodest   namest   depst   idt   append(   t   selft	   all_nodest	   all_namest   seent   nodet   gruikt   x(    (    st   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Tools/ccroot.pyt   scan   s&    
"	/& t   ccroot_abstractc           B   s   e  Z d    Z RS(   c         O   sG   t  j j |  | |  t |  d k rC |  j j d | d  n  d  S(   Ni   t   c(   t   TaskGent   task_gent   __init__t   lent   featuresR4   (   R5   t   kt   kw(    (    st   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Tools/ccroot.pyRA   1   s    (   R   R   RA   (    (    (    st   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Tools/ccroot.pyR=   0   s   c         C   sS   t  j |  d d d d d d d d d d d d d g  d	 g  d
 i  d g  d d  d  S(   Nt   includest    R(   t   rpathst   uselibt   uselib_localt   add_objectst   p_flag_varst   p_type_varst   scanner_definest   compiled_taskst	   link_task(   R   t	   def_attrst   None(   R5   (    (    st   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Tools/ccroot.pyt
   default_cc5   s    c         C   s   d } x/ |  j  D]$ } | d
 k r | j d  } q q W|  j | d } | sX d } n  |  j } | j d  } | d | d	 !| | | d	 S(   Nt   programt   cshlibt
   cstaticlibR>   t   _PATTERNs   %st   /i    i   (   RU   RV   (   RC   t   lstripR   t   targett   rfind(   R5   t   tpR;   t   patternt   nameRD   (    (    st   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Tools/ccroot.pyt   get_target_name7   s     		c         C   sT   d |  j  k rP |  j s. t j d |    n  |  j sP t j d |    qP n  d  S(   Nt   objectss    no source files specified for %ss   no target for %s(   RC   t   sourceR   t   WafErrorRZ   (   R5   (    (    st   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Tools/ccroot.pyt   apply_verifA   s
    		c   	      C   s   |  j  j d  } |  j } | s% d  S|  j d j } | d |  j  } | d | d } | } |  j d j |  j  } t j } | j	 t
 j j | |  | d |  j | j t
 j j | |  |  | j t
 j j | |  |  d  S(   Nt   .i    R   (   t   vnumt   splitt   install_patht   outputsR^   t   abspathR   t   Buildt   bldt
   install_ast   ost   patht   joint
   symlink_as(	   R5   t   numsRn   t   libnamet   name3t   name2t   name1t   filenameRk   (    (    st   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Tools/ccroot.pyt   install_shlibG   s    	 	(c         C   s   d |  _  d |  _ d  S(   Ns   ${PREFIX}/bini  (   t   default_install_patht   default_chmod(   R5   (    (    st   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Tools/ccroot.pyt   vars_target_cprogramT   s    	c         C   s   d |  _  d  S(   Ns   ${PREFIX}/lib(   Rx   (   R5   (    (    st   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Tools/ccroot.pyt   vars_target_cstaticlibW   s    c         C   s    t  j s d  S|  j |  j _ d  S(   N(   t   Optionst
   is_installRg   RP   (   R5   (    (    st   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Tools/ccroot.pyt   install_target_cstaticlibY   s    	 c         C   sF   t  |  d d  rB t j d k rB |  j } |  j | _ t | _ n  d  S(   NRe   RG   t   win32(   t   getattrt   syst   platformRP   Re   Rw   t   install(   R5   t   tsk(    (    st   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Tools/ccroot.pyt   install_target_cshlib\   s    !	c         C   s  g  } xR |  j  |  j  D]> } x5 |  j d | D]" } | | k r1 | j |  q1 q1 Wq Wt j r x0 t j D]" } | | k rn | j |  qn qn Wn  xh |  j  |  j  D]T } | | k r |  j j d |  t j s t	 j
 j |  r | j |  q q q Wt j } g  } xr | D]j } d  } t	 j
 j |  rZt j rlt j j j |  } qln |  j
 j |  } | r| j |  qqW|  j d c | 7<d  S(   Nt   CPPPATH_t   CPPPATHR'   (   t   to_listRI   R   R4   R*   t   go_absolutet   standard_includesRF   t   prepend_valueRm   Rn   t   isabsRj   Rk   RR   t   roott   find_dir(   R5   t   lstt   libRn   t   treet   inc_lstR9   (    (    st   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Tools/ccroot.pyt   apply_incpathsa   s2    			c         C   s   x |  j  D] } | d k r" q
 n  | j d  } |  j | d } | r_ |  j d | |  _ n  xJ |  j D]? } d | | f } |  j | } | ri |  j j | |  qi qi Wq
 Wd  S(	   Nt   cprogramRV   RU   R>   t   _USELIBt    s   %s_%s(   R   s
   cstaticlibs   cshlib(   RC   RY   R   RI   RM   t   append_value(   R5   R;   t   stt   vart   compvart   value(    (    st   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Tools/ccroot.pyt   apply_type_vars|   s      c         C   s   t  |  d d   } | sp d |  j k r0 d } n d |  j k rH d } n d } t  |  d d   rp d | } qp n  |  j |  } g  |  j D] } | j d	 ^ q } | j |  | j |  j j	 t
 |     |  j | _ | |  _ d  S(
   Nt   linkRV   t   ar_link_statict   cxxt   cxx_linkt   cc_linkRe   t   vnum_i    (   R   RR   RC   t   create_taskRO   Rh   t
   set_inputst   set_outputsRn   t   find_or_declareR_   t   chmodRP   (   R5   R   t   linktaskt   tRh   (    (    st   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Tools/ccroot.pyt
   apply_link   s     	 	 #c         C   s  |  j  } |  j |  j  } g  } |  j |  j  } xv| r| j d  } | | k r^ q7 n  |  j |  } | s t j d | |  j f   n  t	 | d d   r | j | j  } x- | D]" } | | k r | j |  q q Wn  | j   | j |  d | j k sd | j k r1| j d | j  n% d | j k rV| j d | j  n  | j j |  j   }	 |	 | d	 k r| j d	 |	  n  | j d  k	 r|  j j | j  t	 |  j d
 g   }
 |
 | j j |  j _ n  | j | j  } x- | D]% } | | k rqn  | g | } qWt	 | d d   r7 |  j  d } xg |  j | j  D]P } | j j |  } | st j d | j | f   n  |  j  j d |  qRWq7 q7 WxS | D]K } xB |  j D]7 } |  j  | d | } | r|  j  j | |  qqWqWd  S(   Ni    s<   object '%s' was not found in uselib_local (required by '%s')RJ   RU   R   t   LIBRV   t	   STATICLIBt   LIBPATHt	   dep_nodest   export_incdirst
   CPPPATH_STs.   object %s: invalid folder %s in export_incdirsR'   t   _(   R   R   RI   RJ   t   popt   name_to_objR   Rb   R^   R   RR   R4   t   postRC   R   RZ   Rn   t   bldpathR   RP   t   set_run_afterRh   R   R   R   t   append_uniqueRL   (   R5   R   RI   R8   R1   R;   t   yR   t   ut   tmp_pathR   t   morelibsR   t
   cpppath_stR9   t   val(    (    st   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Tools/ccroot.pyt   apply_lib_vars   s\    		
    c         C   s  g  } |  j  |  j  } x | r| d } | | k rG | d } q n  |  j |  } | s{ t j d | |  j f   n  | j r d } | j  | j  } | j   x3 | D]+ } | | k r q n  d } | g | } q W| r q q n  | j   | j |  |  j	 j
 | j 7_
 q Wd  S(   Ni    i   sH   object '%s' was not found in uselib_local (required by add_objects '%s')(   R   RK   R   R   Rb   R^   t   reverseR   R4   RP   R)   t	   out_nodes(   R5   R8   R1   R;   R   t   addedR   R   (    (    st   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Tools/ccroot.pyt   apply_objdeps   s0    	

	
  	
c   
      C   s  |  j  } | d } | d } | d } | d } | d } | j } | d re | j d | d  n  x2 | d	 D]& } | rp | rp | d | |  qp qp Wx4 | d
 D]( } | d | |  | d | |  q W| d r | j d | d  g  | d D] } | | ^ q }	 | d |	  n  | d sX| d s>| d rX| j d | d  qXn  | d g  | d D] } | | ^ qi d  S(   Nt   LIB_STt   STATICLIB_STt
   LIBPATH_STt   STATICLIBPATH_STt   RPATH_STt
   FULLSTATICt	   LINKFLAGSt   FULLSTATIC_MARKERt   RPATHR   R   t   STATICLIB_MARKERR   t   SHLIB_MARKER(   R   R   R   (
   R5   R   t   lib_stt   staticlib_stt
   libpath_stt   staticlibpath_stt   rpath_stt   appt   iRD   (    (    st   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Tools/ccroot.pyt   apply_obj_vars   s.    	




	

!
c         C   s   t  j d k r t  j d k r y |  j j d  } Wn t k
 rG q Xy |  j } Wn0 t k
 r |  j j d j d | d } n X|  j j j	 |  j j d j
 j |   |  j j d d |  n  d  S(   Nt   darwinR   Rd   i    R   s   -Wl,-h,(   R   R   Re   Rf   t   AttributeErrort   sonameRP   Rh   R^   R4   t   parentR   R   R   (   R5   Rq   Rs   (    (    st   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Tools/ccroot.pyt
   apply_vnum   s      #)c         C   sP   t  |  d  s d  Sx6 |  j D]+ } |  j j |  } |  j j j |  q Wd  S(   Nt	   obj_files(   t   hasattrR   Rn   t   find_resourceRP   R)   R4   (   R5   R;   R9   (    (    st   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Tools/ccroot.pyt   process_obj_files   s
     c         C   sQ   t  |  d  s g  |  _ n  d |  j k r= |  j j d  n  |  j j |  d  S(   NR   R   (   R   R   t   methsR4   (   R5   t   file(    (    st   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Tools/ccroot.pyt   add_obj_file   s
      c         C   s>   g  |  _  |  j  j } x" |  j D] } | | j d  q Wd  S(   Ni    (   R   R4   RO   Rh   (   R5   R   R   (    (    st   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Tools/ccroot.pyt   make_objects_available  s    	 t   CXXFLAGSt   cxxflagt   CCFLAGSt   cflagt   ccflagR   t   linkflagt   ldflagR   R   R   t   libpathR   t	   staticlibt   STATICLIBPATHt   staticlibpathR   t   rpathc         C   s|   xu |  j  j   D]d } | j   } | d d k r? | d  } n  t j | d   r |  j j t | t |  |   q q Wd  S(   Nit   s(	   t   __dict__t   keyst   lowert   c_attrst   getRR   R   R   R   (   R5   R;   R   (    (    st   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Tools/ccroot.pyt   add_extra_flags  s    R   R   t   init_cct   init_cxxR   t   dprogramRV   t
   dstaticlibRU   t   dshlibt
   apply_coreR   R   R   R   R`   R   R   (    (.   Rm   R   t   reR?   R   R*   R-   Rj   R|   R    R   R   R   R   R   R   R   t	   Constantst   config_ct   compileR   R   R   R<   R@   R=   RS   R_   Rc   Rw   Rz   R{   R~   R   R   R   R   R   R   R   R   R   R   R   R   R   (    (    (    st   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Tools/ccroot.pyt   <module>   s   $H"
	
			
										+						L	



