#!/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

if test -n "$2"
then
    BUILD_COMPILER="$2"
elif test -n "${CC}"
then
    BUILD_COMPILER="$(${CC} --version | head -n1)"
else
    BUILD_COMPILER=unknown
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 "${BUILD_COMPILER}"
EOM
echo '#define BUILD_VERSION_INFO_IDENT "$Id: 0310c02e45f45dc367d10397c874f707864404f7 $"'

if test -n "${CC}"
then
    BUILD_TARGET="$(${CC} -dumpmachine || echo "unknown")"
else
    BUILD_TARGET=unknown
fi
echo "#define BUILD_TARGET \"${BUILD_TARGET}\""
