;ò |oPFc@sµdZdkZdkZdkZdkZdkZdkZdkZdkZdk Z dk Z dkl Z l Z l Z lZdiƒadfd„ƒYZdfd„ƒYZdS(sDependency tree holderN(sdebugserrorsfatalswarningsRm_root m_srcnode m_bldnode m_tstamp_variants m_depends_on m_deps_tstamp m_raw_depssBuildDTOcBs)tZdZd„Zd„Zd„ZRS(s%holds the data to store using cPicklecCsdS(N((sself((sL/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Build.pys__init__scCs.x'tD]}t||t||ƒƒqWdS(N(s g_saved_attrssassetattrsselfsgetattrsbdobj(sselfsbdobjsa((sL/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Build.pysinitscCs.x'tD]}t||t||ƒƒqWdS(N(s g_saved_attrssassetattrsbdobjsgetattrsself(sselfsbdobjsa((sL/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Build.pys update_builds(s__name__s __module__s__doc__s__init__sinits update_build(((sL/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Build.pysBuildDTOs   sBuildcBsÚtZdZd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z d „Z d „Z d „Z ed „Zd „Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zdd„ZRS(sholds the dependency treecCsÊ|iƒh|_|t_d|_t|_g|_h|_ h|_ g|_ h|_ g|_ xVddgD]H}x?diƒD]1}t||ƒ}||j oh||s ->s.Nssrcnode is %s and srcdir %ssbuild(ssrcdirsblddirsosspathsabspathsfatalsstrsOSErrorsisabssUtilss join_pathsselfsm_bdirs isconfigures_loads m_srcnodes m_curdirnodesensure_dir_node_from_pathsdebugs m_bldnodesmakedirs(sselfssrcdirsblddirs isconfigure((sL/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Build.pys load_dirss02*"       cCs¨td|dƒti|ƒ}|i}xt|D]l}| oq0n|djoq0n|i |t ƒ}| o#t i ||ƒ}|i |ƒn|}q0W|SdS(sKreturn a node corresponding to an absolute path, creates nodes if necessarysensure_dir_node_from_path %ssbuilds.N(sdebugsabspathsUtilss split_pathsplstsselfsm_rootscurnodesdirnamesget_dirsNonesfoundsNodes append_dir(sselfsabspathsplstscurnodesfoundsdirname((sL/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Build.pysensure_dir_node_from_path,s    c CsÒ||ijodSn|i||iƒ|iƒƒ}h|_x|D]}||i|i s (d) s-> s s [%s,%s] s s (b) i(s printspacesscountsaccusnodesm_namesfilesschildsselfsm_tstamp_variantssvariantsvarsstrsParamssvsigsm_build_lookupsvaluessdirssdirsrecu(snodescountsvariantsvarschildsaccusdir(sselfs printspacessrecu(sL/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Build.pysrecuãs4     /   / sCYANissize is N(s printspacessrecusParamsspprintsselfsm_rootsstrs size_subtree(sselfs printspacessrecu((sselfs printspacessrecusL/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Build.pysdumpÞs  $cCs>|iiti|ƒƒ}|ig|i|_||_dS(N(sselfs m_curdirnodesensure_node_from_lstsUtilss split_pathsdirsnodespushed(sselfsdirsnode((sL/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Build.pyspushdirscCs|iidƒ|_dS(Ni(sselfspushedspops m_curdirnode(sself((sL/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Build.pyspopdirscCsU| otdƒtSny|i|SWn%tj otd|ƒtSnXdS(Ns env_of_name called with no name!sno such environment(snameserrorsNonesselfs m_allenvssKeyError(sselfsname((sL/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Build.pys env_of_names scCstiƒtii|ƒdS(N(sObjectsflushsTasksg_taskss add_groupsname(sselfsname((sL/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Build.pys add_group!s (s__name__s __module__s__doc__s__init__s _init_datas_loads_storessavescleanscompilesinstalls add_subdirss create_objs load_envssNones load_dirssensure_dir_node_from_pathsrescans needs_rescans scan_src_paths scan_pathsdumpspushdirspopdirs env_of_names add_group(((sL/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Build.pysBuilds.  <    #    7 &  9 5 ( 1   (s__doc__sosscPicklesParamssRunnersObjectsNodesTasks ScriptingsUtilss Environmentsdebugserrorsfatalswarningssplits g_saved_attrssBuildDTOsBuild(sNodescPicklesTasksRunnersUtilssObjects EnvironmentswarningsParamssBuildserrorsdebugsfatalsoss ScriptingsBuildDTO((sL/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Build.pys?sH