#~ Copyright 2005 Rene Rivera.
#~ Distributed under the Boost Software License, Version 1.0.
#~ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)

# Automatic configuration for Python tools and librries. To use, just import this module.

import os ;
import toolset : using ;

if [ os.name ] = NT
{
    for local R in 2.4 2.3 2.2
    {
        local python-path = [ W32_GETREG
            "HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\$(R)\\InstallPath" ] ;
        local python-version = $(R) ;
        
        if $(python-path)
        {
            if --debug-configuration in [ modules.peek : ARGV ]
            {
                ECHO "notice:" using python ":" $(python-version) ":" $(python-path) ;
            }
            using python : $(python-version) : $(python-path) ;
        }
    }
}
