config BR2_TARGET_BAREBOX
	bool "Barebox"
	help
	  The Barebox bootloader, formerly known as U-Boot v2.

	  http://www.barebox.org

if BR2_TARGET_BAREBOX
choice
	prompt "version"
	help
	  Select the specific Barebox version you want to use

config BR2_TARGET_BAREBOX_LATEST_VERSION
	bool "2022.12.0"

config BR2_TARGET_BAREBOX_CUSTOM_VERSION
	bool "Custom version"
	help
	  This option allows to use a specific official versions

config BR2_TARGET_BAREBOX_CUSTOM_TARBALL
	bool "Custom tarball"

config BR2_TARGET_BAREBOX_CUSTOM_GIT
	bool "Custom Git repository"

endchoice

config BR2_TARGET_BAREBOX_CUSTOM_VERSION_VALUE
	string "Barebox version"
	depends on BR2_TARGET_BAREBOX_CUSTOM_VERSION

if BR2_TARGET_BAREBOX_CUSTOM_TARBALL

config BR2_TARGET_BAREBOX_CUSTOM_TARBALL_LOCATION
	string "URL of custom Barebox tarball"

endif

config BR2_TARGET_BAREBOX_VERSION
	string
	default "2022.12.0"	if BR2_TARGET_BAREBOX_LATEST_VERSION
	default BR2_TARGET_BAREBOX_CUSTOM_VERSION_VALUE if BR2_TARGET_BAREBOX_CUSTOM_VERSION
	default "custom"	if BR2_TARGET_BAREBOX_CUSTOM_TARBALL
	default BR2_TARGET_BAREBOX_CUSTOM_GIT_VERSION if BR2_TARGET_BAREBOX_CUSTOM_GIT

config BR2_TARGET_BAREBOX_CUSTOM_PATCH_DIR
	string "custom patch dir"
	help
	  If your board requires custom patches, add the path to the
	  directory containing the patches here. The patches must be
	  named barebox-<version>-<something>.patch.

	  Most users may leave this empty

config BR2_TARGET_BAREBOX_NEEDS_OPENSSL
	bool "Barebox needs OpenSSL"
	help
	  Select this option if your Barebox board configuration
	  requires OpenSSL to be available on the host.

config BR2_TARGET_BAREBOX_NEEDS_LIBUSB
	bool "Barebox needs LibUSB"
	help
	  Select this option if your Barebox board configuration
	  requires libUSB to be available on the host.

if BR2_TARGET_BAREBOX_CUSTOM_GIT

config BR2_TARGET_BAREBOX_CUSTOM_GIT_REPO_URL
	string "URL of custom Git repository"

config BR2_TARGET_BAREBOX_CUSTOM_GIT_VERSION
	string "Custom Git version"

endif

source "boot/barebox/barebox/Config.in"

menuconfig BR2_TARGET_BAREBOX_AUX
	bool "Build barebox with an auxiliary config"
	help
	  Build barebox with an auxiliary configuration.

	  Useful for building an SPL (Secondary Program Loader) in
	  addition to the traditional TPL (Tertiary Program Loader),
	  such as the X-Loader or MLO for Texas Instruments
	  processors.

if BR2_TARGET_BAREBOX_AUX

source "boot/barebox/barebox-aux/Config.in"

endif

endif
