Boost logo

Boost-Build :

From: Bojan Resnik (resnikb_at_[hidden])
Date: 2007-10-10 08:00:58

> The Python port of Boost.Build is now at the stage where
> you can actually build a simple project that
> uses the 'make' rule. Most of this result is thanks to
> Pedro Ferreira, who performed original port back in 2005.
> It appears that the path from here is straight-forward -- we need
> to update modules that Pedro has ported to current Jam codebase,
> and port more tools.
> I've put up a wiki page at:
> that describes how to try the Python port, and how to help.
> Clearly, all possible help is appreciated!

I encountered a couple of problems on Windows:
   1. build.bat --with-python=D:\Python\2.5
         does not work. The final call to bootstrap\jam0 gets:
                    --with-python D:\Python\2.5
         without '='. I suppose that '=' is treated as argument
separator by cmd.exe
         and gets eaten in Setup_Args loop. I solved this by removing the
         Setup_Args loop and using %* in the call to jam0. This is supported
         since Windows 2000, I am not sure about earlier versions.

   2. bjam.exe --build-system=pybb
        in python\tests\bjam\make also fails, because os.uname() is
not supported
        on Windows:
Boost.Build V2 Python port (experimental)
Traceback (most recent call last):
  File "E:/bb_python/./python\boost\build\", line 10, in <module>
    from import Manager
  File "E:/bb_python/./python\boost\build\", line 5, in <module>
    from build.virtual_target import VirtualTargetRegistry
  File "E:/bb_python/./python\boost\build\build\",
line 64, in <module>
    from import path, utility, set
  File "E:/bb_python/./python\boost\build\util\", line 18, in <module>
    from utility import to_seq
  File "E:/bb_python/./python\boost\build\util\", line 162,
in <module>
    __major = __major_map [os.uname () [0]]
AttributeError: 'module' object has no attribute 'uname'

Failed to load ""
E:/bb_python\pybb.jam:49: in load
rule main unknown in module PyBB.
E:\bb_python\kernel\modules.jam:259: in import
E:\bb_python\kernel\bootstrap.jam:120: in boost-build
E:\bb_python\boost-build.jam:2: in module scope
     Perhaps using the more portable platform.uname() would work, but
I don't know if it returns the same names as os.uname().

Bojan Resnik

Boost-Build list run by bdawes at, david.abrahams at, gregod at, cpdaniel at, john at