#include <version.h>
#include <build.h>

#ifndef CONFIG_MAINBOARD_VENDOR
#error CONFIG_MAINBOARD_VENDOR not defined
#endif
#ifndef CONFIG_MAINBOARD_PART_NUMBER
#error  CONFIG_MAINBOARD_PART_NUMBER not defined
#endif

#ifndef COREBOOT_VERSION
#error  COREBOOT_VERSION not defined
#endif
#ifndef COREBOOT_BUILD
#error  COREBOOT_BUILD not defined
#endif

#ifndef COREBOOT_COMPILE_TIME
#error  COREBOOT_COMPILE_TIME not defined
#endif

#ifndef  COREBOOT_EXTRA_VERSION
#define COREBOOT_EXTRA_VERSION ""
#endif

const char mainboard_vendor[] = CONFIG_MAINBOARD_VENDOR;
const char mainboard_part_number[] = CONFIG_MAINBOARD_PART_NUMBER;

const char coreboot_version[] = COREBOOT_VERSION;
const char coreboot_extra_version[] = COREBOOT_EXTRA_VERSION;
const char coreboot_build[] = COREBOOT_BUILD;
const unsigned int coreboot_version_timestamp = COREBOOT_VERSION_TIMESTAMP;

const char coreboot_compile_time[]   = COREBOOT_COMPILE_TIME;
const char coreboot_dmi_date[]       = COREBOOT_DMI_DATE;

const struct bcd_date coreboot_build_date = {
	.century = 0x20,
	.year = COREBOOT_BUILD_YEAR_BCD,
	.month = COREBOOT_BUILD_MONTH_BCD,
	.day = COREBOOT_BUILD_DAY_BCD,
	.weekday = COREBOOT_BUILD_WEEKDAY_BCD,
};
