1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- // -*- 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_<system>_<arch>_<libc>/w-<package>-<version>+, 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_<system>_<arch>_<libc>/w-<package>-<version>+
- and recompile the package with:
- ------------
- $ make package=<package> package
- ------------
- When you are happy with the change, generate a patch:
- ------------
- $ make package=<package> update-patches
- ------------
- For the linux kernel just change the code in
- +build_<system>_<arch>_<libc>/linux, remove the .config
- and call make again:
- ------------
- $ rm build_<system>_<arch>_<libc>/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+.
|