What is the difference between $BUILD_VARIANT vs $BUILD_DEVICES variables?

I'm trying to build an u-boot package and I see some targets use $BUILD_DEVICES and others use $BUILD_VARIANT variables for pointing to the STAGING_DIR image location and I do not know from where it reads the values of the $BUILD_VARIANT variable

For example:

define Build/InstallDev

$(INSTALL_DIR) $(STAGING_DIR_IMAGE)
$(INSTALL_BIN) $(PKG_BUILD_DIR)/$(UBOOT_IMAGE) $(STAGING_DIR_IMAGE)/$(BUILD_VARIANT)-$(UBOOT_IMAGE)

endef

define Build/InstallDev
	$(INSTALL_DIR) $(STAGING_DIR_IMAGE)
	$(CP) $(PKG_BUILD_DIR)/$(UBOOT_IMAGE) $(STAGING_DIR_IMAGE)/$(BUILD_DEVICES)-u-boot-with-spl.bin
	mkimage -C none -A arm -T script -d uEnv-$(UENV).txt \
		$(STAGING_DIR_IMAGE)/$(BUILD_DEVICES)-boot.scr
endef

I read this about this in the documentation but I do not know where is value is defined or taken from.

Change to the prepared source directory.

cd build_dir/target-*/example-*

Note : It can happen that you need to go one level lower as the source is extracted in build_dir/target-/BUILD_VARIANT/example- . This happens when multiple build variants of a package are defined in the Makefile.

Thanks,