[build.py] problem with waf

Last night I checkout the current wxPhoenix and wxWidgets as submodule
and tried to build it on my Lubuntu 14.04.2.
Before starting the build command I checked with apt-get the existence
of the needed librarys/packages described in README.rst.
The build command

"python3 ./build.py build"

Caused the error below. I don't understand because I don't know what
waf is. There is no manpage available about it on my system.
The "--help" of the downloaded waf-binary in Phoenix/bin describe a lot
of options but didn't tell about what it really is.

[bash]
Finished command: build_wx (57m16.29s)
Running command: build_py
Checking for /home/user/share/work/Phoenix/bin/waf-1.7.15-p1...
"/usr/bin/python3" /home/user/share/work/Phoenix/bin/waf-1.7.15-p1
--wx_config=/home/user/share/work/Phoenix/build/wxbld/wx-config
--python="/usr/bin/python3" --out=build/waf/3.4 configure build Setting
top to : /home/user/share/work/Phoenix
Setting out
Checking for 'gcc' (c compiler) : /usr/bin/gcc Checking for
'g++' (c++ compiler) : /usr/bin/g++ Checking for program
python : /usr/bin/python3 Checking for python
version : (3, 4, 0, 'final', 0) Checking for library
python3.4 in LIBDIR : not found Checking for library python3.4 in
python_LIBPL : yes Checking for
program /usr/bin/python3-config,python3.4-config,python-config-3.4,python3.4m-config : /usr/bin/python3-config
Checking for header
Python.h :
yes Checking for
'/home/user/share/work/Phoenix/build/wxbld/wx-config' :
yes Checking for
'/home/user/share/work/Phoenix/build/wxbld/wx-config' :
yes Checking for
'/home/user/share/work/Phoenix/build/wxbld/wx-config' :
yes Checking for
'/home/user/share/work/Phoenix/build/wxbld/wx-config' :
yes Checking for
'/home/user/share/work/Phoenix/build/wxbld/wx-config' :
yes Checking for
'/home/user/share/work/Phoenix/build/wxbld/wx-config' :
yes Checking for
'/home/user/share/work/Phoenix/build/wxbld/wx-config' :
yes Checking for
'/home/user/share/work/Phoenix/build/wxbld/wx-config' :
yes Checking for
'/home/user/share/work/Phoenix/build/wxbld/wx-config' :
yes 'configure' finished successfully (3.262s) Waf: Entering directory
`/home/user/share/work/Phoenix/build/waf/3.4' Traceback (most recent
call last): File
"/home/user/share/work/Phoenix/bin/.waf3-1.7.15-9c6c439a6416a92b3e844736c4ef3c7b/waflib/Scripting.py",
line 97, in waf_entry_point run_commands() File
"/home/user/share/work/Phoenix/bin/.waf3-1.7.15-9c6c439a6416a92b3e844736c4ef3c7b/waflib/Scripting.py",
line 153, in run_commands ctx=run_command(cmd_name) File
"/home/user/share/work/Phoenix/bin/.waf3-1.7.15-9c6c439a6416a92b3e844736c4ef3c7b/waflib/Scripting.py",
line 146, in run_command ctx.execute() File
"/home/user/share/work/Phoenix/bin/.waf3-1.7.15-9c6c439a6416a92b3e844736c4ef3c7b/waflib/Scripting.py",
line 353, in execute return execute_method(self) File
"/home/user/share/work/Phoenix/bin/.waf3-1.7.15-9c6c439a6416a92b3e844736c4ef3c7b/waflib/Build.py",
line 106, in execute self.execute_build() File
"/home/user/share/work/Phoenix/bin/.waf3-1.7.15-9c6c439a6416a92b3e844736c4ef3c7b/waflib/Build.py",
line 109, in execute_build self.recurse([self.run_dir]) File
"/home/user/share/work/Phoenix/bin/.waf3-1.7.15-9c6c439a6416a92b3e844736c4ef3c7b/waflib/Context.py",
line 125, in recurse user_function(self) File
"/home/user/share/work/Phoenix/wscript", line 461, in build source =
getEtgSipCppFiles(etg) + rc, File
"/home/user/share/work/Phoenix/buildtools/config.py", line 627, in
getEtgSipCppFiles return _getSbfValue(etg, 'sources') File
"/home/user/share/work/Phoenix/buildtools/config.py", line 620, in
_getSbfValue for line in open(sbf): FileNotFoundError: [Errno 2] No
such file or directory: 'sip/cpp/_core.sbf' Command
'"/usr/bin/python3" /home/user/share/work/Phoenix/bin/waf-1.7.15-p1
--wx_config=/home/user/share/work/Phoenix/build/wxbld/wx-config
--python="/usr/bin/python3" --out=build/waf/3.4 configure build '
failed with exit code 2. Finished command: build_py (0m5.354s) Finished
command: build (57m21.384s)
[/bash]

···

to : /home/user/share/work/Phoenix/build/waf/3.4

https://github.com/waf-project/waf

It is a tool like make or other recipe driven software build tools, except it uses Python code to define the build rules. See Phoenix/wscript.

From the README:
"""
The following commands are required to be able to build Phoenix from scratch. In other words, from a pristine source tree with none of the generated code present yet. They can be run individually or you can specify all of them on a single command line, in the order given. Once a command has succeded in one run of build.py there is no need to run that command again in a later run, unless you've changed something which that command has the responsibility to process.

  * dox: ...
  * etg: ...
  * sip: ...
  * build: ...
"""

You need to run at least the other 3 build.py commands shown above before the build command.

···

c.buhtz@posteo.jp wrote:

Last night I checkout the current wxPhoenix and wxWidgets as submodule
and tried to build it on my Lubuntu 14.04.2.
Before starting the build command I checked with apt-get the existence
of the needed librarys/packages described in README.rst.
The build command

"python3 ./build.py build"

Caused the error below. I don't understand because I don't know what
waf is. There is no manpage available about it on my system.
The "--help" of the downloaded waf-binary in Phoenix/bin describe a lot
of options but didn't tell about what it really is.

--
Robin Dunn
Software Craftsman

It is a tool like make or other recipe driven software build tools,
except it uses Python code to define the build rules. See
Phoenix/wscript.

Nice to know. Thx for description.

From the README:
[..]
You need to run at least the other 3 build.py commands shown above
before the build command.

Maybe it depends on my bad english but I could understand your
README.rst that way, that I have to run the commands in order. For me
it was not clear enough.

And shouldn't the "build" part of the build.py check if the other three
commands where run successfull before?

"build" work over one hour on my machine and then gave me a cryptic
error. This doesn't help it just waste time and energy and lower
motivation of people how want to contribute to wxP.

···

On 2015-04-08 14:00 Robin Dunn <robin@alldunn.com> wrote: