;ò |oPFc@sdZdkZdkZdkZdkZdkZdkZdkZdkZdk Z dk Z dk Z dk Z dk Z dkZdk lZlZlZdadZddgZddd gZd „Zd „Zeed „Zd fd„ƒYZdefd„ƒYZdefd„ƒYZdefd„ƒYZdefd„ƒYZdefd„ƒYZdefd„ƒYZ defd„ƒYZ!defd„ƒYZ"defd „ƒYZ#d!efd"„ƒYZ$d#efd$„ƒYZ%d%fd&„ƒYZ&d'fd(„ƒYZ'dS()sConfiguration systemN(serrorsfatalswarningi(is /usr/include/s/usr/local/include/s /usr/lib/s/usr/local/lib/s/libcCsot|ƒtijo|iƒ}n|}x8|D]0}tii tii ||ƒƒo|Sq3q3WdSdS(sËfind a file in a list of paths @param filename: name of the file to search for @param path_list: list of directories to search @return: the first occurrence filename or '' if filename could not be found sN( stypes path_liststypess StringTypessplitslsts directorysosspathsexistssjoinsfilename(sfilenames path_listslsts directory((sP/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Configure.pys find_files" c Cs¦dk}dk} t|ƒtijo|iƒ}n|}x]|D]U}xL|i |ƒD];\}}}x)|D]!}| i||ƒo|SqqqqWq[WqEWdSdS(sÙfind a file in a list of paths using fnmatch @param filename: name of the file to search for @param path_list: list of directories to search @return: the first occurrence filename or '' if filename could not be found Ns(sossfnmatchstypes path_liststypess StringTypessplitslsts directoryswalkspathssubdirssfilessnamesfilename( sfilenames path_listsfilessnamesosssubdirss directoryslstspathsfnmatch((sP/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Configure.pys find_file_ext(scCs$| o g}n't|ƒtijo|iƒ}n|o:||o ||Sqy|tijoti|Sqyn|do|d7}n| otiditi ƒ}nxb|D]Z}ti i ti i||ƒƒo2ti i||ƒ}|o||| sint main(){%s return 0;} s0int main(){ void *p; p=(void*)(%s); return 0; } s function %sssoption(sretsselfsenvs oldlibpathsoldlibscodesappends header_codesheaderssheaders custom_codesfunctionslibss lib_pathss check_datasobjsjoins include_pathssincludessintsconfs run_checks check_messages add_definesdefine(sselfsoldlibscodesobjsretsheaders oldlibpath((sP/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Configure.pysrun_testÓs0        #  (s__name__s __module__s__init__serrorsvalidates run_cachesrun_test(((sP/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Configure.pysfunction_enumerator·s     slibrary_enumeratorcBs;tZdZd„Zd„Zd„Zd„Zd„ZRS(s!find a library in a list of pathscCsJti||ƒd|_g|_d|_d|_d|_d|_ dS(Nssint main() {return 0;}ii( senumerator_bases__init__sselfsconfsnamespathscodesuselibsnosystems want_message(sselfsconf((sP/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Configure.pys__init__øs     cCs:d|i}|io|d|i7}nt|ƒdS(Nslibrary %s cannot be founds %s(sselfsnameserrmsgsmessagesfatal(sselfserrmsg((sP/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Configure.pyserrors  cCsB|io'|iid|id|d|ƒn|i|ƒdS(Nslibrary %s (cached)ssoption(sselfs want_messagesconfs check_messagesnamesretvals update_env(sselfsretval((sP/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Configure.pys run_caches 'cCs:|i o t|_n|i o|it7_ndS(N(sselfspaths g_stdlibpathsnosystem(sself((sP/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Configure.pysvalidate s   cCsæd}|id|i|id}t||iƒ}| o5|id|i|id}t||iƒ}n|io'|iid|id|d|ƒn|i o/|i|id|i <||id |i /dev/nulliserrors_s config-tool ssoption(sretvalsfoundsosspopensselfsbinarystestsskeyssclosesrets ValueErrorsflagsuselibsvarscmdsreadsstrips update_envsconfs add_definesdefines check_message(sselfscmdsretsflagsvarsfoundsretval((sP/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Configure.pysrun_testrs$/  & #(s__name__s __module__s__init__serrorsvalidates run_cachesrun_test(((sP/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Configure.pyscfgtool_configuratorNs   spkgconfig_configuratorcBs;tZdZd„Zd„Zd„Zd„Zd„ZRS(sä pkgconfig_configurator is a frontend to pkg-config variables: - name: name of the .pc file (has to be set at least) - version: atleast-version to check for - path: override the pkgconfig path (PKG_CONFIG_PATH) - uselib: name that could be used in tasks with obj.uselib if not set uselib = upper(name) - define: name that will be used in config.h if not set define = HAVE_+uselib - variables: list of addional variables to be checked for, for example variables='prefix libdir' cCsSti||ƒd|_d|_d|_d|_d|_d|_ g|_ dS(Ns( sconfigurator_bases__init__sselfsconfsnamesversionspathsuselibsdefinesbinarys variables(sselfsconf((sP/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Configure.pys__init__‘s      cCs^|iod|i|if}nd|i}|io|d|i7}nt|ƒdS(Nspkg-config cannot find %s >= %sspkg-config cannot find %ss %s(sselfsversionsnameserrmsgsmessagesfatal(sselfserrmsg((sP/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Configure.pyserror£s    cCsD|i o|iiƒ|_n|i od|i|_ndS(NsHAVE_(sselfsuselibsnamesuppersdefine(sself((sP/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Configure.pysvalidate¬s  cCs¥|io0|iid|i|ifd|ddƒn$|iid|id|ddƒ|o|ii|idƒn|ii|idƒ|i|ƒdS(Nspackage %s >= %s (cached)ssoptionspackage %s (cached)ii( sselfsversionsconfs check_messagesnamesretvals add_definesdefines update_env(sselfsretval((sP/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Configure.pys run_cache²s 0#cCs•|i} |i}|i}t|iƒti jot |iƒi ƒ|_n| o d}n| od| } nd| |f}h} yÎ|iogtid||i|ifƒiƒ}|iid|i|ifd| ƒ|o td‚qUnUtid||ifƒiƒ}|iid|id| ƒ|o td‚ntid ||ifƒiƒiƒg| d |WqÊ| d|i|ƒqÊWx¶|iD]«} d}t| ƒti(jo:t)| ƒdjo| do| d}n| d} n| o|d| i*ƒ}ntid|| |ifƒiƒiƒ| |= %ssserrors package %ss%s --cflags %ssCCFLAGS_s CXXFLAGS_s%s --libs-only-l %ssLIB_is%s --libs-only-L %ssLIBPATH_s%s --libs-only-other %ss LINKFLAGS_s.laiis_s%s --variable=%s %s(.sselfspathspkgpathsbinaryspkgbinsuselibstypes variablesstypess StringTypesstrssplitspkgcomsretvalsversionsosspopensnamesclosesretsconfs check_messages ValueErrorsreadsstripsmodlibssitemsappendsmodpathssmodothersendswithslibtool_configs la_configsget_libs_only_Ls libs_only_Lsget_libs_only_ls libs_only_lsentrysvariables var_defnamesListTypeslensuppers add_definesdefines update_env(sselfspkgcoms var_defnamesuselibsretspkgbinsmodpathssmodothersmodlibssvariables libs_only_lspkgpaths la_configsretvalsitemsentrys libs_only_L((sP/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Configure.pysrun_test½s€     ('" 33...  ! 3(s__name__s __module__s__doc__s__init__serrorsvalidates run_cachesrun_test(((sP/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Configure.pyspkgconfig_configuratorˆs    stest_configuratorcBs5tZd„Zd„Zd„Zd„Zd„ZRS(NcCsJti||ƒd|_d|_d|_d|_d|_d|_ dS(Nsi( sconfigurator_bases__init__sselfsconfsnamescodesflagssdefinesuselibs want_message(sselfsconf((sP/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Configure.pys__init__s     cCs3d}|io|d|i7}nt|ƒdS(Nstest program would not runs %s(serrmsgsselfsmessagesfatal(sselfserrmsg((sP/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Configure.pyserrors cCs2|io$|iidddd|dƒndS(Nscustom code (cached)sisoptionsresult(sselfs want_messagesconfs check_messagesretval(sselfsretval((sP/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Configure.pys run_cache!s cCs|i otdƒndS(Ns0test configurator needs code to compile and run!(sselfscodesfatal(sself((sP/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Configure.pysvalidate%s cCs¡tƒ}|i|_|i|_|i|_|i|_d|_|ii |ƒ}|i o;|o|d}nd}|ii dd|d|ƒn|SdS(Nisresultss custom codesoption(s check_datasobjsselfscodesenvsuselibsflagssexecutesconfs run_checksrets want_messagesdatas check_message(sselfsdatasobjsret((sP/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Configure.pysrun_test)s        (s__name__s __module__s__init__serrors run_cachesvalidatesrun_test(((sP/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Configure.pystest_configurators    slibrary_configuratorcBs5tZd„Zd„Zd„Zd„Zd„ZRS(NcCsAti||ƒd|_g|_d|_d|_d|_dS(Nssint main(){ return 0; }( sconfigurator_bases__init__sselfsconfsnamespathsdefinesuselibscode(sselfsconf((sP/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Configure.pys__init__:s     cCs:d|i}|io|d|i7}nt|ƒdS(Nslibrary %s cannot be linkeds %s(sselfsnameserrmsgsmessagesfatal(sselfserrmsg((sP/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Configure.pyserrorDs  cCse|iid|id|ƒ|o'|i|ƒ|ii|idƒn|ii|idƒdS(Nslibrary %s (cached)sii(sselfsconfs check_messagesnamesretvals update_envs add_definesdefine(sselfsretval((sP/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Configure.pys run_cacheIs  cCs—|i odddg|_n|i o|iiƒ|_n|i od|i|_n|i otdƒn|i otdƒndS(Ns /usr/lib/s/usr/local/libs/libsHAVE_suselib is not defineds,library enumerator must have code to compile(sselfspathsuselibsnamesuppersdefinesfatalscode(sself((sP/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Configure.pysvalidateQs     cCs«|id}|id}|iiƒ}|i|_d|_|i |_ |i|_|i ƒ}|o||id|i  int main(){return 0;} (sselfsuselibsnamesuppersdefinescode(sself((sP/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Configure.pysvalidatežs     cCse|iid|id|ƒ|i|ƒ|o|ii|idƒn|ii|idƒdS(Nsframework %s (cached)sii(sselfsconfs check_messagesnamesretvals update_envs add_definesdefine(sselfsretval((sP/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Configure.pys run_cache¨s  c Csfg} g}g}| |id7} ||id7}||id7}g}|io!|id|i|ifƒn|id|i|ifƒ|id|i ƒg}|d|ig7}|gi}|i D]}|d|ƒqÔ~7}gi}|i D]}|d|ƒq~} |iiƒ} | dc|7 s#include <%s/%s.h> sint main(){%s return 0;} s -frameworks-F%ss s s framework %sssoptions LINKFLAGS_sCCFLAGS_s CXXFLAGS_(s oldlkflagss oldccflagss oldcxxflagssselfsenvscodes remove_dot_hsappendsnames custom_codes linkflagss_[1]spathspscflagsscopysmyenvs check_datasobjsjoinsuselibsflagssintsconfs run_checksrets check_messages add_definesdefinesvals update_env( sselfscodes oldccflagssvals linkflagssrets_[1]sps oldcxxflagsscflagssobjs oldlkflagssmyenv((sP/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Configure.pysrun_test°sH !2.   #    (s__name__s __module__s__init__serrorsvalidates run_cachesrun_test(((sP/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Configure.pysframework_configurator‹s   sheader_configuratorcBs5tZd„Zd„Zd„Zd„Zd„ZRS(NcCseti||ƒd|_g|_d|_d|_d|_d|_ g|_ g|_ d|_ dS(Nssint main() {return 0;}( sconfigurator_bases__init__sselfsconfsnamespaths header_codes custom_codescodesdefineslibss lib_pathssuselib(sselfsconf((sP/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Configure.pys__init__ãs        cCs:d|i}|io|d|i7}nt|ƒdS(Ns&header %s cannot be found via compilers %s(sselfsnameserrmsgsmessagesfatal(sselfserrmsg((sP/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Configure.pyserroròs  cCs­|i om|ioAtidtiƒ}ddi|i|iƒƒi ƒ|_qx|i od|i |_qxn|i o d|_ n|i ot dƒndS(Ns[/\\.-]sHAVE_s_s$#include <%s> int main(){return 0;} sno define given( sselfsdefinesnamesrescompilesMsregsjoinssplitsuppersuselibscodesfatal(sselfsreg((sP/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Configure.pysvalidate÷s  ,    cCse|iid|id|ƒ|o'|i|ƒ|ii|idƒn|ii|idƒdS(Nsheader %s (cached)sii(sselfsconfs check_messagesnamesretvalues update_envs add_definesdefine(sselfsretvalue((sP/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Configure.pys run_caches  cCsh}|id}|id}|iok|iiƒ}|i |_ d|_ |i |_ |i|_|i ƒ}|o||id|i sint main(){%s return 0;} s header %sssoption(sretsselfsenvs oldlibpathsoldlibsuselibsconfscreate_header_enumeratorstestsnames want_messagespathsrunscodesappends header_codes custom_codeslibss lib_pathss check_datasobjsjoinsincludessints run_checks check_messages add_definesdefinesval(sselfsoldlibs oldlibpathsobjsvalsretscodestest((sP/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Configure.pysrun_test sH             #  (s__name__s __module__s__init__serrorsvalidates run_cachesrun_test(((sP/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Configure.pysheader_configuratorâs     s check_datacBstZd„ZRS(NcCspd|_d|_d|_d|_d|_d|_g|_g|_d|_ d|_ d|_ d|_ dS(Nsi( sselfsenvscodesflagssuselibsincludess function_nameslibslibpathsdefines header_namesexecutesoptions(sself((sP/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Configure.pys__init__Cs           (s__name__s __module__s__init__(((sP/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Configure.pys check_dataBss ConfigurecBs1tZeddd„Zd„Zed„Zed„Zd„Zged„Zdd„Z ddddd „Z d „Z d „Z d dd „Z d„Zd„Zddd„Zd„Zdd„Zdd„Zd„Zd„Zd„Zeed„Zd„Zddded„Zd„Zd„ZRS(NscCsüt|_d|_||_||_h|_h|_ d|_ t i ƒ|_ |idƒh|_d|_yKttitidd|iƒƒdƒ}ti|ƒ|_|iƒWnnXd|_d|_d|_d|_d|_g|_ dS(Nssconfig.hsdefaults .wafcaches runs-%s.txtsrbi(!sNonesselfsenvs m_envnamesblddirsm_blddirssrcdirsm_srcdirs m_allenvssdefiness configheadersossgetcwdscwdssetenvs m_cache_tableslastprogsopensUtilss join_pathsParamss g_homedirs_cache_platformsfilescPicklesloadscloses_as_bs_cs_quietshashsfiles(sselfsenvsblddirssrcdirsfile((sP/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Configure.pys__init__[s.          +     cCs||i|<|SdS(s!add a new environment called nameN(senvsselfs m_allenvssname(sselfsnamesenv((sP/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Configure.pys set_env_name}s cCsYy.|i|}|otd|ƒn|SWn$tiƒ}||i|<|SnXdS(s#retrieve an environment called names3The environment %s may have been configured alreadyN(sselfs m_allenvssnamesenvsfromenvswarnings Environment(sselfsnamesfromenvsenv((sP/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Configure.pysretrieve‚s   c CsÜti|ƒ}t}|oti|ƒ}nx¢|D]š}yti ||ƒ\}}} Wnt d|ƒdSnXti|||| ƒ}|ot|i|ƒƒ}|iidhd|<d|<ƒq6W|SdS(sload a waf toolsno tool named '%s' foundistoolsstoolstooldirN(sUtilssto_listsinputslstsTruesretstooldirsisimps find_modulesfilesnamesdescserrors load_modulesmodulesintsdetectsselfsenvs append_value( sselfsinputstooldirsnamesisretslstsmodulesfilesdesc((sP/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Configure.pys check_tools )cCs|i|ƒ|_||_dS(s"enable the environment called nameN(sselfsretrievesnamesenvsenvname(sselfsname((sP/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Configure.pyssetenvscCs6t|i|||ƒ}|id|||ƒ|SdS(s wrapper provided for conveniencesprogramN(sfind_program_implsselfsenvs program_names path_listsvarsrets check_message(sselfs program_names path_listsvarsret((sP/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Configure.pys find_program¢scCs‹ytitiƒWntj onX|i otdƒnxA|iD]6}|i|}|i ti i ti|dƒƒqMWdS(s+save the config results into the cache filesnothing to store in Configure !s .cache.pyN( sossmakedirssParamss g_cachedirsOSErrorsselfs m_allenvssfatalskeystmpenvsstorespathsjoin(sselfsfileskeystmpenv((sP/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Configure.pysstore¨s   cCs_|iƒ}| o|iƒ}n||_||_||_ ||_ ||_ |iƒSdS(s wrapper provided for convenienceN(sselfscreate_pkgconfig_configuratorspkgconfsdestvarsmodnamesuppersuselibsnamesvnumsversionspkgpathspathspkgbinsbinarysrun(sselfsmodnamesdestvarsvnumspkgpathspkgbinspkgconf((sP/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Configure.pys check_pkg³s      cCsä|i}tii|i|ƒ|_tii|idƒ}yti |ƒ}Wnd}t ||iƒnX|i |ƒ}tioJti|iti|i ƒiƒƒ|_|iitii|ƒƒn||_|SdS(s3executes the configure function of a wscript moduleswscripts‘no module or function configure was found in wscript [%s]: * make sure such a function is defined * run configure from the root of the projectN(sselfscwdscurrentsosspathsjoinsdirscursUtilss load_modulesmodsmsgsfatals configuresretsParamss g_autoconfigs hash_sig_weakshashsinspects getsources__hash__sfilessappendsabspath(sselfsdirscursretscurrentsmsgsmod((sP/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Configure.pys sub_configÀs  *  cCsy|titidƒ}yti|ƒWnnXttitidd|i ƒƒdƒ}t i |i |ƒ|iƒWn ‚nXdS(scalled on shutdowns .wafcaches runs-%s.txtswbN(sUtilss join_pathsParamss g_homedirsdirsossmakedirssopensselfs_cache_platformsfilescPicklesdumps m_cache_tablesclose(sselfsfilesdir((sP/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Configure.pyscleanupØs+iÿÿÿÿcCsÂ|id}| o h}n|djo<t|ƒtijodt|ƒ||= %ssserrors package %s s%s --variable=%s %s(senvsselfspkgbinspkgpathspkgcoms pkgversionsosspopenspkgnamesclosesretsconfs check_messagesvariablesreadsstrip( sselfspkgnamesvariablespkgpathspkgbins pkgversionsenvsretspkgcom((sP/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Configure.pyspkgconfig_fetch_variables(  "! *cCsï|i otdƒ‚ntii|idƒ}xSti |ƒD]B\}} } x0t | ƒD]"} titii|| ƒƒq`WqDWtii|dƒ}yti|ƒWnnXyti|ƒWnnXttii|dƒdƒ} | i|iƒ| iƒ|io |i}n|iiƒ}tiƒtiidƒ}tiƒ}|i||ddƒ||id