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 filename"
	help
	  Name of the generated barebox image, 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.
