#! /bin/sh # echo "This is the git version checker" test -f gitversion-stamp && BGD=`cat gitversion-stamp` || : # echo "existing gitversion-stamp is $BGD" GD=`git describe --tags --dirty --broken --always 2>/dev/null` if [ x"$GD" = x ] ; then GD="NA" fi # echo "current git description is $GD" printf "build: $GD\n" # displays git version if [ x"$GD" != x"$BGD" ] ; then printf "$GD\n" > gitversion-stamp printf "// Do not edit!\n" > gitversion.h printf "// This file is automatically generated.\n" >> gitversion.h printf " char git_version_string[] = \"" >> gitversion.h ## the tr is because we need to remove the trailing newline cat gitversion-stamp | tr -d '[[:space:]]' >> gitversion.h printf "\";\n" >> gitversion.h fi # Usage. Below is what you would add to Makefile.am. When it runs, the # following two files are generated: 'gitversion-stamp' and 'gitversion.h'. # gitversion-stamp stores the most recently used git description. # gitversion.h is a C header file containing that git description as a string. # Put this script in the top level source folder and make sure it has execute permission. # These are the lines (remove the leading '#' on each) to add to the Makefile.am file: # ## Check if the git version information has changed and rebuild gitversion.h if so. # .PHONY: gitversion-check # gitversion-check: # $(top_srcdir)/check-gitversion # ## You may have to change from += to = below: # BUILT_SOURCES += gitversion-check # CLEANFILES += gitversion-stamp gitversion.h