Waf to become default build system for Linux

Hi!

After a lot of work to make the waf build system usable to other developers, we think we are almost there to do the transition from the Make-based build system. At least for Linux… for PX4 there was a problem with the recent merge as @tridge mentioned.

One of the reasons to make us to want to switch to the new build system is also that there are some differences in toolchains given by distros which are automatically detected by waf. Doing the same for the old build system is just too much work since it will be replaced soon. See https://github.com/ArduPilot/ardupilot/pull/3878

For Linux the only thing missing I think is the integration with sim_vehicle.sh script. Other than that, updating the docs and getting feedback from people, which is why I’m doing this post. While the wiki is not updated, all the info to use it is in the ardupilot repository itself.

Kudos to @guludo who worked hard to make this a reality. Thanks also to @OXINARF and other who helped on the new build system.

1 Like

People can just give feedback here or create issues in github.

For PX4 it will take a little bit more time since the build broke in the last merge from PX4 repositories ( Waf build for px4 )

thanks Lucas and Gustavo!

Obrigado para o trabalho !

I use waf from some time and it is working well. I will continue to report issues I found !

My BBBmini project moved to WAF build system a month ago. Since WAF builds hexa, octo … as well, there is nothing to complain about. Very good work, thanks a lot.

Hi,
A noob question what is WAF ? (Women Acceptance Factor ?)

From Wikipedia: Waf
"Waf is a build automation tool designed to assist in the automatic compilation and installation of computer software."

I believe it is a method of easing development and building the ardupilot source in Linux as an alternative to using the “Make-based build system” @lucasdemarchi mentioned in the original post.

Also, here is the README included about WAF: https://github.com/ArduPilot/ardupilot/blob/master/README-WAF.md