#---*- Makefile -*-------------------------------------------------------
#$Author: saulius $
#$Date: 2022-06-27 10:51:25 +0000 (Mon, 27 Jun 2022) $
#$Revision: 324 $
#$URL: svn+ssh://saulius-grazulis.lt/home/saulius/svn-repositories/makefiles/versions-release-in-filesystem/Makelocal-version-c-header $
#------------------------------------------------------------------------

VFILE ?= .version

VERSION_C_HEADER_DIR ?= .

VERSION_H ?= ${VERSION_C_HEADER_DIR}/version.h

.PRECIOUS: ${VERSION_H}

ifeq ("${REPORTED_VERSION}","")
REPORTED_VERSION := $(shell grep -v "^\#" ${VFILE} | awk '{print $$0}' | sed 's/\$$//g; s/  */ /g')
endif

ifeq ("${VCS_MESSAGE}","")
VCS_VERSION := $(shell svnversion)
VCS_MESSAGE := SVN revision ${VCS_VERSION}
endif

ifeq (${VCS_VERSION},Unversioned directory)
    VCS_VERSION := $(shell git log --format='%h' -1 2>/dev/null)
    ifeq (${VCS_VERSION},)
        VCS_MESSAGE :=
    else
        VCS_MESSAGE := GIT commit ${VCS_VERSION}
    endif
endif

%/version.h: %/version.h.in ${VFILE}
	sed 's,@VERSION@,${REPORTED_VERSION},' $< \
	| sed 's/@VCS_TEXT@/${VCS_MESSAGE}/' \
	> $@

.PHONY: cleanAll distclean

cleanAll distclean: clean-version-c-header

clean-version-c-header:
	rm -f ${VERSION_H}
