// -*- mode:doc; -*- // vim: set syntax=asciidoc: == Project-specific customization Typical actions you may need to perform for a given project are: - configuring Buildroot (including build options and toolchain, bootloader, kernel, package and filesystem image type selection) - configuring other components, like the Linux kernel and BusyBox - adding project-specific patches to some packages (using +BR2_GLOBAL_PATCH_DIR+) - adding or overwriting files on the target filesystem (using +BR2_ROOTFS_OVERLAY+) - modifying or deleting files on the target filesystem (using +BR2_ROOTFS_POST_BUILD_SCRIPT+) - running arbitrary commands prior to generating the filesystem image (using +BR2_ROOTFS_POST_BUILD_SCRIPT+) - running arbitrary commands after generating the filesystem image (using +BR2_ROOTFS_POST_IMAGE_SCRIPT+) - adding project-specific packages This chapter describes how to make such project-specific customizations in Buildroot and how to store them in a way that you can build the same image in a reproducible way, even after running 'make clean'. By following the recommended strategy, you can even use the same Buildroot tree to build multiple distinct projects! include::customize-rootfs.txt[] include::customize-store.txt[] include::customize-packages.txt[] include::customize-outside-br.txt[]