| #!/bin/bash |
| # |
| # Copyright (c) 2012 The Chromium OS Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| # |
| # Generate version information for the EC binary |
| |
| if ghash=`git rev-parse --short --verify HEAD 2>/dev/null`; then |
| if gdesc=`git describe --dirty --match='v*' 2>/dev/null`; then |
| IFS="-" fields=($gdesc) |
| tag="${fields[0]}" |
| IFS="." vernum=($tag) |
| numcommits=$((${vernum[2]}+${fields[1]:-0})) |
| ver_major="${vernum[0]}" |
| ver_branch="${vernum[1]}" |
| else |
| numcommits=`git rev-list HEAD | wc -l` |
| ver_major="v0" |
| ver_branch="0" |
| fi |
| # avoid putting the -dirty attribute if only the timestamp |
| # changed |
| git status > /dev/null 2>&1 |
| |
| dirty=`sh -c "[ '$(git diff-index --name-only HEAD)' ] && echo '-dirty'"` |
| vbase="${ver_major}.${ver_branch}.${numcommits}-${ghash}${dirty}" |
| else |
| # Fall back to the VCSID provided by the packaging system if available. |
| if ghash=${VCSID##*-}; then |
| vbase="1.1.9999-${ghash:0:7}" |
| else |
| # then ultimately fails to "no_version" |
| vbase="no_version" |
| fi |
| fi |
| |
| ver="${BOARD}_${vbase}" |
| |
| echo "/* This file is generated by util/getversion.sh */" |
| |
| echo "/* Version string for use by common/version.c */" |
| echo "#define CROS_EC_VERSION \"${ver}\"" |
| |
| echo "/* Version string, truncated to 31 chars (+ terminating null = 32) */" |
| echo "#define CROS_EC_VERSION32 \"${ver:0:31}\"" |
| |
| echo "/* Sub-fields for use in Makefile.rules and to form build info string" |
| echo " * in common/version.c. */" |
| echo "#define VERSION \"${ver}\"" |
| echo "#define BUILDER \"${USER}@`hostname`\"" |
| |
| if [ -n "$dirty" ]; then |
| echo "/* Repo is dirty, using time of last compilation */" |
| echo "#define DATE \"$(date '+%F %T')\"" |
| else |
| echo "/* Repo is clean, use the commit date of the last commit */" |
| gitdate=$(git log -1 --format='%ci' HEAD | cut -d ' ' -f '1 2') |
| echo "#define DATE \"${gitdate}\"" |
| fi |