choice
	prompt "Barebox configuration"
	default BR2_TARGET_BAREBOX_AUX_USE_DEFCONFIG

config BR2_TARGET_BAREBOX_AUX_USE_DEFCONFIG
	bool "Using a defconfig"

config BR2_TARGET_BAREBOX_AUX_USE_CUSTOM_CONFIG
	bool "Using a custom config file"

endchoice

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

config BR2_TARGET_BAREBOX_AUX_CUSTOM_CONFIG_FILE
	string "Configuration file path"
	depends on BR2_TARGET_BAREBOX_AUX_USE_CUSTOM_CONFIG
	help
	  Path to the barebox configuration file

config BR2_TARGET_BAREBOX_AUX_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_AUX_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_AUX_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_AUX_CUSTOM_ENV_PATH
	string "Environment path"
	depends on BR2_TARGET_BAREBOX_AUX_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_AUX_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.
