| #!/bin/bash |
| |
| # version for configure, make dist and FW etc |
| # usage "version.sh dir" |
| # Where dir is the top level directory path. |
| |
| # use pwd is no path argument is given |
| if [ $# -eq 0 ]; then |
| DIR=`pwd` |
| else |
| DIR=$1 |
| fi |
| |
| # get version from git tag |
| GIT_TAG=`git describe --abbrev=4 2>/dev/null` |
| |
| # may fail to get git describe in some case, add this fallback to handle error |
| if [[ "x$GIT_TAG" == "x" ]] |
| then |
| GIT_TAG="v0.0-0-g0000" |
| fi |
| |
| # Some releases have a SOF_FW_XXX_ prefix on the tag and this prefix |
| # must be stripped for usage in version.h. i.e. we just need the number. |
| if [ $(expr match $GIT_TAG 'SOF_FW_[A-Z]+_' ) -lt 15 ]; then |
| VER=`echo $GIT_TAG | cut -d_ -f4` |
| else |
| VER=$GIT_TAG |
| fi |
| |
| # create git version if we are a git repo or git worktree |
| if [ -e $DIR/.git -o -d $DIR/.git ]; then |
| # version for make dist |
| echo $VER > $DIR/.version |
| echo $VER > $DIR/.tarball-version |
| |
| # git commit for IPC |
| echo "#define SOF_TAG \"`git log --pretty=format:\"%h\" -1 | cut -c1-5`\"" > $DIR/src/include/version.h |
| else |
| echo "#define SOF_TAG \"0\"" > $DIR/src/include/version.h |
| fi |
| |
| # build counter |
| if [ -e $DIR/.build ]; then |
| num=$((`cat $DIR/.build` + 1)) |
| else |
| num=0 |
| fi |
| |
| # save and insert build counter |
| echo $num > $DIR/.build |
| echo "#define SOF_BUILD $num" >> $DIR/src/include/version.h |
| |
| #echo version for AC_INIT |
| if [ -e $DIR/.version ]; then |
| echo -n `cat $DIR/.version | cut -dv -f2 | cut -d. -f1`.`cat $DIR/.version | cut -d. -f2 | cut -d- -f1`.`cat $DIR/.version | cut -d. -f3 | cut -d- -f1` |
| fi |