#!/bin/sh
# Generate the build_info.h header
# Use the Git version if Git is available, otherwise fallback to Version

top_srcdir="${1-.}"
test -d "${top_srcdir}" || { \
    echo "FATAL: Could not change to top_srcdir '$1'" >&2 ; \
    exit 1 ; \
}

version="${top_srcdir}/Version"

# Use GIT_DIR if set
if ! test -n "${GIT_DIR}"
then
    GIT_DIR="${top_srcdir}/.git"
fi

if test -d "${GIT_DIR}"
then
    # Change tags like vX.Y.Z to X.Y.Z
    DESCRIBE=$(git describe --dirty 2>/dev/null)
fi

if test ! -n "${DESCRIBE}"
then
    DESCRIBE="unknown-version"
    if test -f "${version}"
    then
        DESCRIBE="v$(cat "${version}")"
    fi
fi

cat <<EOM
#define BUILD_VERSION "${DESCRIBE}"
#define BUILD_DATE "$(date -u +%Y-%m-%dT%H:%M:%S%z)"
#define BUILD_ARCH "$(uname -mp)"
#define BUILD_KERNEL "$(uname -sr)"
#define BUILD_OS_VERSION "$(uname -v)"
#define BUILD_COMPILER "$(${CC} --version | head -n1)"
EOM
echo '#define BUILD_VERSION_INFO_IDENT "$Id: edc67a3e7f8914ec65c76ac18b57b9eaf1dd9c6f $"'
