#--*- Makefile -*--

TRUNK    ?= ^/trunk
BRANCHES ?= ^/branches
RELEASES ?= ${BRANCHES}

PKG_NAME ?= $(shell pwd | xargs dirname | xargs basename)

VFILE = .version

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

TEST_PREREQUISITES += ${VERSION_SCRIPT}

VERSION_SCRIPT_DIR ?= .

VERSION_SCRIPT ?= ${VERSION_SCRIPT_DIR}/${PKG_NAME}-version

.PHONY: all tests test

all tests test:

${VERSION_SCRIPT}: ${VERSION_SCRIPT}.in .version
	sed 's,@VERSION@,${REPORTED_VERSION},' $< \
	| sed 's/@VCS_TEXT@/${VCS_MESSAGE}/' \
	> $@
	chmod 755 $@

.PHONY: cleanAll distclean

cleanAll distclean: clean-version

clean-version-script:
	rm -f ${VERSION_SCRIPT}
