;ň fŢ@c@sedkZdkZdkZdklZdklZdklZl Z deifd„ƒYZ dS(N(sutil(s build_ext(s newer_groupsnewersBuildExtcBsGtZdZeideiƒZd„Zd„Zd„Z d„Z RS(Ns build_exts-^\s*#\s*include\s*("|<)(?P[^">]+?)("|>)c Cst|ƒiƒ}tii|ƒ}tii|ƒg} | i |iƒ|i i |ƒ}xś|oŽti|idƒƒ}xt| D]l}tiitii||ƒƒ}tii|ƒo ||jo%|i|ƒ|i|||ƒPq„q„W|i i ||iƒƒ}q^WdSdS(Nsfile(sopensfilenamesreadssourcesosspathsbasenamesdirnames include_dirssextendsextsselfs _include_ressearchsmatchsutils convert_pathsgroupsbasesnormpathsjoinsincludesisfilesincludessappends_find_includessend( sselfsextsfilenamesincludessincludessourcesbasesbasenamesmatchs include_dirs((sR/mnt/gmirror/ports/textproc/py-4suite/work/4Suite-1.0b1/Ft/Lib/DistExt/BuildExt.pys_find_includes s"!    cCsr|i|iƒg}xQ|iD]F}|i|ƒ}x.|D]&\}}|i |ƒ|i |ƒq<Wq W|SdS(N( sselfscheck_extensions_lists extensionss filenamessexts prep_builds all_sourcesssourcesincludessappendsextend(sselfs all_sourcessincludesssourcesexts filenames((sR/mnt/gmirror/ports/textproc/py-4suite/work/4Suite-1.0b1/Ft/Lib/DistExt/BuildExt.pysget_source_files s   cCsWg}xF|iD];}g}|i|ti|ƒ|ƒ|i ||fƒqW|SdS(N( sresultsextssourcesssourcesincludessselfs_find_includessutils convert_pathsappend(sselfsextsincludesssourcesresult((sR/mnt/gmirror/ports/textproc/py-4suite/work/4Suite-1.0b1/Ft/Lib/DistExt/BuildExt.pys prep_build,s cCső|i|iƒ}tii|i|i |ƒƒ} |i |ƒ}g}x.|D]&\} } |i| ƒ|i| ƒqOW|ipt|| dƒ o|id|iƒdSn|id|iƒg}|ipg}|i}x!|iD]}|i|fƒqńWg}x;|D]3\} } h}tidjo |i } n%tii|i tii"| ƒƒ} tidjo| |d