---
title: "<code class=\"docutils literal notranslate\"><span class=\"pre\">pbl</span> <span class=\"pre\">configure</span></code>"
canonical_url: https://developer.repebble.com/pebbleos/docs/pbl/configure/
last_updated: 2026-10-21
sdk_version: 4.33.1
---
# <code class="docutils literal notranslate"><span class="pre">pbl</span> <span class="pre">configure</span></code>

Source: https://developer.repebble.com/pebbleos/docs/pbl/configure/

Configure a build directory for a board. `pbl configure` runs CMake into the build directory (`build/` by default) and remembers the board, the variant and every Kconfig choice, so later commands need none of them again.

```
pbl configure --board qemu_emery
```

The board names, and the revisions of each, are listed in [Boards](https://developer.repebble.com/pebbleos/docs/boards.md). A board with revisions takes one after `@`, e.g. `obelix@pvt`. A board variant, another way to build the same board, comes after `/`: `native_emery/wasm` builds the native watch as WebAssembly. It applies `boards/<board>/defconfig.<variant>` and can bring its own toolchain (`toolchain.<variant>.cmake`).

## Variants

`--variant` picks the image to build: `normal`, the main firmware, or `prf`, the recovery firmware, which applies `fw/prj_prf.conf` on top of the board defconfig.

```
pbl configure --board obelix@pvt --variant prf
```

## Kconfig options

Anything `pbl configure` does not recognize is passed straight to CMake, so Kconfig symbols are set with `-D`:

```
pbl configure --board asterix -DCONFIG_RELEASE=y
```

A few that select the kind of image:

`-DCONFIG_RELEASE=y`:

A release image: strips debug aids, enables shipping defaults and reduces battery usage compared to a debug build.

`-DCONFIG_MFG=y`:

Manufacturing-only functionality in the PRF build.

Options for debugging and logging are listed with [Debugging](https://developer.repebble.com/pebbleos/docs/development/debugging.md) and [Logging](https://developer.repebble.com/pebbleos/docs/subsystems/logging.md). To browse and change every symbol interactively, use [pbl menuconfig](https://developer.repebble.com/pebbleos/docs/pbl/menuconfig.md).

## Options

```
pbl configure [-h] [-b DIR] [--dry-run] --board BOARD [--variant {normal,prf}]
              [-G GENERATOR]
```

`--board BOARD`

Board to build for

`--variant {normal,prf}`

Firmware variant (default: normal)

`-G, --generator GENERATOR`

CMake generator (default: Ninja)

Generated from PebbleOS [3a7b71785](https://github.com/coredevices/pebbleos/commit/3a7b71785fd439666c4a8bc116f561140e8dec01). This page is maintained in the pebbleos repository: [docs/pbl/configure.md](https://github.com/coredevices/pebbleos/blob/3a7b71785fd439666c4a8bc116f561140e8dec01/docs/pbl/configure.md).
