Skip to content

Create new build modes

TIP

Before reading this chapter, it is recommended to read the chapter related to BuildBox API development.

By default, BuildBox comes with several supported build modes: autotools, make, ... But it is possible to develop new build modes which can then be used by packages.

TIP

Most of the time, developing a new build mode is not mandatory as the custom build mode can easily cover most build needs.

New build mode implementation is to be added in the src/ directory of BuildBox sources, and must be a .sh file with its name starting with the _build_ prefix.

The following API has to be implemented in the build mode script (replace MODENAME with the new build mode name):

bb_MODENAME_build()

Build the package, and install in target if required.

Arguments:

  • package sources directory
  • build options

Return 0 on success.

bb_MODENAME_build_fast()

Same as bb_MODENAME_build(), but faster (if possible), by skipping already done things (build configuration steps for example).

bb_MODENAME_build()_clean

Clean build generated files, but do not remove files installed in target.

Arguments:

  • package sources directory

Return 0 on success.

bb_MODENAME_build()_stat_warning

Get build warning count.

Arguments:

  • package sources directory

Print number of warnings.

Return:

  • 0 on success
  • 1 if getting warning count is not supported

bb_MODENAME_build()_stat_installed

Get target installed version of the package.

Arguments:

  • package sources directory

Print installed version.

Return:

  • 0 on success
  • 1 if unknown

bb_MODENAME_build()_supports_sources_sharing

Return 1 if the build mode supports packages sources sharing. Sources can be shared if build doesn't alter sources directory, and if it can be then shared by multiple targets.

bb_MODENAME_build()_get_build_dir

Get package build directory. This function implementation is optional. By default, BuildBox will return package sources directory if this function is undefined.

Arguments:

  • package sources directory

Print package build directory.

Return 0 on success.