;ς |oPFc@sdZdkZdkZdklZlZdZdeifd„ƒYZd„Z dgd„Z d Z ggd „Z ddd „Z dd d „Zdd„Zddd„Zdddd„Zd„Zddd„Zddd„Zddd„Zdddd„Zd„ZdS(sAAdditional configuration checks hooked on the configuration classN(serrorsfatalsή #include int am_big_endian() { long one = 1; return !(*((char *)(&one))); } int main() { if (am_big_endian()) printf("bigendian=1\n"); else printf("bigendian=0\n"); return 0; } scompile_configuratorcBs;tZdZd„Zd„Zd„Zd„Zd„ZRS(sinheritance democCsVtii||ƒd|_d|_d|_d|_d|_ d|_ d|_ dS(Nsi( s Configuresconfigurator_bases__init__sselfsconfsnamescodesflagssdefinesuselibs want_messagesmsg(sselfsconf((sS/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Tools/checks.pys__init__s      cCstdƒdS(Nstest program would not run(sfatal(sself((sS/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Tools/checks.pyserror)scCs1|io#|iidd|d|iƒndS(Nscompile code (cached)ssoption(sselfs want_messagesconfs check_messagesretvalsmsg(sselfsretval((sS/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Tools/checks.pys run_cache,s cCs|i otdƒndS(Ns0test configurator needs code to compile and run!(sselfscodesfatal(sself((sS/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Tools/checks.pysvalidate0s cCsƒtiƒ}|i|_|i|_|i|_|i|_|ii |ƒ}|i o#|ii dd|d|i ƒn|SdS(Ns compile codessoption(s Configures check_datasobjsselfscodesenvsuselibsflagssconfs run_checksrets want_messages check_messagesmsg(sselfsobjsret((sS/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Tools/checks.pysrun_test4s      #(s__name__s __module__s__doc__s__init__serrors run_cachesvalidatesrun_test(((sS/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Tools/checks.pyscompile_configurators    cCst|ƒSdS(N(scompile_configuratorsself(sself((sS/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Tools/checks.pyscreate_compile_configuratorAsscCsγ|djo d}n|i|ƒo|i|ƒSn|iƒ}t|_|iƒd}y#t i |ƒ}t |dƒ}Wntd|ƒd}‚nX|o d}nd}|id d|ƒ|i||ƒ|SdS( Nss IS_BIGENDIANsresults bigendiansendian test failed is big endians little endians endianness(sdefinesselfs is_defineds get_definescreate_test_configuratorstests endian_strscodesrunsUtilss to_hashtablestsintsis_bigserrorsstrbigscheck_message_customs add_define(sselfsdefinespathlstscodesis_bigststestsstrbig((sS/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Tools/checks.pys checkEndianDs*    s£ #include int am_big_endian() { long one = 1; return !(*((char *)(&one))); } int main() { if (am_big_endian()) printf("bigendian=1\n"); else printf("bigendian=0\n"); printf("int_size=%d\n", sizeof(int)); printf("long_int_size=%d\n", sizeof(long int)); printf("long_long_int_size=%d\n", sizeof(long long int)); printf("double_size=%d\n", sizeof(double)); return 0; } cCso|iƒ}t|_|iƒd}y#ti|ƒ}t |dƒ}Wnt d|ƒd}‚nX|o d}nd}|i dd|ƒ|i d d|d ƒ|i d d|d ƒ|i d d|dƒ|i dd|dƒ|id|ƒ|idt |d ƒƒ|idt |d ƒƒ|idt |dƒƒ|idt |dƒƒ|SdS(Nsresults bigendiansendian test failed is big endians little endians endiannessssint sizesint_sizes long int sizes long_int_sizeslong long int sizeslong_long_int_sizes double sizes double_sizes IS_BIGENDIANsINT_SIZEs LONG_INT_SIZEsLONG_LONG_INT_SIZEs DOUBLE_SIZE(sselfscreate_test_configuratorstests features_strscodesrunsUtilss to_hashtablestsintsis_bigserrorsstrbigscheck_message_customs add_define(sselfslstspathlstscodesis_bigstestsstrbigst((sS/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Tools/checks.pys checkFeaturesxs2   cCsr| o,d|iƒiddƒiddƒ}n|iƒ}d|_||_||_ ||_|i ƒSdS(NsHAVE_s/s_s.i( sdefinesheadersuppersreplacesselfscreate_header_enumeratorstests mandatorysnamespathsspathsrun(sselfsheadersdefinespathsstest((sS/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Tools/checks.pys find_headerœs,     icCsi| o,d|iƒiddƒiddƒ}n|iƒ}||_||_||_|i ƒSdS(NsHAVE_s/s_s.( sdefinesheadersuppersreplacesselfscreate_header_configuratorstestsnames mandatorysrun(sselfsheadersdefines mandatorystest((sS/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Tools/checks.pys check_header¦s,    cCsE|iƒ}||_||_|iƒ}|o |dSntSdS(Nsresult(sselfscreate_test_configuratorstestsuselibscodesrunsretsNone(sselfscodesuselibsretstest((sS/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Tools/checks.pystry_build_and_exec°s     cCsO|iƒ}||_||_|od|_||_n|iƒ}|SdS(Ni( sselfscreate_compile_configuratorstestsuselibscodesmsgs want_messagesrunsret(sselfscodesuselibsmsgsretstest((sS/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Tools/checks.pys try_buildΈs      icCso|iƒ}||_d|_||_|iƒ}|o|i d||t j ƒn|odSnt SdS(Nsint main() {return 0;} sflagsi( sselfscreate_test_configuratorstestsuselibscodesflagssrunsretsmsgs check_messagesNone(sselfsflagssuselibsoptionssmsgsretstest((sS/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Tools/checks.pys check_flagsΒs     cCsdS(N((senv((sS/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Tools/checks.pyssetupΞscCstdk}|iƒ}|o ||_n,d|ii|ƒiddƒi ƒ|_||_ ||_|i ƒSdS(NsHAVE_s.s_( sossselfscreate_header_configuratorsck_hdrsdefinespathsbasenamesnamesreplacesuppers mandatorysrun(sselfsnames mandatorysdefinesck_hdrsos((sS/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Tools/checks.pys check_header2Σs   +  cCs@|iƒ}|o ||_n||_||_|iƒSdS(N(sselfscreate_library_configuratorsck_libsuselibs mandatorysnamesrun(sselfsnames mandatorysuselibsck_lib((sS/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Tools/checks.pyscheck_library2έs     cCsI|iƒ}|o ||_n||_||_||_|iƒSdS(N(sselfscreate_pkgconfig_configuratorsck_pkgsuselibs mandatorysversionsnamesrun(sselfsnamesversions mandatorysuselibsck_pkg((sS/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Tools/checks.pys check_pkg2δs     cCsS|iƒ}|o ||_n|iƒ|_||_|d|_|iƒSdS(Ns-config( sselfscreate_cfgtool_configuratorsck_cfgsuselibsnamesuppers mandatorysbinarysrun(sselfsnames mandatorysdefinesuselibsck_cfg((sS/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Tools/checks.pys check_cfg2μs    cCs€|itƒ|itƒ|itƒ|itƒ|itƒ|itƒ|itƒ|it ƒ|it ƒ|it ƒ|it ƒ|it ƒdSdS(s$attach the checks to the conf objectiN(sconfshooks find_headers check_headerscreate_compile_configurators try_buildstry_build_and_execs check_flagss check_header2scheck_library2s check_pkg2s check_cfg2s checkEndians checkFeatures(sconf((sS/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Tools/checks.pysdetectυs            (s__doc__sUtilss ConfiguresParamsserrorsfatals endian_strsconfigurator_basescompile_configuratorscreate_compile_configurators checkEndians features_strs checkFeaturess find_headers check_headerstry_build_and_execs try_builds check_flagsssetups check_header2scheck_library2s check_pkg2s check_cfg2sdetect(s checkFeaturesscreate_compile_configurators check_header2s try_builds check_headersdetects Configurestry_build_and_execs check_cfg2s checkEndians find_headersfatals check_pkg2serrors features_strscompile_configuratorsUtilss endian_strscheck_library2ssetups check_flags((sS/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Tools/checks.pys?s&$ $