blob: 95846ceae6cd6229ab2ca46e457e3002e658eab4 [file] [log] [blame]
Martin Rothe2362042015-02-12 19:32:41 -07001#!/bin/sh
2
3# This file is part of the coreboot project.
4#
5# Copyright (C) 2014 Sage Electronic Engineering, LLC.
6#
7# This program is free software; you can redistribute it and/or modify
8# it under the terms of the GNU General Public License as published by
9# the Free Software Foundation; version 2 of the License.
10#
11# This program is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY; without even the implied warranty of
13# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14# GNU General Public License for more details.
15#
Martin Rothe2362042015-02-12 19:32:41 -070016
Alexander Couzensa74d5692015-03-07 01:50:22 +010017DATE=""
18GITREV=""
19TIMESOURCE=""
Alexander Couzens4dc11972015-06-07 02:07:34 +020020
21export LANG=C
Alexander Couzens946bf932015-06-07 02:10:57 +020022export LC_ALL=C
Paul Menzel38a906b2017-09-27 15:06:57 +020023export TZ=UTC0
Alexander Couzens4dc11972015-06-07 02:07:34 +020024
Martin Roth8ba235e2016-03-12 20:15:18 -070025if [ "${BUILD_TIMELESS}" = "1" ]; then
Nico Huber566dd352016-01-24 16:00:50 +010026 GITREV=Timeless
27 TIMESOURCE="fixed"
28 DATE=0
Alex Thiessen1758fd22018-01-14 11:59:47 +000029elif [ "$(git rev-parse --is-inside-work-tree 2>/dev/null)" = "true" ]; then
Martin Roth4af36552015-12-26 19:55:31 -070030 GITREV=$(LANG= git log -1 --format=format:%h)
Alexander Couzensa74d5692015-03-07 01:50:22 +010031 TIMESOURCE=git
32 DATE=$(git log --pretty=format:%ct -1)
33else
34 GITREV=Unknown
Patrick Georgif260f512015-08-09 20:53:16 +020035 TIMESOURCE="date"
Paul Menzel38a906b2017-09-27 15:06:57 +020036 DATE=$(LANG= LC_ALL=C TZ=UTC0 date +%s)
Alexander Couzensa74d5692015-03-07 01:50:22 +010037fi
Alexander Couzens8448bd12015-03-07 01:34:55 +010038
Idwer Volleringb5589022015-03-27 00:15:20 +010039our_date() {
40case $(uname) in
zbao5e1fb2d2015-09-09 05:16:40 -040041NetBSD|OpenBSD|DragonFly|FreeBSD|Darwin)
Alexander Couzens4dc11972015-06-07 02:07:34 +020042 date -r $1 $2
Idwer Volleringb5589022015-03-27 00:15:20 +010043 ;;
44*)
Alexander Couzens4dc11972015-06-07 02:07:34 +020045 date -d @$1 $2
Idwer Volleringb5589022015-03-27 00:15:20 +010046esac
47}
48
Martin Rothe2362042015-02-12 19:32:41 -070049#Print out the information that goes into build.h
50printf "/* build system definitions (autogenerated) */\n"
51printf "#ifndef __BUILD_H\n"
52printf "#define __BUILD_H\n\n"
53printf "#define COREBOOT_VERSION %s\n" "\"$KERNELVERSION\""
54
55#See if the build is running in a git repo and the git command is available
Alexander Couzensa74d5692015-03-07 01:50:22 +010056printf "/* timesource: $TIMESOURCE */\n"
57printf "#define COREBOOT_VERSION_TIMESTAMP $DATE\n"
58printf "#define COREBOOT_ORIGIN_GIT_REVISION \"$GITREV\"\n"
Martin Rothe2362042015-02-12 19:32:41 -070059
60printf "#define COREBOOT_EXTRA_VERSION \"%s\"\n" "$COREBOOT_EXTRA_VERSION"
Alexander Couzens4dc11972015-06-07 02:07:34 +020061printf "#define COREBOOT_BUILD \"$(our_date "$DATE")\"\n"
Idwer Volleringb5589022015-03-27 00:15:20 +010062printf "#define COREBOOT_BUILD_YEAR_BCD 0x$(our_date "$DATE" +%y)\n"
63printf "#define COREBOOT_BUILD_MONTH_BCD 0x$(our_date "$DATE" +%m)\n"
64printf "#define COREBOOT_BUILD_DAY_BCD 0x$(our_date "$DATE" +%d)\n"
65printf "#define COREBOOT_BUILD_WEEKDAY_BCD 0x$(our_date "$DATE" +%w)\n"
66printf "#define COREBOOT_DMI_DATE \"$(our_date "$DATE" +%m/%d/%Y)\"\n"
Martin Rothe2362042015-02-12 19:32:41 -070067printf "\n"
Idwer Volleringb5589022015-03-27 00:15:20 +010068printf "#define COREBOOT_COMPILE_TIME \"$(our_date "$DATE" +%T)\"\n"
Martin Rothe2362042015-02-12 19:32:41 -070069printf "#endif\n"