BuildRoot

  • Allows to build a toolchain, a root filesystem image with many applications and libraries, a bootloader and a kernel image
    • Or any combination of the previous items
  • Supports building uClibc, glibc and musl toolchains, either built by Buildroot, or external
  • Over 1200+ applications or libraries integrated, from basic utilities to more elaborate software stacks: X.org, GStreamer, Qt, Gtk, WebKit, Python, PHP, etc.
  • Good for small to medium embedded systems, with a fixed set of features
    • No support for generating packages (.deb or .ipk)
    • Needs complete rebuild for most configuration changes.
  • Active community, releases published every 3 months.

  • Configuration takes place through a *config interface similar to the kernel make menuconfig

  • Allows to define
    • Architecture and specific CPU
    • Toolchain configuration
    • Set of applications and libraries to integrate
    • Filesystem images to generate
    • Kernel and bootloader configuration
  • Build by just running make

  • adding a new package

  • A package allows to integrate a user application or library to Buildroot
  • Each package has its own directory (such as package/gqview). This directory contains:

    • A Config.in file (mandatory), describing the configuration options for the package. At least one is needed to enable the package. This file must be sourced from package/Config.in
    • A gqview.mk file (mandatory), describing how the package is built.
    • Patches (optional). Each file of the form gqview-*.patch will be applied as a patch.
  • For a simple package with a single configuration option to enable/disable it, the Config.in file looks like:

config BR2_PACKAGE_GQVIEW bool "gqview" depends on BR2_PACKAGE_LIBGTK2 help GQview is an image viewer for Unix operating systems

http://prdownloads.sourceforge.net/gqview
  • It must be sourced from package/Config.in: source "package/gqview/Config.in"

  • Create the gqview.mk file to describe the build steps

    GQVIEW_VERSION = 2.1.5 GQVIEW_SOURCE = gqview-$(GQVIEW_VERSION).tar.gz GQVIEW_SITE = http://prdownloads.sourceforge.net/gqview GQVIEW_DEPENDENCIES = host-pkgconf libgtk2 GQVIEW_CONF_ENV = LIBS="-lm" $(eval $(autotools-package))

  • The package directory and the prefix of all variables must be identical to the suffix of the main configuration option BR2_PACKAGE_GQVIEW

  • The autotools-package infrastructure knows how to build autotools packages. A more generic generic-package infrastructure is available for packages not using the autotools as their build system.

results matching ""

    No results matching ""