// -*- mode:doc; -*- // vim: set syntax=asciidoc: Using OpenADK during development ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The normal operation of OpenADK is to download a tarball, extract it, configure, compile and install the software component found inside this tarball. The source code is extracted in +build___/w--+, which is a temporary directory: whenever +make clean+ or one of the other clean targets are used, this directory is entirely removed, and recreated at the next +make+ invocation. This behavior is well-suited when OpenADK is used mainly as an integration tool, to build and integrate all the components of an embedded Linux system. However, if one uses OpenADK during the development of certain components of the system, this behavior is not very convenient: one would instead like to make a small change to the source code of one package, and be able to quickly rebuild the system with OpenADK. Following workflow might help to integrate your own changes, while developing a new package or board support. Make changes directly in +build___/w--+ and recompile the package with: ------------ $ make package= package ------------ When you are happy with the change, generate a patch: ------------ $ make package= update-patches ------------ For the linux kernel just change the code in +build___/linux, remove the .config and call make again: ------------ $ rm build___/linux/.config $ make ------------ There is no update-patches target for the kernel, you need to extract the kernel source from your download dir, make a copy of the source tree, add your changes and create a patch manually: ------------ $ tar xvf dl/linux-x.y.z.tar.xz $ cp -a linux-x.y.z linux-x.y.z.orig $ diff -Nur linux-x.y.z.orig linux-x.y.z > target/linux/patches/x.y.z/mykernel.patch $ make cleankernel $ make ------------ The same method can be used for toolchain components and _must_ be used for busybox, because it contains patches, which are not generated via +make update-patches+.