;ò {¯Ac@s!dZdkZdkZdkZdkZdkZdkZdklZl Z l Z l Z dk l Z lZlZdklZlZlZlZlZdklZdklZlZdklZlZdklZl Z d k!l"Z"d k#l$Z$d k%l&Z&d k'l(Z(d k)l*Z*dk+l,Z,dk-l.Z.dk/l0Z0dk1l2Z2dk3l4Z4dk5Z6ei7d djo^ydk8l9Z9Wne:j o e;Z9nXydk8l<Z<Wqèe:j o e;Z<qèXn e;Z9e;Z<dZ=dZ>e;d„Z?dd„Z@ddd„ZAd„ZBd„ZChd d!d"f<d#d$d%f<d&d'd(feiRiSeiTd?ƒgƒZUeId@eiRiSeiTdAƒgƒZVeJeUƒeJeVƒe>odBGHdCGeUGHdDGeVGHneIgƒZWeIgƒZXeJeWƒeJeXƒe>odEGHdCGeWGHdDGeXGHndFfdG„ƒYZYdHeYe$fdI„ƒYZZei7d dJjodKdLdMdNdOgZ[ndKdPdMdOgZ[ei\Z]dQ„Z^e^e_\dRe"fdS„ƒYZ_dTefdU„ƒYZ`dVe&fdW„ƒYZadXe*fdY„ƒYZbdZeYe(fd[„ƒYZcd\e,fd]„ƒYZdd^fd_„ƒYZed`efda„ƒYZfdbe2fdc„ƒYZgdde4fde„ƒYZhdfefdg„ƒYZidhe.fdi„ƒYZjdje0fdk„ƒYZkdlekfdm„ƒYZldn„ZmdS(os< Distutils Extensions needed for the mx Extensions. Copyright (c) 1997-2000, Marc-Andre Lemburg; mailto:mal@lemburg.com Copyright (c) 2000-2004, eGenix.com Software GmbH; mailto:info@egenix.com See the documentation for further information on copyrights, or contact the author. All Rights Reserved. N(sDistutilsErrorsDistutilsExecErrors CompileErrorsCCompilerError(ssetups ExtensionsCommand(sget_config_h_filenamesparse_config_hscustomize_compilersget_python_incsget_config_vars(s MSVCCompiler(sexecutes get_platform(s remove_treesmkpath(sspawnsfind_executable(s Distribution(sconfig(sbuild(s build_ext(s build_clib(sbuild_py(s bdist_rpm(s bdist_dumb(sinstall(s install_datais2.0(s bdist_ppm(sGenPPDs2.1.1icCsóto d|GHnxÄ|D]¼}tii||ƒ}tii|ƒoz|oWt |ƒi ƒ}t i||t iƒ o!t}to d|GHqqnt}nto d|GHn|Sqto d|GHqqWto dGHntSdS(sg Look for a file in the directories defined in the list paths. If pattern is given, the found files are additionally checked to include the given RE search pattern. Pattern matching is done case-insensitive per default. Returns the directory where the file can be found or None in case it was not found. slooking for %s ...s %s: found, but not matcheds %s: found and matcheds %s: not founds not foundN(s_debugsfilenamespathssdirsosspathsjoinspathnamesexistsspatternsopensreadsdatasressearchsIsNone(sfilenamespathsspatternspathnamesdatasdir((sX/mnt/gmirror/ports/devel/py-mx-experimental/work/egenix-mx-experimental-0.9.0/mxSetup.pys find_fileBs.      iÿÿÿÿcCs]||jotii|ƒo9|djo|t|ƒd}n|i||ƒndS(Nii(sdirspathlistsosspathsisdirsindexslensinsert(sdirspathlistsindex((sX/mnt/gmirror/ports/devel/py-mx-experimental/work/egenix-mx-experimental-0.9.0/mxSetup.pysadd_dircs  icCss|otid }ntid }|o |djo2ytdƒWntj oqkX|d}n|SdS(sO Return the Python version as short string. If unicode_aware is true (default), the function also tests whether a UCS2 or UCS4 built is running and modifies the version accordingly. If include_patchlevel is true (default is false), the patch level is also included in the version string. iis2.0i †sucs4N(sinclude_patchlevelssyssversions unicode_awaresunichrs ValueError(s unicode_awaresinclude_patchlevelsversion((sX/mnt/gmirror/ports/devel/py-mx-experimental/work/egenix-mx-experimental-0.9.0/mxSetup.pys py_versionks  cCs4t|dƒiƒiƒ}|t|ƒ |jSdS(sŠ Check whether the version string version matches the version data in the Zope product version.txt file version_txt. srN(sopens version_txtsreadsstripsdataslensversion(sversions version_txtsdata((sX/mnt/gmirror/ports/devel/py-mx-experimental/work/egenix-mx-experimental-0.9.0/mxSetup.pyscheck_zope_product_version…sc CsI|idjo+tddddddƒ\}}}}}}t i i d|pdƒ}t i i d|pdƒ}t i i d|pdƒ}t i i d|pdƒ}t i i d|pdƒ}t i i d|pdƒ}|i d d |d d |||fd d||||fd|d|ƒ||_ n t|ƒdS(NsunixsCCsOPTs BASECFLAGSsCCSHAREDsLDSHAREDsSOss preprocessors%s -Escompilers%s %s %ss compiler_sos %s %s %s %ss linker_sos linker_exe(scompilers compiler_typesget_config_varssccsoptsccshareds basecflagssldsharedssosossenvironsgetsset_executablessshared_lib_extensionscustomize_compiler(scompilersopts basecflagssccssosldsharedsccshared((sX/mnt/gmirror/ports/devel/py-mx-experimental/work/egenix-mx-experimental-0.9.0/mxSetup.pysmx_customize_compilers   sgzips.gzs-f9sbzip2s.bz2sf9scompresss.Zs-fs-chfc CsÇ|d}ttii|ƒd|ƒd|||g}t |d|d|ƒ|ojyt |\}} Wn tj otdt‚nX|| |g}t |d|d|ƒ||}n|SdS(Ns.tarsdry_runstarsverbosesunknown compression program: %s(s base_names tar_archivesmkpathsosspathsdirnamesdry_runs tar_optionssbase_dirscmdsspawnsverboses compressionscompression_programssextsoptionssKeyErrors ValueErrorscompress( s base_namesbase_dirs compressionsverbosesdry_runs tar_optionsscmds tar_archivesextsoptions((sX/mnt/gmirror/ports/devel/py-mx-experimental/work/egenix-mx-experimental-0.9.0/mxSetup.pysmx_make_tarball±s sgztars compressionsgzipped tar-filesbztarsbzip2ed tar-filesztarscompressed tar filestarstar filecCsMytii}Wntj o t}nXytii}Wntj o t}nXg}xätt|ƒƒD]Ð}||}|tj o||ƒ}n|tj o?||ƒ}d|jo"t i t id|ƒdƒ}qênt i|ƒ}ti|jo |it i|tiƒƒqq|o|i|ƒqqqqW|SdS(s Builds a path list from a list of directories/paths. The dirs list may contain shell variable references and user dir references. These will get expanded automatically. Non-existing shell variables are replaced with an empty string. Path entries will get expanded to single directory entries. Empty string entries are removed from the list. s$s\$\w+|\{[^}]*\}sN(sosspaths expandvarssAttributeErrorsNones expandusersrangeslensdirssisdirsstringsjoinsressplitsstripspathsepsextendsappend(sdirss expandusersis expandvarsspathsdir((sX/mnt/gmirror/ports/devel/py-mx-experimental/work/egenix-mx-experimental-0.9.0/mxSetup.pys build_pathÓs2        & cCs~h}g}xd|D]\}tii|ƒotii|ƒo0|i|ƒ od||<|i|ƒqoqqW||(dS(s‡ Verify the directories in path for existence and their directory nature. Also removes duplicates from the list. iN( sdslspathsdirsossexistssisdirshas_keysappend(spathsdsdirsl((sX/mnt/gmirror/ports/devel/py-mx-experimental/work/egenix-mx-experimental-0.9.0/mxSetup.pys verify_pathøs& c Csîy_dkl}l}|ƒ}|o,|d}|d|ƒ}|d|ƒ}n g}g}Wn~tj ordkl}y+|ƒ}|idƒ}|idƒ}Wn*t j o}dG|GHg}g}nXt }nX||fSdS( s Return a tuple (libpath, inclpath) defining the search paths for library files and include files that the MS VC++ compiler uses per default. Both entries are lists of directories. Only available on Windows platforms with installed compiler. (sget_devstudio_versionssget_msvc_pathsisincludeslib(s MSVCCompilerslibrarys *** Problem:N( sdistutils.msvccompilersget_devstudio_versionssget_msvc_pathss msvc_versionss msvc_versionsinclpathslibpaths ImportErrors MSVCCompilers msvccompilers ExceptionswhysNone( sget_msvc_pathss msvccompilers msvc_versionss MSVCCompilersinclpathslibpathsget_devstudio_versionss msvc_versionswhy((sX/mnt/gmirror/ports/devel/py-mx-experimental/work/egenix-mx-experimental-0.9.0/mxSetup.pysget_msvc_paths s,         s/usr/libs/opt/libs$LIBs /usr/includes /opt/includes$INCLUDEswins/usr/local/libslibs/usr/local/includesincludesmxSetup found these paths:s lib path:s include path:s;mxSetup will additionally scan these paths during autoconf:sCompilerSupportMixincBstZdZdZd„ZRS(sj Compiler support mixin which makes sure that the .compiler attribute is properly setup. icCs²|iodSn|itjo|iƒn|i}|itjo d|_nxtD]}t||i ƒq]Wxt D]}t||i ƒq~Wt |iƒd|_dS(Nsi( sselfsprepared_compilerscompilersNones_check_compilers exe_extensionsLIBPATHsdirsadd_dirs library_dirssINCLPATHs include_dirssmx_customize_compiler(sselfsdirscompiler((sX/mnt/gmirror/ports/devel/py-mx-experimental/work/egenix-mx-experimental-0.9.0/mxSetup.pysprepare_compilerys    (s__name__s __module__s__doc__sprepared_compilersprepare_compiler(((sX/mnt/gmirror/ports/devel/py-mx-experimental/work/egenix-mx-experimental-0.9.0/mxSetup.pysCompilerSupportMixinps s mx_autoconfcBsðtZdZdZeidedfgZdZddgfddgfddgffZd „Z d „Z d „Z d „Z eeeed „Z d„Zeeeeddd„Zeeegd„Zed„Zeddfd„ZRS(se Auto-configuration class which adds some extra configuration settings to the packages. s5auto-configuration build step (for internal use only)senable-debuggingscompile with debugging supportisstrftimestime.hsstrptimestimegmcCs#ti|ƒd|_d|_dS(Ni(sconfigsinitialize_optionssselfsnoisys dump_source(sself((sX/mnt/gmirror/ports/devel/py-mx-experimental/work/egenix-mx-experimental-0.9.0/mxSetup.pysinitialize_options°s  cCsti|ƒdS(N(sconfigsfinalize_optionssself(sself((sX/mnt/gmirror/ports/devel/py-mx-experimental/work/egenix-mx-experimental-0.9.0/mxSetup.pysfinalize_options¶scCs­|iodSn|i o|iƒt|iƒn|i}|itjo d|_nxtD]}t ||i ƒqeWxt D]}t ||i ƒq†Wd|_dS(Nsi( sselfsprepared_compilerscompilers_check_compilersmx_customize_compilers exe_extensionsNonesLIBPATHsdirsadd_dirs library_dirssINCLPATHs include_dirs(sselfsdirscompiler((sX/mnt/gmirror/ports/devel/py-mx-experimental/work/egenix-mx-experimental-0.9.0/mxSetup.pysprepare_compilerºs     c Cs•|iƒ|iiddƒtƒ} yt| ƒ}Wn,tj o }|i d| ƒh}nXt |ƒ}|i ƒtid djod|d ss%updated build_ext with autoconf setup()sselfsprepare_compilerscompilers define_macrosget_config_h_filenamesconfig_hsopens configfilesIOErrorswhyswarns configurationsparse_config_hsclosessyssplatformsdefinesundefs api_checkssapinames includefilessstringsuppers macro_nameshas_keyscheck_functionsappendscheck_bad_staticforwardsenable_debuggingsNonesannounces distributionsreinitialize_commands build_extsensure_finalizedstypestypess StringTypessplitslsmap( sselfs configfiles build_extsundefs includefilessdefines macro_names configurationswhyslsconfig_hsapiname((sX/mnt/gmirror/ports/devel/py-mx-experimental/work/egenix-mx-experimental-0.9.0/mxSetup.pysrunÓsT             cCs'|iƒ|i|||||ƒSdS(sÝ Check whether sourcecode compiles and links with the current compiler and link environment. For documentation of the other arguments see the base class' .try_link(). N(sselfsprepare_compilerstry_links sourcecodesheaderss include_dirss librariess library_dirs(sselfs sourcecodesheaderss include_dirss librariess library_dirs((sX/mnt/gmirror/ports/devel/py-mx-experimental/work/egenix-mx-experimental-0.9.0/mxSetup.pyscheck_compilers  cCs7d}|iƒ|i|ddfdtƒgƒ SdS(sÏ Check whether the compiler does not supports forward declaring static arrays. For documentation of the other arguments see the base class' .try_link(). sÔ typedef struct _mxstruct {int a; int b;} mxstruct; staticforward mxstruct mxarray[]; statichere mxstruct mxarray[] = {{0,2},{3,4},}; int main(void) {return mxarray[0].a;} sheaderssPython.hs include_dirsN(sbodysselfsprepare_compilers try_compilesget_python_inc(sselfsbody((sX/mnt/gmirror/ports/devel/py-mx-experimental/work/egenix-mx-experimental-0.9.0/mxSetup.pyscheck_bad_staticforward)s    c Csœg}|o|id|ƒn|idƒ|o|id|ƒn|id|ƒ|idƒti|dƒd}|i|||||ƒSdS(sž Check whether function is available in the given compile and link environment. If prototype is true, a function prototype is included in the test. If call is true, a function call is generated (rather than just a reference of the function symbol). For documentation of the other arguments see the base class' .try_link(). sint %s (void);sint main (void) {s %s();s %s;s return 0; }s N( sbodys prototypesappendsfunctionscallsstringsjoinsselfscheck_compilersheaderss include_dirss librariess library_dirs( sselfsfunctionsheaderss include_dirss librariess library_dirss prototypescallsbody((sX/mnt/gmirror/ports/devel/py-mx-experimental/work/egenix-mx-experimental-0.9.0/mxSetup.pyscheck_function=s  cCs*d}|i||||g||ƒSdS(sª Check whether we can link against the given library. For documentation of the other arguments see the base class' .try_link(). sint main (void) { return 0; }N(sbodysselfscheck_compilersheaderss include_dirsslibrarysother_librariess library_dirs(sselfslibrarys library_dirssheaderss include_dirssother_librariessbody((sX/mnt/gmirror/ports/devel/py-mx-experimental/work/egenix-mx-experimental-0.9.0/mxSetup.pys check_libraryYscCsT|iƒ||iitt}t|ƒto dG|GHnt |||ƒSdS(s Find an include file of the given name. The search path is determined by the paths parameter, the compiler's .include_dirs attribute and the STDINCLPATH and FINDINCLPATH globals. The search is done in this order. sINCLPATHN( sselfsprepare_compilerspathsscompilers include_dirss STDINCLPATHs FINDINCLPATHs verify_paths_debugs find_filesfilenamespattern(sselfsfilenamespathsspattern((sX/mnt/gmirror/ports/devel/py-mx-experimental/work/egenix-mx-experimental-0.9.0/mxSetup.pysfind_include_filefs   ssharedsstaticcCs˜|iƒ||iitt}t|ƒto dG|GHnxM|D]E}|ii |d|ƒ}t|||ƒ}|tj o|SqGqGWtSdS(sj Find a library of the given name. The search path is determined by the paths parameter, the compiler's .library_dirs attribute and the STDLIBPATH and FINDLIBPATH globals. The search is done in this order. Shared libraries are prefered over static ones if both types are given in lib_types. sLIBPATHslib_typeN(sselfsprepare_compilerspathsscompilers library_dirss STDLIBPATHs FINDLIBPATHs verify_paths_debugs lib_typesslib_typeslibrary_filenameslibnamesfilenames find_filespatternsdirsNone(sselfslibnamespathsspatterns lib_typesslib_typesfilenamesdir((sX/mnt/gmirror/ports/devel/py-mx-experimental/work/egenix-mx-experimental-0.9.0/mxSetup.pysfind_library_filexs        (s__name__s __module__s__doc__s descriptionsconfigs user_optionssNonesenable_debuggings api_checkssinitialize_optionssfinalize_optionssprepare_compilersrunscheck_compilerscheck_bad_staticforwardscheck_functions check_librarysfind_include_filesfind_library_file(((sX/mnt/gmirror/ports/devel/py-mx-experimental/work/egenix-mx-experimental-0.9.0/mxSetup.pys mx_autoconf—s *    H  s2.4s/O2s/Gfs/GBs/GDs/Ob2s/GFcOs+tt|f||ƒ|iitƒdS(N(sapplysold_MSVCCompiler__init__sselfsargsskwsscompile_optionssextendsMSVC_COMPILER_FLAGS(sselfsargsskws((sX/mnt/gmirror/ports/devel/py-mx-experimental/work/egenix-mx-experimental-0.9.0/mxSetup.pysmx_msvccompiler__init__©ssmx_DistributioncBsZtZdZeZdeijo-eidedfgZeidgZnd„ZRS(sM Distribution class which knows about our distutils extensions. s classifierss1print the list of classifiers (not yet supported)cCs!|iot|iƒdjSdS(Ni(sselfsunixlibsslen(sself((sX/mnt/gmirror/ports/devel/py-mx-experimental/work/egenix-mx-experimental-0.9.0/mxSetup.pys has_unixlibsÇs( s__name__s __module__s__doc__sNonesunixlibss Distributionsdisplay_optionssdisplay_option_namess has_unixlibs(((sX/mnt/gmirror/ports/devel/py-mx-experimental/work/egenix-mx-experimental-0.9.0/mxSetup.pysmx_Distributionµs s mx_ExtensioncBsMtZdZdZfZfZfZddfZfZfZ dZ d„Z RS(sv Extension class which allows specifying whether the extension is required to build or optional. issharedsstaticicOsµx”dddddddfD]w}|i|ƒot||||ƒ||=qt||ƒ}t|ƒtfƒjot||t|ƒƒqqWt t i |f||ƒdS(Nsrequireds lib_typessoptional_librariessneeded_includessneeded_librariess data_filesspackages( sattrskwsshas_keyssetattrsselfsgetattrsvaluestypeslistsapplys Extensions__init__sargs(sselfsargsskwssattrsvalue((sX/mnt/gmirror/ports/devel/py-mx-experimental/work/egenix-mx-experimental-0.9.0/mxSetup.pys__init__øs ( s__name__s __module__s__doc__srequiredsoptional_librariessneeded_includessneeded_librariess lib_typess data_filesspackagesssuccessfully_builts__init__(((sX/mnt/gmirror/ports/devel/py-mx-experimental/work/egenix-mx-experimental-0.9.0/mxSetup.pys mx_ExtensionÎs  smx_buildcBs…tZdZd„Zeeiƒdjo ed‚ndeifdefdei fdei fdei fd ei fgZRS( sH build command which knows about our distutils extensions. cCs|iiƒSdS(N(sselfs distributions has_unixlibs(sself((sX/mnt/gmirror/ports/devel/py-mx-experimental/work/egenix-mx-experimental-0.9.0/mxSetup.pys has_unixlibssis incompatible distutils version !s build_clibs build_unixlibs mx_autoconfs build_extsbuild_pys build_scripts( s__name__s __module__s__doc__s has_unixlibsslensbuilds sub_commandssDistutilsErrorshas_c_librariesshas_ext_modulesshas_pure_moduless has_scripts(((sX/mnt/gmirror/ports/devel/py-mx-experimental/work/egenix-mx-experimental-0.9.0/mxSetup.pysmx_build s   s mx_build_clibcBs tZdZd„Zd„ZRS(sX build_clib command which builds the libs using separate temp dirs c Cs|i}tii||ƒ|_zè|idƒ}|t jpt |ƒt i t ifjotddd|‚nt|ƒ}|id|ƒ|idƒ}|idƒ}|ii|d|id|d|d |iƒ}|ii||d|id |iƒWd||_XdS( Nssourcess&in 'libraries' option (library '%s'), s&'sources' must be present and must be sa list of source filenamessbuilding '%s' librarysmacross include_dirss output_dirsdebug(sselfs build_tempsbuild_temp_basesosspathsjoinslib_names build_infosgetssourcessNonestypestypessListTypes TupleTypesDistutilsSetupErrorslistsannouncesmacross include_dirsscompilerscompilesdebugsobjectsscreate_static_libs build_clib(sselfslib_names build_infosmacrossbuild_temp_basessourcessobjectss include_dirs((sX/mnt/gmirror/ports/devel/py-mx-experimental/work/egenix-mx-experimental-0.9.0/mxSetup.pys build_library)s( ,    cCs+x$|D]\}}|i||ƒqWdS(N(s librariesslib_names build_infosselfs build_library(sselfs librariesslib_names build_info((sX/mnt/gmirror/ports/devel/py-mx-experimental/work/egenix-mx-experimental-0.9.0/mxSetup.pysbuild_librariesXs (s__name__s __module__s__doc__s build_librarysbuild_libraries(((sX/mnt/gmirror/ports/devel/py-mx-experimental/work/egenix-mx-experimental-0.9.0/mxSetup.pys mx_build_clib#s  /s mx_build_extcBsitZdZeidedfdedfgZeZeZeZd„Z d„Z d„Z d„Z RS( sh build_ext command which runs mx_autoconf command before trying to build anything. sdisable-build=svdisable building an optional extensions (comma separated list of dotted package names); default is to try building alls enable-build=saif given, only these optional extensions are built (comma separated list of dotted package names)cCs°ti|ƒ|itjo f|_nBt|iƒtijo(tt i t i |idƒƒ|_nt|i ƒtijo(tt i t i |i dƒƒ|_ ndS(Ns,( s build_extsfinalize_optionssselfs disable_buildsNonestypestypess StringTypesmapsstringsstripssplits enable_build(sself((sX/mnt/gmirror/ports/devel/py-mx-experimental/work/egenix-mx-experimental-0.9.0/mxSetup.pysfinalize_optionsxs    cCsr|iiƒo2|idƒ}|iƒ\}}||id*n|i dƒ|idƒ|_ t i |ƒdS(Ns build_unixlibis mx_autoconf( sselfs distributions has_unixlibssget_finalized_commands build_unixlibsget_unixlib_lib_optionsspathsslibss library_dirss run_commandsautoconfs build_extsrun(sselfslibsspathss build_unixlib((sX/mnt/gmirror/ports/devel/py-mx-experimental/work/egenix-mx-experimental-0.9.0/mxSetup.pysrun„s cCsØ|iƒ|i|i_|i|iƒx|iD]}|i|ƒq3Wg}xN|iD]C}t |t ƒ o|i |ƒqZ|i o|i |ƒqZqZW||_t odGt|iƒGHn|idƒdS(Ns extensions:s(sselfsprepare_compilerscompilersautoconfscheck_extensions_lists extensionssextsbuild_extensionsls isinstances mx_Extensionsappendssuccessfully_builts_debugsreprsannounce(sselfslsext((sX/mnt/gmirror/ports/devel/py-mx-experimental/work/egenix-mx-experimental-0.9.0/mxSetup.pysbuild_extensions™s"     cCsqt|dƒ p|i} |idƒ|id|i| dpdfƒ| od|itj o|i|ijo|idƒdSq¸|i|ijo|idƒdSq¸nt|dƒo|i oé|id |iƒxÒ|i D]Ã\}}}|i i|||ƒ} | tj oY|id || fƒ| |ijo| tjo | tjo|ii| ƒq³qð| otd |‚qð|id |i|fƒdSqðWnt|d ƒo|io|id|iƒxü|iD]í\}}}|i i||||iƒ} | tj o}|id|| fƒ| |ijo| tjo | tjo|ii| ƒn||ijo|ii|ƒqàqó| otd|‚qó|id|i|fƒdSqóWn|i}ti ti!|idƒt"i#ƒ}t"i%i ||ƒ|_t|dƒo|i&o©|idƒx™|i&D]Š\}} |i i(|d| ƒoTdti)|ƒ}|id||fƒ|ii|ƒ|i+i|dfƒq^|id|ƒq^Wnt,o`dGt-|i|i.iƒGHdGt-|i|i.iƒGHdGt-|iƒGHdGt-|i+ƒGHnd} z›t|dƒ p|i} | ot0i1||ƒd} n]yt0i1||ƒWn?t2t3fj o-} |id |it5i6ƒdfƒnXd} Wd||_X| oat|d!ƒo|i7i8i9|i8ƒnt|d"ƒo|i7i:i9|i:ƒnd|_/ndS(#Nsrequiredssbuilding extension "%s" %ss (required)s (optional)s3skipped -- build not enabled by command line options0skipped -- build disabled by command line optionsneeded_includess1looking for header files needed by extension "%s"s.found needed include file "%s" in directory %ss&could not find needed header file "%s"sR*** WARNING: Building of extension "%s" failed: needed include file "%s" not foundsneeded_librariess.looking for libraries needed by extension "%s"s)found needed library "%s" in directory %ss"could not find needed library "%s"sM*** WARNING: Building of extension "%s" failed: needed library "%s" not founds.soptional_librariesschecking for optional librariessheaderss HAVE_%s_LIBs*found optional library '%s' -- defining %ss1s3could not find optional library '%s' -- omitting its Include dirs:s Libary dirs:s Libaries:sMacros:iis2*** WARNING: Building of extension "%s" failed: %sspackagess data_files(;shasattrsextsrequiredsselfsannouncesnames enable_buildsNones disable_buildsneeded_includessfilenamesdirsspatternsautoconfsfind_include_filesdirs include_dirss STDINCLPATHsINCLPATHsappends CompileErrorsneeded_librariesslibnamesfind_library_files lib_typess library_dirss STDLIBPATHsLIBPATHs librariess build_tempsbuild_temp_basesstringsjoinssplitsosssepsextpathspathsoptional_librariess headerfiless check_librarysupperssymbols define_macross_debugsreprscompilerssuccessfully_builts build_extsbuild_extensionsCCompilerErrorsDistutilsErrorswhyssyssexc_infos distributionspackagessextends data_files(sselfsextsbuild_temp_basespatternsextpathsfilenamesdirsslibnamessymbolssuccessfully_builts headerfilesswhysrequiredsdir((sX/mnt/gmirror/ports/devel/py-mx-experimental/work/egenix-mx-experimental-0.9.0/mxSetup.pysbuild_extension´s  %#       *     *  $   )  ( s__name__s __module__s__doc__s build_exts user_optionssNonesautoconfs disable_builds enable_buildsfinalize_optionssrunsbuild_extensionssbuild_extension(((sX/mnt/gmirror/ports/devel/py-mx-experimental/work/egenix-mx-experimental-0.9.0/mxSetup.pys mx_build_extas %   s mx_build_pycBsRtZdZeidedfgZeidgZdZd„Zdd„Z RS(sz build_py command which also allows removing Python source code after the byte-code compile process. swithout-sourcesonly include Python byte-codeic Cs~|io'|i o|i o d|_q1nti|ƒ|io2|idƒ|i}|i}xti |ddƒD]õ}|ddjoq}nt t i |fd|d|d |ƒ|i oK|d }t ii|ƒo*t t i |fd|d|d |ƒqn|idjoK|d }t ii|ƒo*t t i |fd|d|d |ƒqrq}q}WndS( Nis/removing Python source files (--without-source)sinclude_bytecodeiiýÿÿÿs.pys removing %ssverbosesdry_runscso(sselfswithout_sourcescompilesoptimizesbuild_pysrunsannouncesverbosesdry_runs get_outputssfilesexecutesossremovesfilenamespathsisfile(sselfsverbosesdry_runsfilenamesfile((sX/mnt/gmirror/ports/devel/py-mx-experimental/work/egenix-mx-experimental-0.9.0/mxSetup.pysrun]s4         icCs²|i p| oti||ƒSng}xzti|ddƒD]c}|ddjp5|i o|ddjp|i o|ddjoqCn|i |ƒqCW|SdS(Nsinclude_bytecodeiiýÿÿÿs.pyiüÿÿÿs.pycs.pyo( sselfswithout_sourcesinclude_bytecodesbuild_pys get_outputssfilessfilescompilesoptimizesappend(sselfsinclude_bytecodesfilessfile((sX/mnt/gmirror/ports/devel/py-mx-experimental/work/egenix-mx-experimental-0.9.0/mxSetup.pys get_outputsƒsI( s__name__s __module__s__doc__sbuild_pys user_optionssNonesboolean_optionsswithout_sourcesruns get_outputs(((sX/mnt/gmirror/ports/devel/py-mx-experimental/work/egenix-mx-experimental-0.9.0/mxSetup.pys mx_build_pyNs  &s UnixLibrarycBsPtZdZdZdZeZdZeZeZ eeed„Z ed„Z RS(s/ Container for library configuration data. ss configurec Cs„||_||_x|D] \}}qW||_|o ||_n|o ||_n g|_|o ||_n g|_dS(N( slibnamesselfs sourcetreeslibfilesslibfiles targetdirs configuresconfigure_optionss make_options( sselfslibnames sourcetreeslibfiless configuresconfigure_optionss make_optionsslibfiles targetdir((sX/mnt/gmirror/ports/devel/py-mx-experimental/work/egenix-mx-experimental-0.9.0/mxSetup.pys__init__­s        cCst|||ƒSdS(N(sgetattrsselfsoptions alternative(sselfsoptions alternative((sX/mnt/gmirror/ports/devel/py-mx-experimental/work/egenix-mx-experimental-0.9.0/mxSetup.pysgetÄs( s__name__s __module__s__doc__slibnames sourcetreesNoneslibfiless configuresconfigure_optionss make_optionss__init__sget(((sX/mnt/gmirror/ports/devel/py-mx-experimental/work/egenix-mx-experimental-0.9.0/mxSetup.pys UnixLibrary–s smx_build_unixlibcBsÎtZdZdZeZdddfdddfded fd ed fd d dfgZd gZd„Zd„Z gd„Z gedd„Z gedgd„Z d„Z d„Zd„Zd„ZRS(sˆ This command compiles external libs using the standard Unix procedure for this: ./configure make s.build Unix libraries used by Python extensionss build-lib=sbs*directory to store built Unix libraries ins build-temp=sts$directory to build Unix libraries tosmake=smake program to uses makefile=smakefile to usesforcesfsforcibly reconfigurecCs1t|_t|_t|_t|_d|_dS(Ni(sNonesselfs build_libs build_tempsmakesmakefilesforce(sself((sX/mnt/gmirror/ports/devel/py-mx-experimental/work/egenix-mx-experimental-0.9.0/mxSetup.pysinitialize_optionsås     cCso|idddfddfddfƒ|itjo d|_n|itjo d|_nd|_dS(Nsbuildsverboses build_libs build_tempsmakesMakefilei(sselfsset_undefined_optionssmakesNonesmakefilesverbose(sself((sX/mnt/gmirror/ports/devel/py-mx-experimental/work/egenix-mx-experimental-0.9.0/mxSetup.pysfinalize_optionsís      cCsð|opg}xI|D]A\}}|tj o|id||fƒq|i|ƒqW|dti|dƒ}n|i djo|i dt |ƒƒn|i odSnyti|ƒ}Wntj o}t|‚nX|SdS(Ns%s=%ss isexecuting script %si(soptionsslsksvsNonesappendsscriptsstringsjoinsselfsverbosesannouncesreprsdry_runsosssystemsrcsDistutilsExecErrorsmsgs CompileError(sselfsscriptsoptionssksrcslsvsmsg((sX/mnt/gmirror/ports/devel/py-mx-experimental/work/egenix-mx-experimental-0.9.0/mxSetup.pys run_scriptüs"   s configurecCsd|}|od||}n|io"|id||pdfƒn|i||ƒ}|djo t d‚ndS(s  Run the configure script using options is given. Options must be a list of tuples (optionname, optionvalue). If an option should not have a value, passing None as optionvalue will have the effect of using the option without value. dir can be given to have the configure script execute in that directory instead of the current one. s./%sscd %s; srunning %s in %ss.isconfigure script failedN( s configurescmdsdirsselfsverbosesannounces run_scriptsoptionssrcs CompileError(sselfsoptionssdirs configurescmdsrc((sX/mnt/gmirror/ports/devel/py-mx-experimental/work/egenix-mx-experimental-0.9.0/mxSetup.pys run_configures   " smakecCs¤d|}|o|dti|dƒ}n|od||}n|io"|id||pdfƒn|i ||ƒ}|djo t d‚ndS( sî Run the make command for the given targets. Targets must be a list of valid Makefile targets. dir can be given to have the make program execute in that directory instead of the current one. s%ss scd %s; srunning %s in %ss.is make failedN( smakescmdstargetssstringsjoinsdirsselfsverbosesannounces run_scriptsoptionssrcs CompileError(sselfstargetssdirsmakesoptionsscmdsrc((sX/mnt/gmirror/ports/devel/py-mx-experimental/work/egenix-mx-experimental-0.9.0/mxSetup.pysrun_make&s   " c Cs-|i}|i}tii||ƒ|_zò|i }|i }|i } |i } tii|i| ƒ}|i} | otd|i‚n|io|id|i|fƒn|io|id|iƒn|i|ƒ|i| |ƒtiitii||iƒƒ p|io|i|d|d|ƒn#|io|id|iƒn|id|d|id| ƒx•| D]\}}| oqŠntii|i|ƒ}tii|i|ƒ}tii|ƒ otd |‚n|i|ƒ|i||ƒqŠWWd||_XdS( Ns$no libfiles defined for unixlib "%s"sbuilding C lib %s in %sspreparing build of %ssdirs configures,skipping configure: %s is already configuredsmakesoptionsslibrary "%s" failed to build( sselfs build_tempsbuild_temp_basesunixlibslibnameslibpathsosspathsjoins configuresconfigure_optionss make_optionss sourcetrees buildtreeslibfilessDistutilsErrorsnamesverbosesannouncesmkpaths copy_treesexistssmakefilesforces run_configuresrun_makesmakes sourcefiles destinations build_libs CompileErrors copy_file( sselfsunixlibs destinations configuresbuild_temp_bases sourcefileslibpaths buildtreesconfigure_optionsslibfiless sourcetrees make_options((sX/mnt/gmirror/ports/devel/py-mx-experimental/work/egenix-mx-experimental-0.9.0/mxSetup.pys build_unixlib;sN          0       cCs"x|D]}|i|ƒqWdS(N(sunixlibssunixlibsselfs build_unixlib(sselfsunixlibssunixlib((sX/mnt/gmirror/ports/devel/py-mx-experimental/work/egenix-mx-experimental-0.9.0/mxSetup.pysbuild_unixlibsyscCsõg}g}xØ|iiD]Ê}xÁ|iD]¶\}}| o)t i i |i |ƒ}|i |ƒq)t i i|ƒ}t i i|ƒd}|d djo|d}n|i |ƒt i i |i|ƒ}|i |ƒq)WqW||fSdS(Niislib(slibsspathssselfs distributionsunixlibssunixlibslibfiless sourcefiles destinationsosspathsjoins build_tempsappendsbasenamessplitextslibnames build_lib(sselfspathss destinations sourcefilesunixlibslibnameslibs((sX/mnt/gmirror/ports/devel/py-mx-experimental/work/egenix-mx-experimental-0.9.0/mxSetup.pysget_unixlib_lib_options~s&     cCs-|ii odSn|i|iiƒdS(N(sselfs distributionsunixlibssbuild_unixlibs(sself((sX/mnt/gmirror/ports/devel/py-mx-experimental/work/egenix-mx-experimental-0.9.0/mxSetup.pysrun–s(s__name__s __module__s__doc__s descriptionsNonesmakes user_optionssboolean_optionssinitialize_optionssfinalize_optionss run_scripts run_configuresrun_makes build_unixlibsbuild_unixlibssget_unixlib_lib_optionssrun(((sX/mnt/gmirror/ports/devel/py-mx-experimental/work/egenix-mx-experimental-0.9.0/mxSetup.pysmx_build_unixlibÈs B     >  s mx_installcBs tZdZd„Zd„ZRS(sU We want install_data to default to install_purelib if it is not given. cCs7|itj}ti|ƒ|o|i|_ndS(N(sselfs install_datasNonesfix_install_datasinstallsfinalize_optionssinstall_purelib(sselfsfix_install_data((sX/mnt/gmirror/ports/devel/py-mx-experimental/work/egenix-mx-experimental-0.9.0/mxSetup.pysfinalize_options¦s cCs=ti|ƒ|iddjo|id d|_ndS(Niûÿÿÿs\DATAs\PURELIB(sinstallsensure_finalizedsselfs install_data(sself((sX/mnt/gmirror/ports/devel/py-mx-experimental/work/egenix-mx-experimental-0.9.0/mxSetup.pysensure_finalized®s (s__name__s __module__s__doc__sfinalize_optionssensure_finalized(((sX/mnt/gmirror/ports/devel/py-mx-experimental/work/egenix-mx-experimental-0.9.0/mxSetup.pys mx_install s  smx_install_datacBs tZdZd„Zd„ZRS(s? Rework the install_data command to something more useful. cCsZ|itjo"|iidƒ}|i|_ntod|iGHnti|ƒdS(NsinstallsInstalling data files to %s( sselfs install_dirsNones distributionsget_command_objs installobjs install_datas_debugsfinalize_options(sselfs installobj((sX/mnt/gmirror/ports/devel/py-mx-experimental/work/egenix-mx-experimental-0.9.0/mxSetup.pysfinalize_options¼s cCs5|i o|i|iƒn|iƒ}x|D]û}t|ƒti joÖdp t i djo%t i t i|dƒt iƒ}nti|ƒ}x‘|D]|}t ii |i|ƒ}t ii|ƒd}|i o'|i|ƒ|i||ƒd}n|}|ii|ƒq Wq2td‚q2WdS(Nisposixs/is"tuples in data_files not supported(sselfsdry_runsmkpaths install_dirs get_inputss data_filessentrystypestypess StringTypesossnamesstringsjoinssplitssepsglobs filenamessfilenamespathsdstsdstdirs copy_filesoutfilesoutfilessappends ValueError(sselfsdstsdstdirs filenamessoutfilesentrys data_filessfilename((sX/mnt/gmirror/ports/devel/py-mx-experimental/work/egenix-mx-experimental-0.9.0/mxSetup.pysrunÄs&  %  (s__name__s __module__s__doc__sfinalize_optionssrun(((sX/mnt/gmirror/ports/devel/py-mx-experimental/work/egenix-mx-experimental-0.9.0/mxSetup.pysmx_install_data¸s  s mx_uninstallcBs/tZdZgZd„Zd„Zd„ZRS(Ns+uninstall the package files and directoriescCsdS(N((sself((sX/mnt/gmirror/ports/devel/py-mx-experimental/work/egenix-mx-experimental-0.9.0/mxSetup.pysinitialize_optionséscCsdS(N((sself((sX/mnt/gmirror/ports/devel/py-mx-experimental/work/egenix-mx-experimental-0.9.0/mxSetup.pysfinalize_optionsìsc Cs |idƒ|idƒ|ii}d|i_|idƒ|idƒd|i_|idƒ||i_|idƒ}|idƒ}|idƒh}|i ƒ}x¿|D]·}t ii|ƒ otd |‚nt ii|ƒo |id |ƒ|i oêyt i|ƒWn&tj o}|id |ƒnXt ii|ƒd}|i|ƒ od||yt i|ƒWqtj o}|id|ƒqXq¤q¤WdS(Nsdetermining installation filess(re)building packageisbuildsdry-run package installisinstallsremoving filess+filename %s from .get_output() not absolutes removing %ssCould not remove file: %ss.pyscsos.pyos.pycs"skipping removal of %s (not found)sremoving directoriessremoving directory %sscould not remove directory: %s(sselfsannounces distributionsdry_runs savevalues run_commandsget_finalized_commandsbuildsinstallsdirss get_outputss filenamessfilenamesosspathsisabssDistutilsErrorsisfilesremovesOSErrorsdetailsswarnssplitsdirshas_keyssplitextsisdirskeysssortsreversesrmdir( sselfsdirss filenamessbuildsinstallsdetailssfilenamesdirs savevalue((sX/mnt/gmirror/ports/devel/py-mx-experimental/work/egenix-mx-experimental-0.9.0/mxSetup.pysrunïsj            $   (s__name__s __module__s descriptions user_optionssinitialize_optionssfinalize_optionssrun(((sX/mnt/gmirror/ports/devel/py-mx-experimental/work/egenix-mx-experimental-0.9.0/mxSetup.pys mx_uninstallãs   s mx_bdist_rpmcBsQtZdZeidedfdedfgZeZeZd„Zd„Z RS(sK bdist_rpm command which allows passing in distutils options. sdistutils-build-options=s?extra distutils build options to use before the "build" commandsdistutils-install-options=sBextra distutils install options to use after the "install" commandcCsKti|ƒ|itjo d|_n|itjo d|_ndS(Ns(s bdist_rpmsfinalize_optionssselfsdistutils_build_optionssNonesdistutils_install_options(sself((sX/mnt/gmirror/ports/devel/py-mx-experimental/work/egenix-mx-experimental-0.9.0/mxSetup.pysfinalize_optionsHs   cCs ti|ƒ}|idƒ}||d}ti||ddƒ}|djo*d|| |i ||f||díH2Ø+T='