choice
	prompt "Barebox configuration"
	default BR2_TARGET_BAREBOX_USE_DEFCONFIG

config BR2_TARGET_BAREBOX_USE_DEFCONFIG
	bool "Using a defconfig"

config BR2_TARGET_BAREBOX_USE_CUSTOM_CONFIG
	bool "Using a custom config file"

endchoice

config BR2_TARGET_BAREBOX_BOARD_DEFCONFIG
	string "board defconfig"
	depends on BR2_TARGET_BAREBOX_USE_DEFCONFIG
	help
	  Name of the board for which Barebox should be built, without
	  the _defconfig suffix.

config BR2_TARGET_BAREBOX_CUSTOM_CONFIG_FILE
	string "Configuration file path"
	depends on BR2_TARGET_BAREBOX_USE_CUSTOM_CONFIG
	help
	  Path to the barebox configuration file

config BR2_TARGET_BAREBOX_CONFIG_FRAGMENT_FILES
	string "Additional configuration fragment files"
	help
	  A space-separated list of configuration fragment files,
	  that will be merged to the main Barebox configuration file.

config BR2_TARGET_BAREBOX_IMAGE_FILE
	string "Image file names"
	help
	  Space-separated list of barebox images which will be copied to
	  the images directory.

	  If left empty, defaults to:
	  - barebox.bin for barebox versions older than 2012.10.
	  - barebox-flash-image for later versions.

config BR2_TARGET_BAREBOX_BAREBOXENV
	bool "bareboxenv tool in target"
	help
	  Install bareboxenv tool in target.

config BR2_TARGET_BAREBOX_CUSTOM_ENV
	bool "Generate an environment image"
	help
	  Generate a custom environment image. This environment will
	  contain the variables and scripts to be used at boot by
	  barebox.

config BR2_TARGET_BAREBOX_CUSTOM_ENV_PATH
	string "Environment path"
	depends on BR2_TARGET_BAREBOX_CUSTOM_ENV
	help
	  Path to the directory containing the custom barebox
	  environment. Depending on your setup, it will probably be
	  based on either the content of the defaultenv or
	  defaultenv-2 directories in the barebox source code, plus
	  the additions needed. The output will be an image in the
	  barebox devfs format, stored in the images directory, with
	  the same name as the directory name given here.

config BR2_TARGET_BAREBOX_CUSTOM_EMBEDDED_ENV_PATH
	string "Embedded environment path"
	help
	  If this option is not empty, it is the path to a custom
	  embedded barebox environment. This image will be used when
	  the environment found in the environment sector is
	  invalid. This option sets the barebox Kconfig option
	  CONFIG_DEFAULT_ENVIRONMENT_PATH to the specified path. This
	  way it is possible to use Buildroot variables like
	  TOPDIR etc. to refer to the custom environment.

	  Depending on your setup, the custom embedded environment
	  will probably be based on either the content of the
	  defaultenv or defaultenv-2 directories in the barebox source
	  code.
