OpenWrt: Split Toolchain for faster Firmware Build Times
At work we’re using Hudson to automatically build projects whenever something is changed in a SCM. For most projects you’ll get fast results if your checkin breaks something which you don’t mind because you not always rebuild the complete project. Now, OpenWrt brings its own toolchain, which compiles the complete local and cross-compiling stuff because the compiler on the host is normally a bit behind and does not contain latest fixes for ARM and other architectures. So how to save some time with not compiling the toolchain everytime a project is build?
For this purpose OpenWrt has a feature called “Use External Toolchain”. This makes it possible to also use vendor-specific toolchains to build OpenWrt. What currently not worked was using OpenWrt itself as its external toolchain. To make this possible, I’ve created some patches (send already to the mailing list/bugzilla) and written some short How-To in the OpenWrt Wiki.
So now the Toolchain is rebuild once a week (but can also be triggered by hand) and the normal firmware is build as usual with a git clean -f -d -x at the beginning.