2012-04-07 02:06:53 +02:00
#!/bin/sh
2013-05-27 19:55:01 -04:00
if [ $# -gt 1 ] ; then
cd " $2 "
fi
2012-04-07 02:06:53 +02:00
if [ $# -gt 0 ] ; then
FILE = " $1 "
shift
if [ -f " $FILE " ] ; then
INFO = " $( head -n 1 " $FILE " ) "
fi
else
2013-05-27 19:55:01 -04:00
echo " Usage: $0 <filename> <srcroot> "
2012-04-07 02:06:53 +02:00
exit 1
fi
2014-01-30 11:43:18 +01:00
DESC = ""
2014-04-12 14:06:07 -10:00
SUFFIX = ""
2016-02-12 05:36:55 +00:00
if [ " ${ BITCOIN_GENBUILD_NO_GIT } " != "1" -a -e " $( which git 2>/dev/null) " -a " $( git rev-parse --is-inside-work-tree 2>/dev/null) " = "true" -a " $( git status --porcelain -u no --ignored " $0 " | cut -b1) " != "?" ] ; then
2012-04-07 02:06:53 +02:00
# clean 'dirty' status of touched files that haven't been modified
git diff >/dev/null 2>/dev/null
2014-04-12 14:06:07 -10:00
# if latest commit is tagged and not dirty, then override using the tag name
RAWDESC = $( git describe --abbrev= 0 2>/dev/null)
2015-05-04 10:58:21 -04:00
if [ " $( git rev-parse HEAD) " = " $( git rev-list -1 $RAWDESC 2>/dev/null) " ] ; then
2014-04-12 14:06:07 -10:00
git diff-index --quiet HEAD -- && DESC = $RAWDESC
fi
# otherwise generate suffix from git, i.e. string like "59887e8-dirty"
SUFFIX = $( git rev-parse --short HEAD)
git diff-index --quiet HEAD -- || SUFFIX = " $SUFFIX -dirty "
2012-04-07 02:06:53 +02:00
fi
if [ -n " $DESC " ] ; then
NEWINFO = " #define BUILD_DESC \" $DESC \" "
2014-04-12 14:06:07 -10:00
elif [ -n " $SUFFIX " ] ; then
NEWINFO = " #define BUILD_SUFFIX $SUFFIX "
2012-04-07 02:06:53 +02:00
else
NEWINFO = "// No build information available"
fi
# only update build.h if necessary
if [ " $INFO " != " $NEWINFO " ] ; then
echo " $NEWINFO " >" $FILE "
fi