Not able to build Ardupilot with waf and etc

I have issues to build using waf based systems… I get following error when I do “ -w” . Any recommendations?

Waf: Entering directory /home/ujjval/ardupilot/build/sitl' Waf: Leaving directory/home/ujjval/ardupilot/build/sitl’
source not found: ‘modules/mavlink/message_definitions/v1.0/ardupilotmega.xml’ in bld(target=’’, idx=1, tg_idx_count=1, meths=[‘process_mavgen’, ‘process_rule’, ‘process_source’], _name=‘mavlink’, source=‘modules/mavlink/message_definitions/v1.0/ardupilotmega.xml’, export_includes=[’/home/ujjval/ardupilot/build/sitl/libraries’, ‘/home/ujjval/ardupilot/build/sitl/libraries/GCS_MAVLink’], output_dir=‘libraries/GCS_MAVLink/include/mavlink/v2.0/’, path=/home/ujjval/ardupilot, posted=True, features=[‘mavgen’]) in /home/ujjval/ardupilot

How to build using waf?

I must download waf sources and then paste it to my /modules/waf directory and then I sould run following commands?

./waf configure
./waf plane

but that also gives me above error.


We already include waf in our source.
Just do
git submodule update --init --recursive from /home/ujjval/ardupilot/ and it should be good !

The error is saying you that the ardupilotmega.xml file is missing. This file belong to mavlink submodule and contains mavlink protocol definitions for ardupilot, it is translated from xml to C language at compile time !

1 Like

but when I clone ardupilot the directory it is not cloning the sub directoty in modules. Then I tried cloning them saperately but then the other sub-directory were not cloned.!! I don’t get why?

That is normal, use git submodule update --init --recursive to update the submodules

I have used that but still there are missing files :confounded::confounded:

ardupilot/modules/mavlink/pymavlink/tools/’: [Errno 2] No such file or directory

go to the modules/mavlink directory and do a git submodule update --init --recursive
do the same for the uavcan directory as well.

For some weird reason sometimes the recursive part of submodule update does not work

I have done that but that does not work for me… I am using older fork of ardupilot…